方法1 find /data -type f -name "oldboy.txt" -exec rm {} \;
find /data -type f 在data下查找类型为f的文件
-name "oldboy.txt" 名字为oldboy.txt
-exec执行前面查找到的文件
rm执行删除
[root@oldboy data]# ll
total 8
-rw-r--r-- 1 root root 0 May 5 2013 11:11:11
-rw-r--r-- 1 root root 0 Jul 26 03:59 a.txt
-rw-r--r-- 1 root root 7 Jul 26 01:50 a.txt~
-rw-r--r-- 1 root root 0 Jul 26 02:53 b
-rw-r--r-- 1 root root 0 Jul 26 03:59 b.txt
-rw-r--r-- 1 root root 0 Jul 26 03:58 oldboy.txt
drwxr-xr-x 2 root root 4096 Jul 26 02:53 oldboy1
lrwxrwxrwx 1 root root 10 Jul 26 02:18 oldboy_link.txt -> oldboy.txt
[root@oldboy data]# find /data/oldboy -type f -name '*.txt' -exec rm {} \;
find: `/data/oldboy': No such file or directory
[root@oldboy data]# find /data -type f -name '*.txt' -exec rm {} \;
[root@oldboy data]# ll
total 8
-rw-r--r-- 1 root root 0 May 5 2013 11:11:11
-rw-r--r-- 1 root root 7 Jul 26 01:50 a.txt~
-rw-r--r-- 1 root root 0 Jul 26 02:53 b
drwxr-xr-x 2 root root 4096 Jul 26 02:53 oldboy1
lrwxrwxrwx 1 root root 10 Jul 26 02:18 oldboy_link.txt -> oldboy.txt
{} 表示找到的内容
方法2 find /data -type f -name "*.txt" |xargs rm -f
*通配符 把查找到的文件通过管道(|)传递给rm -f 加xargs 意思是把a.txt b.txt做成一行处理,相当于执行
rm -f /data/a.txt /data/b.txt
[root@oldboy data]# ll
total 8
-rw-r--r-- 1 root root 0 May 5 2013 11:11:11
-rw-r--r-- 1 root root 0 Jul 26 04:09 [a..c].txt
-rw-r--r-- 1 root root 0 Jul 26 04:09 a.txt
-rw-r--r-- 1 root root 7 Jul 26 01:50 a.txt~
-rw-r--r-- 1 root root 0 Jul 26 02:53 b
-rw-r--r-- 1 root root 0 Jul 26 04:09 b.txt
-rw-r--r-- 1 root root 0 Jul 26 04:09 c.txt
drwxr-xr-x 2 root root 4096 Jul 26 02:53 oldboy1
lrwxrwxrwx 1 root root 10 Jul 26 02:18 oldboy_link.txt -> oldboy.txt
[root@oldboy data]# find /data -type f -name '*.txt' |xargs rm -f
[root@oldboy data]# ll
total 8
-rw-r--r-- 1 root root 0 May 5 2013 11:11:11
-rw-r--r-- 1 root root 7 Jul 26 01:50 a.txt~
-rw-r--r-- 1 root root 0 Jul 26 02:53 b
drwxr-xr-x 2 root root 4096 Jul 26 02:53 oldboy1
lrwxrwxrwx 1 root root 10 Jul 26 02:18 oldboy_link.txt -> oldboy.txt