Command-Line
獲取在特定日期修改過的所有文件
是否可以找到
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