Linux搜索和删除超过 7 天的文件
让我们举个例子,我们将查找并删除超过 7 天的文件。
为此,我们将使用 find 命令的选项“-mtime”。
- 使用 find 命令获取文件列表,如下所示:
# find /path_to_directory -mtime +7 -type f -exec ls {}\;
- 如果文件名以任何特定模式开头,请按如下方式过滤:
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;
- 检查并确认输出后,去删除脚本(非常重要),否则会有不可恢复的数据丢失。
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;
- 如果这需要通过 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"
按文件时间戳搜索
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