在本文中我们将介绍如何在Linux系统中删除超过n天的文件,方法非常的简单,使用find命令和rm命令配合,最常见的用例是删除早于特定天数的轮换日志或删除旧备份以清除空间以进行最近的备份。
查找和删除超过n天文件的方法 1、让我们看一个例子,我将在/var/log下搜索扩展名为.tar.gz且超过7天的文件并删除它们,我将使用find命令搜索文件: # find /var/log/ -name *.gz -mtime +7 -exec rm -rf {} \; 参数说明: -mtime选项用于指定文件的最后修改,即n*24小时前,+7表示超过7天。 -exec选项用于在find中执行命令,这里执行的命令是rm -f。 最后{} \;意味着循环遍历项目列表。 参考: 1]、在Linux系统中使用ls、tree和find快速定位文件。 2]、rm命令_Linux rm命令使用详解:用于删除给定的文件与目录。 2、如果要列出文件而不删除它们,请使用以下命令: # cd /var/log # find . -type f -mtime +7d -ls 3、要查找和删除大于指定大小且超过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
相关主题 |