如何在 Linux 中删除超过 30 天的文件?
如何在 Linux 中删除超过 30 天的文件
在日常运维工作中,我们可能有这样的场景:删除超过30天的数据。
最佳做法是在一段时间后从 Linux 系统中查找并删除旧的或未使用的文件,这样释放系统上的一些空间,让系统做更多有意义的。
因为在删除文件之前它不会要求您确认,所以请确保不再需要这些文件。
本文将向您展示如何在 Linux 中查找和删除超过 30 天的文件。
要删除 Linux 服务器上超过 30 天的文件,您需要一起使用多个命令,例如find 命令、mtime命令、exec命令和rm 命令。
什么是mtime命令
mtime(File Last Modify Time,文件上次修改时间)。
mtime 显示修改、附加或更新文件内容的时间。
time 参数单位默认未为’24 hours’。例如,时间 2 = 2*24 小时(2 天)。
1) 搜索和删除超过 30 天的文件
首先,我们将在“/opt/app/java”目录下找出所有超过 30 天的文件。
以下输出将允许您在删除这些文件之前检查是否需要这些文件。如果没有,请使用以下命令删除它们。
$ find /opt/app/java -type f -mtime +30 -print
/opt/app/java/shce.zip
/opt/app/java/zhpt.zip
/opt/app/java/rocketmp.zip
/opt/app/java/redis.zip
/opt/app/java/jdk.zip
/opt/app/java/zookper.zip
/opt/app/java/gb-28181.png
/opt/app/java/external-server.png
/opt/app/java/router.png
一旦您确定不再需要这些文件,请继续使用以下命令之一将其删除。
$ find /opt/app/java -type f -mtime +30 -exec rm -f {} \;
或者
$ find /opt/app/java -type f -mtime +30 | xargs rm -f
细节:
find
: find 是一个命令/opt/app/java
: 文件路径(替换成你要的路径即可)-type f
: 什么类型的文件-mtime +30
: 它过滤 30 天前的文件。-exec rm -f
执行文件删除操作{}
: 表示通过 Find 命令找到的文件。\;
它将结束命令。
2) 使用通配符选项删除超过 30 天的文件
在很多情况下,当日志目录中有许多不同名称的日志文件时,您可能需要根据名称删除文件,我通常使用此命令删除系统上超过30天的文件。
最好进行试运行,而不是直接移除,这样可以有时间在删除文件之前进行检查。
$ find /opt/app/java -type f -name "Trans_suc*" -mtime +30 -print
验证列表后,选择以下命令之一将其删除。
$ find /opt/app/java -type f -name "Trans_suc*" -mtime +30 -exec rm -f {} \;
或者
$ find /opt/app/java -type f -name "Trans_suc*" -mtime +30 | xargs rm -f
3) 使用特定扩展名删除超过 30 天的文件
有时您可能需要根据文件扩展名删除文件而不是直接删除它们。例如,要删除带有“.log”扩展名并在 30 天内修改的文件,请运行:
首先,让我们在“/var/log”目录下查找并打印超过 30 天的日志文件列表:
$ find /var/log -type f -name "*.log" -mtime +30 -print
/var/log/error.log
/var/log/access.log
如果不再需要,请检查列表并使用以下命令之一将其删除。
$ find /var/log -type f -name "*.jpeg" -mtime +1 -exec rm -f {} \;
或者
$ find /var/log -type f -name "*.jpeg" -mtime +1 | xargs rm -f
总结
在本文中,我们通过三个不同的例子向您展示了如何在 Linux 上删除超过 30 天的文件,它不限于 30 天,可以根据需要更改天数。
如果您觉得本文对您有帮助,欢迎点赞+在看,有问题可以在下方评论区讨论哦!
- 点赞
- 收藏
- 关注作者
评论(0)