linux find命令将查找到的文件批量删除方法(linux find 查找文件名)难以置信

随心笔谈12个月前发布 admin
104 0



目录linux find命令将查找到的文件批量删除Linux中find三种删除方式,常用于crontab定时任务和shell脚本0、按文件类型查找1、按文件名查找2、按文件时间属性查找3、按指定目录深度查找4、排除指定子目录查找5、按文件大小查找6、实例:

全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件:

[root@linuxcool ~]# find / -name “*.mp4” -exec rm -rf {} \;

补充知识

find 查看删除的三种方式,如删除当前目录下的TXT文件:

方法1:xargs rm -f

find https://www.jb51.net/article/ -type f -name “*txt” |xargs rm -f

方法2:-exec rm -f

find https://www.jb51.net/article/ -type f -name “*txt*” -exec rm -f {} \;

-exec命令是查找到的每个文件调用一次rm命令,因此速度最慢

方法3:-delete

find https://www.jb51.net/article/ -type f -name “*txt” -delete

如果一次删除大量文件,建议采用第三种方式。经测试在删除千万级文件时,第三种方式比前两种快百倍。

删除时,常用参数:

-type:后面指定文件的类型。

b – 块设备文件。

d – 目录。

c – 字符设备文件。

p – 管道文件。

l – 符号链接文件。

f – 普通文件。

-name: 查找时文件名大小写敏感。

-iname: 查找时文件名大小写不敏感。

-atime -n[+n]: 找出文件访问时间在n日之内[之外]的文件。
-ctime -n[+n]: 找出文件更改时间在n日之内[之外]的文件。
-mtime -n[+n]: 找出修改数据时间在n日之内[之外]的文件。
-amin -n[+n]: 找出文件访问时间在n分钟之内[之外]的文件。
-cmin -n[+n]: 找出文件更改时间在n分钟之内[之外]的文件。
-mmin -n[+n]: 找出修改数据时间在n分钟之内[之外]的文件。

find -ctime -2 #找出距此时2天之内创建的文件
find -ctime +2 #找出距此时2天之前创建的文件

-maxdepth: 后面的参数表示距当前目录指定的深度,其中1表示当前目录,2表示一级子目录,以此类推。在指定该选项后,find只是在找到指定深度后就不在递归其子目录了。

-path pathname -prune: 避开指定子目录pathname查找。

-path expression -prune: 避开表达中指定的一组pathname查找。

需要说明的是,如果同时使用-depth选项,那么-prune将被find命令忽略。

-size [+/-]100[c/k/M/G]: 表示文件的长度为等于[大于/小于]100块[字节/k/M/G]的文件。

-empty: 查找空文件。

删除N天前的文件,将/usr/local/backups目录下所有10天前带”.”的文件删除

find /usr/local/backups -mtime +10 -name “*.*” -exec rm -rf {} \;

到此这篇关于linux find命令将查找到的文件批量删除的文章就介绍到这了,更多相关linux find删除文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Linux下find?命令的?7?种用法详解Linux下find查找文件命令和grep查找文件命令Linux中一种友好的find替代工具(fd命令)Linux文本查找命令find的用法详解Linux 命令find之查找文件的示例Linux中find命令的用法汇总find命令的结果顺序是什么

© 版权声明

相关文章