Linux

Linux:使用 find 定位早於 <date> 的文件

  • March 19, 2021

find對查找少於 X 天前修改較多的文件有很好的支持,但是如何使用它find來查找在某個日期之前修改的所有文件?

我在手冊頁中找不到任何內容find來執行此操作,只能與另一個文件時間進行比較或檢查創建時間與現在之間的差異。以所需時間製作文件並與之進行比較是唯一的方法嗎?

如果您只有“-newer 文件”,則可以使用此解決方法:

# create 'some_file' having a creation date of 16 Mar 2010:
touch -t 201003160120 some_file

# find all files created after this date
find . -newer some_file

男人觸摸:

 -t STAMP
         use [[CC]YY]MMDDhhmm[.ss] instead of current time

假設你的 touch 有這個選項(我的是 touch 5.97)。

不,您可以使用日期/時間字元串。

來自man find

-newerXY reference

將目前文件的時間戳與參考進行比較。引用參數通常是文件的名稱(其中一個時間戳用於比較),但它也可能是描述絕對時間的字元串。X 和 Y 是其他字母的佔位符,這些字母選擇屬於哪個時間的參考用於比較。

          a   The access time of the file reference
          B   The birth time of the file reference
          c   The inode status change time of reference
          m   The modification time of the file reference
          t   reference is interpreted directly as a time

例子:

find -newermt "mar 03, 2010" -ls
find -newermt yesterday -ls
find -newermt "mar 03, 2010 09:00" -not -newermt "mar 11, 2010" -ls

引用自:https://serverfault.com/questions/122824