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://m.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2009-12-17 11:04
zhyiwww 閱讀(2066)
評論(0) 編輯 收藏 所屬分類:
linux