如何在 Linux 上查找最近修改的文件如何在 Linux 上查找最近修改的文件如何在 Linux 上查找最近修改的文件如何在 Linux 上查找最近修改的文件
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上查找最近修改的文件

在多种情况下,您可能希望搜索最近或在任何时间范围内在 Linux 系统中更改/创建的文件。例如,作为系统管理员,您在 Linux 系统上进行了一些配置,但忘记了它的保存位置。您想要验证您的 Linux 文件系统最近是否/如何被某人篡改。如果您想在 Linux 上查找最近更新的文件,您可以使用 find 命令,如下所示。

要查找最近修改的文件,请按更新时间的相反顺序排序(即,首先是最近更新的文件):


$ find /etc -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r

2012-09-14 22:25:14.0000000000 /etc/shadow
2012-08-17 00:56:36.0000000000 /etc/resolv.conf
2012-08-16 23:22:57.0000000000 /etc/ld.so.cache
2012-08-16 23:22:29.0000000000 /etc/mtab
2012-08-16 23:22:04.0000000000 /etc/network/run/ifstate
2012-07-10 01:19:24.0000000000 /etc/papersize
... 

上面的命令按照更新时间的相反顺序对 /etc (及其所有子目录)中的文件进行排序,并打印出排序后的列表及其位置和更新时间。如果您还想检查目录,可以在命令中省略 -type f 选项。

要搜索 /target_directory 及其所有子目录中最近 60 分钟内修改过的文件:


$ find /target_directory -type f -mmin -60

要搜索 /target_directory 及其所有子目录中最近 2 天内修改过的文件:


$ find /target_directory -type f -mtime -2

要搜索 /target_directory 及其所有深度不超过 3 层的子目录中且在过去 2 天内修改过的文件:


$ find /target_directory -type f -mtime -2 -depth -3

您还可以指定更新时间范围。要搜索 /target_directory 及其所有子目录中最近 7 天内修改过的文件,但最近 3 天内未修改过的文件:


$ find /target_directory -type f -mtime -7 ! -mtime -3

到目前为止,所有这些命令仅打印出匹配的文件的位置。您还可以使用 -exec 选项获取最近修改的文件的详细文件属性,如下所示。

要搜索 /target_directory(及其所有子目录)中最近 60 分钟内修改过的文件,并打印出其文件属性:


$ find /target_directory -type f -mmin -60 -exec ls -al {} ;

或者,您可以使用 xargs 命令来实现相同的目的:


$ find /target_directory -type f -mmin -60 | xargs ls -l

请注意,在指定时间范围内创建的文件也将被这些命令匹配。

©2015-2025 艾丽卡 support@alaica.com