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
は、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
2つのポイント:「小数部分を無視する」を見つけます。時間数を計算し、24で割り、結果を整数化します(端数は破棄します)。したがって、-mtime 0
はファイルをチェックし、mtimesを比較し、時間に変換し、24で除算します。その結果の整数部分が0であれば、それは一致です。つまり、0.99999時間前が一致します。次に、-mtime +0
は、mtimeの差が少なくとも24時間であるすべてのファイルと一致します。
次に、mtimeでn
- 24時間ではなく暦日をカウントする場合は、-daystart
を使用します。したがって、-daystart -mtime 0
はtodayを意味し、-daystart -mtime +0
は今日より前を意味します。