CentOS的。需要查找过去30天内修改过的文件,看看是否有任何文件被恶意软件感染。
我试过了:
root@server [/home/someuser/public_html/]# find . -mtime +30
-exec ls -l {} > last30days.txt \;
但不是过去30天,它似乎找到了一切。 22,000个文件。
答案 0 :(得分:83)
一些问题
>
之类的内容,您无法在-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
更适用于您不必做任何复杂事情的情况。这是因为它不会为每个-exec
执行子shell而运行得更快。根据{{1}}的版本,您也可以使用find
,其格式与上述类似。