Answers:
在最新版本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答案以获得更多建议:如何使用“查找”搜索在特定日期创建的文件?
烦人的是,standard没有任何直接的方法find
。find
GNU系统上的最新版本(例如,非嵌入式Linux,Cygwin)和某些* BSD具有诸如-newermt
将文件日期与拼写日期进行比较的选项。
使用standard 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
zsh
可以使用with 函数age
来仅打印在特定日期已修改的文件的名称:
自动加载年龄 打印-rl-* .php(.e:age 2011/02/08 :)
或者,如果您想进行递归搜索:
自动加载年龄 setopt Extendedglob 打印-rl-** / *。php(.e:age 2011/02/08 :)