当前位置:  开发笔记 > 编程语言 > 正文

获取目录中过去30天内修改的所有文件

如何解决《获取目录中过去30天内修改的所有文件》经验,为你挑选了1个好方法。

CentOS的.需要查找过去30天内修改过的文件,以查看是否其中任何文件已被恶意软件感染.

我试过这个:

root@server [/home/someuser/public_html/]# find . -mtime +30
 -exec ls -l {} > last30days.txt \;

但与过去30天相比,它似乎已经找到了一切.22,000个文件.



1> Reinstate Mo..:

几个问题

您不是将其限制为文件,因此当它找到匹配的目录时,它将列出其中的每个文件.

不能使用>-exec没有类似的东西bash -c '... > ...'.虽然>会覆盖文件,但你想要重定向整个find而不是每个-exec.

+30older超过30天,-30就在最近30天进行修改.

-exec真的不需要,你可以列出各种-printf选项.

像下面的东西应该工作

find . -type f -mtime -30 -exec ls -l {} \; > last30days.txt

用例子 -printf

find . -type f -mtime -30 -printf "%M %u %g %TR %TD %p\n" > last30days.txt

这将以"权限所有者组时间日期文件名"格式列出文件.-printf通常比-exec你不需要做任何复杂的事情更好.这是因为它不会为每个子shell执行子shell而运行得更快-exec.根据版本的不同find,您也可以使用-ls,其格式与上述类似.


@ButtleButkus添加了`-printf`示例.
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有