小言_互联网的博客

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

367人阅读  评论(0)

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天来过滤文件目录

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

转载:https://blog.csdn.net/IT__killer/article/details/104520623
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场