首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在一个目录中获取最近30天内修改的所有文件

在一个目录中获取最近30天内修改的所有文件
EN

Stack Overflow用户
提问于 2014-04-15 04:56:41
回答 1查看 179.1K关注 0票数 54

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

我试过这个:

代码语言:javascript
复制
root@server [/home/someuser/public_html/]# find . -mtime +30
 -exec ls -l {} > last30days.txt \;

但它似乎找到了所有的东西,而不是过去的30天。22,000个文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-15 05:46:04

有几个问题

  • 你不会把它限制在文件上,所以当它找到一个匹配的目录时,它会列出其中的所有文件。
  • 你不能在没有像bash -c '... > ...'这样的东西的情况下在-exec中使用>。尽管>会覆盖该文件,因此您无论如何都要重定向整个find,而不是每个-exec
  • +30不超过30天,days.
  • -exec在过去30天内会被修改,older是不需要的,你可以列出所有带有各种-printf选项的东西。

像下面这样的东西应该可以工作

代码语言:javascript
复制
find . -type f -mtime -30 -exec ls -l {} \; > last30days.txt

使用-printf的示例

代码语言:javascript
复制
find . -type f -mtime -30 -printf "%M %u %g %TR %TD %p\n" > last30days.txt

这将以“权限所有者组时间日期文件名”格式列出文件。在不需要执行任何复杂操作的情况下,-printf通常比-exec更可取。这是因为它不需要为每个-exec执行子subshells,因此运行速度会更快。根据find的版本不同,您也可以使用-ls,它的格式与上面的类似。

票数 138
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23070245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档