CentOS的.需要查找过去30天内修改过的文件,以查看是否其中任何文件已被恶意软件感染.
我试过这个:
root@server [/home/someuser/public_html/]# find . -mtime +30 -exec ls -l {} > last30days.txt \;
但与过去30天相比,它似乎已经找到了一切.22,000个文件.
几个问题
您不是将其限制为文件,因此当它找到匹配的目录时,它将列出其中的每个文件.
不能使用>
在-exec
没有类似的东西bash -c '... > ...'
.虽然>
会覆盖文件,但你想要重定向整个find
而不是每个-exec
.
+30
在older
超过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
,其格式与上述类似.