在 Linux 中查找并删除超过 n 天的文件在 Linux 中查找并删除超过 n 天的文件在 Linux 中查找并删除超过 n 天的文件在 Linux 中查找并删除超过 n 天的文件
  • 业务
  • 目标
  • 支持
  • 关于
  • 联系我们
  • 登录
✕

在 Linux 中查找并删除超过 n 天的文件

发表 admin at 2025年2月28日
类别
未分类
标签

在本指南中,我们将了解如何在 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 配置
©2015-2025 Norria Group support@norria.com