在UNIX中以递归方式定位最近更新的文件

时间:2010-08-06 16:05:08

标签: unix automation cron crontab unix-timestamp

对于我正在处理的网站,我希望能够自动更新页脚中的“此页面上次修改:”部分,因为我正在进行每晚的git提交。基本上我计划编写一个shell脚本,每晚午夜运行,这将完成我所有的一般服务器维护。大多数这些任务我已经知道如何自动化,但我有一个文件(footer.php),它包含在每个页面中,并显示网站上次更新的日期。我希望能够递归查看我的网站并查看每个文件的时间戳,然后如果在footer.php中的日期之后编辑了这些,我想更新这个日期。

我需要的只是一个UNIX命令,它将递归遍历我的文件并仅返回上次修改的日期。我不需要文件名或进行了哪些更改,我只需要知道最近更新的文件被更改的一天(并且希望时间)。

我知道使用“ls -l”和“cut”我可以遍历每个文件夹来执行此操作,但我希望能够更快速地运行并更轻松地执行命令。最好是单行shell命令(可能带有-R参数)

3 个答案:

答案 0 :(得分:2)

find以Unix格式输出所有访问时间,然后排序并取最大值。 转换成所需的任何日期格式留给读者练习:

find /path -type f -iname "*.php" -printf "%T@" | sort -n | tail -1

答案 1 :(得分:1)

GNU find

find /path -type -f -iname "*.php" -printf "%T+"

检查查找手册页以与其他-printf说明符一起使用。

答案 2 :(得分:0)

您可能希望查看每次修改任何其他文件时更新页脚的inotify脚本,而不是查看整个文件系统中的新更新。