【发布时间】:2013-08-29 23:22:46
【问题描述】:
我在我的一个目录中提取 .php 文件,那里有很多文件,所以大部分文件都被替换了!
但我有一个问题,因为新文件的修改日期是 2013 年 4 月 23 日,所以我想找到这个目录中不是 2013 年 4 月 23 日的所有文件和文件夹!
另外,我想将此目录中所有修改日期为 2013 年 4 月 23 日的文件更改为 30/08/2013!
如何找到和更改文件?
结合FIND和TOUCH功能替换所有文件修改日期。
【问题讨论】:
我在我的一个目录中提取 .php 文件,那里有很多文件,所以大部分文件都被替换了!
但我有一个问题,因为新文件的修改日期是 2013 年 4 月 23 日,所以我想找到这个目录中不是 2013 年 4 月 23 日的所有文件和文件夹!
另外,我想将此目录中所有修改日期为 2013 年 4 月 23 日的文件更改为 30/08/2013!
如何找到和更改文件?
结合FIND和TOUCH功能替换所有文件修改日期。
【问题讨论】:
您可以cd 到包含 PHP 文件的文件夹,并且:
touch -d '30 August 2013' *.php
或者如果它有包含 php 文件的子文件夹 - 递归搜索它们:
find /path/to/your/php/ -exec touch -d '30 August 2013' *.php {} \;
将包含上述命令中的文件夹“php”。
编辑:
如果您只需要查找/更改 2013 年 4 月 23 日修改的确切文件,您可以在 find 命令中使用 -mtime 参数。
-mtime +60 表示您正在查找 60 天或更早之前修改过的文件。
-mtime -60 表示少于 60 天。
-mtime 60 如果您跳过+ 或-,则表示正好是60 天。
所以像这样修改上面的命令:
find /path/to/your/php/ -mtime 127 -exec touch -d '30 August 2013' *.php {} \;
其中 127 是自 4 月 23 日以来的确切天数(如果我的快速头部计算正确的话)。否则,您可以将数字更改为正确的天数,或者使用上述的+ 或-,如果不需要“那么”精确的话。
您可以在此处阅读有关查找命令 -mtime 参数的更多信息: http://www.cyberciti.biz/faq/howto-finding-files-by-date/
(是的,我从那里借了 3 行)
【讨论】: