Command-Line

獲取在特定日期修改過的所有文件

  • March 20, 2021

是否可以找到php某個目錄中在某個日期已修改的所有文件

我正在使用

find /var/www/html/dir/ -mtime -28 | grep '\.php' 

獲取在過去 28 天內修改的文件,但我只需要在以下日期修改的文件:2011-02-08

在最新版本find(例如 GNU 4.4.0)上,您可以使用該-newermt選項。例如查找所有在 2011-02-08 上修改過的文件

$ find /var/www/html/dir/ -type f -name "*.php" -newermt 2011-02-08 ! -newermt 2011-02-09

另請注意,您不需要通過管道進入 grep 來查找 php 文件,因為 find 可以在-name選項中為您執行此操作。

查看此 SO 答案以獲得更多建議:如何使用“查找”搜尋在特定日期創建的文件?

令人討厭的是,標準沒有任何直接的方法find。GNU 系統上的最新版本find(例如非嵌入式 Linux、Cygwin)和一些 *BSD 具有諸如-newermt比較文件日期和拼寫日期的選項。

使用標準find,您所能做的就是將文件日期與目前日期 ( -mtime) 或與固定文件進行比較。在這種情況下,目前日期通常沒有用(它從您執行find命令的時間開始倒計時,而大多數應用程序需要日曆日期)。這使您不得不創建臨時文件來定義範圍。

touch -t 201103070000 start.tmp
touch -t 201103080000 stop.tmp
find . -newer start.tmp \! -newer stop.tmp -print
rm start.tmp stop.tmp

引用自:https://unix.stackexchange.com/questions/8750