定期从服务器中清除旧的未使用文件是最佳实践。例如,如果我们每天/每小时在服务器上运行文件或数据库备份,那么服务器上将会产生很多垃圾。所以要定期清洁。为此,您可以从备份目录中找到旧文件并清理它们。
本文向您介绍如何查找和删除超过 30 天的文件。这里的 30 天前是指最后修改日期在 30 天之前。
1.删除超过30天的文件
使用查找命令,您可以搜索并删除所有修改超过X天的文件。此外,如果需要,您可以使用单个命令删除它们。
首先,列出 /opt/backup 目录下所有超过 30 天的文件。
find /opt/backup -type f -mtime +30
验证文件列表并确保上述命令中没有列出有用的文件。确认后,您就可以使用以下命令删除这些文件。
find /opt/backup -type f -mtime +30 -delete
2.删除特定扩展名的文件
您还可以指定更多过滤器来查找命令,而不是删除所有文件。例如,您只能删除扩展名为“.log”并且在 30 天之前修改过的文件。
为了安全起见,首先进行试运行并列出符合条件的文件。
find /var/log -name "*.log" -type f -mtime +30
验证列表后,通过运行以下命令删除这些文件:
find /var/log -name "*.log" -type f -mtime +30 -delete
上面的命令只会删除带有.log
延期且最后修改日期超过 30 天。
3.递归删除旧目录
The -delete
如果目录不为空,选项可能会失败。在这种情况下,我们将使用 Linuxrm 命令用find来完成删除。
搜索下所有目录/var/log使用以下命令在 90 天之前进行修改。
find /var/log -type d -mtime +90
这里我们可以使用 rm 命令执行-exec
命令行选项。 Find命令的输出将被发送到rm命令作为输入。
find /var/log -type d -mtime +30 -exec rm -rf {} \;
WARNING:删除目录之前,请确保没有删除用户目录。有时父目录修改日期可能早于子目录。在这种情况下,递归删除也可以删除子目录。
结论
您已经了解了如何在 Linux 命令行中查找和删除已修改超过指定天数的文件。这将帮助您清理系统中不需要的文件。