CentOS。需要找到在过去30天内修改的文件,以查看其中是否已感染恶意软件。
我试过这个:
root@server [/home/someuser/public_html/]# find . -mtime +30
-exec ls -l {} > last30days.txt \;
但它似乎找到了所有的东西,而不是过去的30天。22,000个文件。
发布于 2014-04-15 05:46:04
有几个问题
bash -c '... > ...'
这样的东西的情况下在-exec
中使用>
。尽管>
会覆盖该文件,因此您无论如何都要重定向整个find
,而不是每个-exec
。+30
不超过30天,days.-exec
在过去30天内会被修改,older
是不需要的,你可以列出所有带有各种-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
更可取。这是因为它不需要为每个-exec
执行子subshells,因此运行速度会更快。根据find
的版本不同,您也可以使用-ls
,它的格式与上面的类似。
https://stackoverflow.com/questions/23070245
复制相似问题