Linux按照时间批量删除文件

按照时间批量查找

最近遇到了集群磁盘空间不足的问题,查看了一下,发现日志文件太多了,堆了好几年的,需要清理一年前的所有日志。
按照时间批量查询日志文件:

find ./ -mtime +300 -name 'raft.log.*'

-mtime:按照时间查询
+300:的意思是300天之前的所有文件
300:如果没有加号,那就是300天前的那一天
-300:如果是减号,那就是最近300天内

-name:查找名称
*号表示模糊匹配,我的日志都是类似于raft.log.2023-01-01,所以后面具体日期用型号替换

按照时间批量删除

在上面查询结果没问题的情况下,在后面加上:-exec rm -Rf {} ;

find ./ -mtime +200 -name 'raft.log.*' -exec rm -Rf {} \;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统中,要批量删除文件可以使用一些命令行工具来实现,以下是几种常用的方法: 1. 使用rm命令 rm命令是Linux系统中最常见的删除文件命令,它可以删除单个文件或一个目录及其所有子目录和文件。要批量删除多个文件,只需在rm命令后面依次列出要删除文件名即可。例如: ``` rm file1.txt file2.txt file3.txt ``` 这条命令将同时删除file1.txt、file2.txt和file3.txt三个文件。 2. 使用find命令 find命令可以在指定目录下搜索文件,并且可以使用-exec选项来在搜索结果中执行一个指定的命令操作。要批量删除多个文件,可以使用find命令搭配-exec选项来实现。例如: ``` find . -name "*.txt" -type f -exec rm {} \; ``` 这条命令将删除当前目录下所有扩展名为.txt的文件。其中,-name选项指定要搜索的文件名模式,-type选项指定搜索结果为文件而不是目录,-exec选项指定执行的命令为rm,{}表示搜索结果中的每个文件名,\;表示命令结束符。 3. 使用xargs命令 xargs命令可以从标准输入中读取一行行的文本,并将其转换为命令行参数传递给一个指定的命令执行。要批量删除多个文件,可以使用find命令搜索文件后使用xargs命令来批量删除。例如: ``` find . -name "*.txt" -print0 | xargs -0 rm ``` 这条命令将删除当前目录下所有扩展名为.txt的文件。其中,-print0选项指定以null字符分隔搜索结果中的每个文件名,-0选项指定以null字符分隔xargs命令输入的参数,rm命令将作用于搜索结果中的所有文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值