Skip to content Skip to main navigation Skip to footer

Linux/Unix:通过linux find命令删除查找到的文件

linux find何在linux操作系统或是类unix系统下使用linux find命令去查找文件并且将查找到的所有文件都删除呢?有时候我们不仅需要查找到文件还需要将其删除,但是传统的linux rm命令并不支持搜索功能,这个时候我们可以使用find命令去搜索特定目录下文件然后将文件删除。你可以将find命令和rm 命令结合起来去实现这个操作。
查找并删除文件
我们可以使用下面的命令来查找并删除文件:
find [directory] [patern] [action] 其中,
directory:指定要查找的目录
patern: 指定要查找的模式比如:*.jpg
action:  指定对查找的文件执行什么操作
为了删除多个文件名包含*.jpg 文件,使用下面的命令

find . -name  "*.jpg" -exec rm -rf {} \;

或者

find . -type f -name "*.jpg" -exec rm -f {} \;

上面的两个命令唯一的区别是第一个命令可以删除目录,而第二命令只能删除文件。
其中,
-name: 文件名匹配
-exec rm -rf {} \;: 删除所有匹配到模式的文件
-type f: 只匹配普通文件(不包括目录文件)
find命令实例:
1.查找当前目录下所有的包含*.bak的文件并删除它们
# find . -type f -name “*.bak” -exec rm -f {}\;
2.查找根目录下所有core文件并删除
# find / -name core -exec rm -f {} \;
3.查找当前目录下的所有包含*.bak的文件并删除所有查找到文件,删除是需要用户确认
#find . -type f -name “*.bak” -exec rm -i {} \;
命令输出:

[root@devops test]# find . -type f -name "*.bak" -exec rm -i {} \;
rm:是否删除普通空文件 "./t1.bak"?y
rm:是否删除普通空文件 "./t4.bak"?y
rm:是否删除普通空文件 "./t6.bak"?y

更多参考:
1.其它关于Linux find 命令的用法
2. find man帮助
3. Linux 删除文件

0 Comments

There are no comments yet

Leave a comment

Your email address will not be published.