如何在 Linux 中删除超过 30 天的文件?

举报
wljslmz 发表于 2022/09/30 23:14:27 2022/09/30
【摘要】 如何在 Linux 中删除超过 30 天的文件在日常运维工作中,我们可能有这样的场景:删除超过30天的数据。最佳做法是在一段时间后从 Linux 系统中查找并删除旧的或未使用的文件,这样释放系统上的一些空间,让系统做更多有意义的。因为在删除文件之前它不会要求您确认,所以请确保不再需要这些文件。本文将向您展示如何在 Linux 中查找和删除超过 30 天的文件。要删除 Linux 服务器上超过...

如何在 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 天,可以根据需要更改天数。

如果您觉得本文对您有帮助,欢迎点赞+在看,有问题可以在下方评论区讨论哦!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。