在Linux中查找和删除早于n天的文件

时间:2020-02-23 14:38:10  来源:igfitidea点击:

在本指南中,很好地了解了如何在Linux中删除早于n天的文件。最常见的用例是删除已超过一定天数的旋转日志,或者删除旧备份以清除空间以用于更新的备份。

因此,让我们考虑一个例子。恶意搜索/var/log下扩展名超过7天的.tar.gz文件,并将其删除。无效的使用find命令搜索文件。

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

-mtimeoption用于指定文件的最后修改;即n * 24小时前。 +7表示超过7天。

-exec选项用于在find中执行命令。在此执行的命令isrm -f

最后{} ;表示在项目列表中循环。

如果要列出文件而不删除它们,请使用以下命令:

# cd /var/log
# find . -type f -mtime +7d -ls

要查找和删除大于指定大小且大于n天的文件,请使用-sizeoption:例如:

# 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