web-dev-qa-db-ja.com

mtime-と+の違いを見つける

mtimeとの違いは何ですか-および+スイッチは両方とも必要な結果を返していないので?

5日以上経過したすべてのファイルを削除しようとしています。

 find /mnt/sdb1/tmp/ -type f -mtime +5 -exec ls {} \;
 find /mnt/sdb1/tmp/ -type f -mtime -5 -exec ls {} \;

結果を比較するために、出力をlsに変更しました。

6
Grimlockz

findのmanページから:

    Numeric arguments can be specified as

   +n     for greater than n,
   -n     for less than n,
    n     for exactly n.

  -mtime n
          File's data was last modified n*24 hours ago.  See the comments for 
          -atime to understand how rounding  affects  the  interpretation  of
          file  modification times.

   -atime n
          File was last accessed n*24 hours  ago.   When  find  figures  out  
          how  many 24-hour  periods  ago  the  file  was  last  accessed, any 
          fractional part is ignored, so to match -atime +1, a file has to have 
          been accessed at least two days ago.

そう、 -mtime +5は、最後に変更されたファイルを検索しますmore 5 * 24時間前と-mtime -5は、最後に変更されたファイルを検索しますless 5 * 24hより前。 5日以上経過したファイルを削除するには1 あなたがするでしょう:

find /mnt/sdb1/tmp/ -type f -mtime +5 -exec rm {} \;

これで必要な結果が返されない場合は、タイムスタンプに問題がある可能性があります。問題のファイルについて正しく報告されていますか?これが外付けUSBドライブである場合、ファイルは別のマシンで作成されていて、予想とは異なるタイムスタンプを持っている可能性があります。


1ここでの単位は1日24時間であることに注意してください。したがって、値は常に丸められ、小数部分は無視されるため、5日以上経過したとは、少なくとも6日経過したことを意味します。

10
terdon

-mtime +5は、5日前(6、7、...)に変更されたすべてのファイルを表示しますが、-5には、今日から5日前までに変更されたものが表示されます。

1
ott--