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

时间:2020-02-23 14:30:24  来源:igfitidea点击:

在本教程中,我们将查看如何删除Linux中的n天的文件。
最常见的用例是删除旋转日志,该日志比一定数量的天数或者删除旧备份以清除空间以获得更多最近的备份。

让我们考虑一个例子。
我将使用超过7天的over .tar.gz搜索/var/log下的文件并删除它们。
我将使用find命令搜索文件。

# find /var/log/-name *.gz -mtime +7 -exec rm -rf {} \;

-mtime选项用于指定文件的最后修改;例如:N * 24小时前。
+7意味着超过7天。

-exec选项用于执行查找中的命令。
这里执行的命令是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