【Linux命令篇】find命令-查找与清理过期文件

1、目录层级、文件类型、文件名过滤查找

find /data -maxdepth 1 -type f -name "*.sh"
find /data  -maxdepth 1 -type d -name "code"

2、逻辑操作符,与-a、或-o、非!

find /data  -name "*.sh" -a -name "*test*"
find /data  -name "*.sh" -o -name "*test*"
find /data ! -name "*.sh"

3、-path DIR -prune排除DIR目录,最好把排除条件放前面

find /data -maxdepth 1 -path /data/code -prune -o -type d -print

伪代码逻辑如下:

find /data -maxdepth 1
if -path /data/code then
-prune(排除)
elif  -type d
-print(打印)

4、-mtime +天数 按修改时间超过n天来过滤文件目录

find /data/ -type f -mtime +30 从/data目录下查找修改时间超过30天的文件

5、查找文件并删除
自带-delete参数 :放在最后面,不然会直接删除目录下所有文件,不考虑匹配条件
-exec rm -rf {} ; :{}会自动替代为查找结果
| xargs -I {} -L 10 rm -rf {}:-I指定通道结果替代符为{},-L指定每次操作的文件数,同时操作大量文件rm命令会报错

6、通过inode删除特殊字符文件

find ./* -inum inode号 -delete

ll -i 文件名 可以看到inode号为第一列

7、时间查找、定期过期文件综合用法

/bin/find /tmp/ -maxdepth 1 -mtime +30 -type d -exec /bin/rm -rf {} \;
/bin/find /data/ -maxdepth 1 -path /data/code -prune -o -type f  -mtime +7 -name "*.sh" -print | xargs -I {} /bin/rm -rf {};
/bin/find /usr/local/backups -mtime +10 -name "*.log" | xargs rm -rf
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值