Linux搜索和删除超过 7 天的文件

让我们举个例子,我们将查找并删除超过 7 天的文件。
为此,我们将使用 find 命令的选项“-mtime”。

  1. 使用 find 命令获取文件列表,如下所示:
# find /path_to_directory -mtime +7 -type f -exec ls {}\;
  1. 如果文件名以任何特定模式开头,请按如下方式过滤:
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;
  1. 检查并确认输出后,去删除脚本(非常重要),否则会有不可恢复的数据丢失。
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;
  1. 如果这需要通过 cron 作业在远程服务器上完成并记录已删除文件的文件名,请使用以下命令
# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"
在 Linux 中如何查找和删除早于某个特定时间段的文件

按文件时间戳搜索

Unix/Linux 文件系统在每个文件上都有三种类型的时间戳。
它们如下:

  • 访问时间 (-atime) :上次访问文件时的时间戳。
  • 修改时间 (-mtime) :上次修改文件时的时间戳。
  • 更改时间 (-ctime) :上次修改文件元数据(例如权限或者所有权)的时间戳。
on it road .com

Linux find 命令

-mtime 参数将根据修改时间搜索文件; -ctime 根据更改时间进行搜索。
-atime、-mtime 和 -ctime 使用时间以天为单位。
find 命令还支持以分钟为单位的选项。
这些如下:

  • -amin(访问时间)
  • -min(修改时间)
  • -cmin(更改时间)

例如,要打印访问时间超过 7 分钟的所有文件,请使用以下命令:

# find . -type f -amin +7 -print

-newer的选项

-newer 选项指定一个带有修改时间的参考文件,用于选择比参考文件最近修改的文件。

查找比 file.txt 文件最近修改的所有文件:

# find . -type f -newer file.txt -print
日期:2020-09-17 00:13:38 来源:oir作者:oir