2011-09-15 130 views
0

的中間數據。如果我需要的腳本如下圖所示:殼牌管道在另一個命令

find -name 'lib*.so' | xargs cp <files> ~/libs/. 

凡<文件>是我從以前find命令找到該文件。基本上,我想不僅僅是在最後,而是在中間的一些地方。 (有些東西像$ 1 ???)

我知道我可以有一個小的sh文件,我可以在變量中使用此循環並使用For循環&使用該變量....但我想要的只是一個簡單的我在上面解釋過。簡單的任務可以輕鬆完成。

注意:上面的腳本只是問題類型和實際問題的指示。

讓我知道這是否可能。

+1

尋找你的命令的選項。例如'cp'有'-t'選項來指定目標目錄。這樣,你仍然可以在最後使用'find'命令的結果。 –

+0

請注意,'-t'選項在POSIX中不是標準的,但是對於GNU'cp'非常有用。 –

回答

0

我希望我理解你想在這裏做什麼?

可以使用只能找到這樣做。

find -name 'lib*.so' -exec cp {} ~/libs/ \; 
+1

這是有效的,但每次調用'cp'都會複製一個文件,這可能有點貴。 –

1

如果你只想做副本

find -name 'lib*.so ' -print0 | xargs -r0 cp --target ~/libs/ 
1

爲此,您可以只用找到,而不必做產卵cp(1)爲每個文件:

find -name 'lib*.so' -exec cp -t ~/libs {} + 

注意,這隻適用於GNU cp和符合POSIX 2008標準的查找,如GNU查找。