1日を過ぎたすべてのファイルを削除しようとしています。ファイルを削除するスクリプトを実行する前に、mtimeを使用してファイルを見つけました。しかし、私のコマンドと同じ問題に直面しています。
私の現在の日付は次のとおりです。
Wed Jan 27 11:49:20 BDT 2016
私のファイルのリストは -
Jan 25 15:11 25-01-2016.txt
Jan 26 13:05 26-01-2016.txt
Jan 27 02:30 27-01-2016.txt
Jan 25 15:11 dfk-25-01-2016.txt
Jan 26 13:05 dfk-26-01-2016.txt
Jan 27 02:30 dfk-27-01-2016.txt
-mtime +1
一日を過ぎたすべてのファイルをリストする必要があると思います。
find /etc/output/*.txt -mtime +1
find /etc/output/*.txt -mtime +0
/output/25-01-2016.txt
/output/dfk-25-01-2016.txt
find /etc/output/*.txt -mtime -1
/output/26-01-2016.txt
/output/27-01-2016.txt
/output/dfk-26-01-2016.txt
/output/dfk-27-01-2016.txt
私が望む出力は次のとおりです。
find /etc/output/*.txt -mtime +1
/output/25-01-2016.txt
/output/dfk-25-01-2016.txt
find /etc/output/*.txt -mtime +0
/output/26-01-2016.txt
/output/dfk-26-01-2016.txt
/output/25-01-2016.txt
/output/dfk-25-01-2016.txt
答え1
2つの点:「少数の部分を無視する」を探します。時間を計算し、24で割って結果を整数化します(小数点を除く)。したがって-mtime 0
、ファイルを確認し、mtimeを比較し、時間に変換し、24で割ります。結果の整数部分がゼロの場合、一致することを示します。これは、0.99999時間前が一致することを意味します。次に、-mtime +0
少なくとも24時間の時間差を持つすべてのファイルを一致させます。
n
第二に、mtimeにこれから-24時間以外の逆日を計算させるには、を使用します-daystart
。-daystart -mtime 0
今日そして-daystart -mtime +0
今日前にも言った。