案列:/test/目录下有以a开头的文件若干,a1,a2^^^^^^a40
找出这些以a开头的,并进行删除操作
1, for i in `find . -name 'a*'`
> do
> rm -rf $i
> done
键盘左上的``---》是对命令返回值得返回
`find . -name 'a*'`是返回这个命令的执行结果!!!
2,rm -rf `find . -name 'a*'`
ps: find . -name 'a*' >/test/find.20140518
可以查看这个查看的结果[rm -rf a1,a2-->同时删除a1,a2]
3,利用xargs命令!(之前都是利用``符号传递执行的结果)
find . -name 'a*'|xargs rm -rf
ps:xargs是给命令传递参数的一个过滤器,通常情况下,xargs从管道或者stdin中读取数据
(关键):它能够捕获一个命令的输出,然后传递给另外一个命令
eg:
i) 获得/etc/ 下所有*.conf 结尾的文件列表,有几种不同的方法能得到相同的结果,下面的例子仅仅是 示范怎么实用xargs ,在这个例子中实用 xargs将find 命令的输出传递给ls -l
#find /etc -name "*.conf" | xargs ls –l
但是不能写成:find /etc -name "*.conf" | ls –l 这样写是错误的,因为很多命令不支持|管道来传递参数
而,xargs正好是通过管道来传递参数(上个命令的执行结果)
这个语句可以翻译为: ls -l `find /etc -name "*.conf"`
ii) 假如你有一个文件包含了很多你希望下载的URL, 你能够使用xargs 下载所有链接
# cat url-list.txt | xargs wget –c
iii)查找所有的jpg 文件,并且压缩它
# find / -name *.jpg -type f -print | xargs tar -cvzf p_w_picpaths.tar.gz
转载于:https://blog.51cto.com/yl497103815/1411821