zhyiwww
用平实的笔,记录编程路上的点点滴滴………
posts - 536,comments - 394,trackbacks - 0
linux 命令find可以用来查找匹配文件,然后再执行一些相应的操作,使用起来很方便。
如果能把把查到的文件路径以参数的名称直接传递给后面的命令,类似管道的方式的话就更方便了。

find的帮助文件里面有这样的一个例子:

find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

很显然,find查到匹配的文件后,就执行了xargs做为了 rm命令的第一参数,也是最后一个参数。所以,可以顺利地执行。

假设,我想把匹配的文件复制到一个地方,该怎么办呢?问题的难点是:cp命令需要两个参数,如果你直接,用上面的方式,那么你xargs是作为第一参数呢,还是第二参数呢?

XXXX@XXXX-desktop:/tmp/shp_data$ find . -path .*line.*  | xargs  cp   /tmp
cp: target `./guangxi/Back/Bguangxi_polyline.dbf' is not a directory
XXXX@XXXX-desktop:/tmp/shp_data$


所有,就需要让cp知道你的参数顺序,可以用下面的方法来实现:

XXXXX@XXXXX-desktop:/tmp/shp_data$ find . -path .*line.*  |  cp `xargs`  /tmp



















|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|
posted on 2009-12-17 11:04 zhyiwww 阅读(2057) 评论(0)  编辑  收藏 所属分类: linux

只有注册用户登录后才能发表评论。


网站导航: