在 Linux 中查找并删除超过 n 天的文件
在本指南中,我们将了解如何在 Linux 中删除超过 n 天的文件。最常见的用例是删除超过一定天数的轮换日志,或删除旧备份以腾出空间用于更新的备份。
让我们考虑一个例子。我将在 /var/log 下搜索扩展名为 .tar.gz 早于 7 天 的文件 并删除它们。我将使用查找命令来搜索文件。
# find /var/log/ -name *.gz -mtime +7 -exec rm -rf {} \;-mtime 选项用于指定文件的最后修改时间;即 n*24 小时前。 +7 表示超过 7 天。
-exec选项用于执行find中的命令。此处执行的命令是rm -f
最后一个{} \; 表示循环遍历项目列表。
如果您想列出文件而不删除它们,请使用以下命令:
# cd /var/log
# find . -type f -mtime +7d -ls要查找并删除大于指定大小且超过 n 天的文件,请使用 -size 选项:例如:
# find /var/log/ -name *.gz -mtime +7 -size +1G -exec rm -rf {} \;请注意,可以在删除文件之前将文件列表保存到变量中。
# file_list=`find . -name *.gz -type f -mtime +7`
# for i in ${file_list[@]}; do
echo "Deleting $i file"
rm $i
done有关更多查找选项,请参阅其手册页:
# man find有关 Linux 系统管理的更多指南:
- 在 Windows Linux 子系统 (WSL) 上运行 Linux GUI 应用程序
- 如何使用 Wetty 在 Web 浏览器上运行 Linux 终端
- 使用 grubby 修改 Linux 上的 grub.cfg 配置

