Shell在另一个命令的中间管理数据

时间:2011-09-15 06:49:42

标签: linux shell pipe

如果我需要下面的脚本:

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

其中&lt;文件&gt;是我从上一个find命令找到的文件。基本上我想管道数据不仅在最后,而是在中间的某些地方。 (有些东西比如$ 1 ???)

我知道我可以有一个小sh文件,我可以在变量中使用它并使用For loop&amp;使用那个变量....但我想要的是简单的,如上所述。可以轻松完成简单的任务。

注意:上面的脚本只是问题类型和实际问题的指示。

请告诉我这种情况是否可行。

3 个答案:

答案 0 :(得分:1)

如果您只想复制

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

答案 1 :(得分:1)

您可以使用find进行此操作,而不必为每个文件生成cp(1)

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

请注意,这仅适用于GNU cp和符合POSIX 2008标准的查找,例如GNU find。

答案 2 :(得分:0)

我希望我明白你在这里要做的事情......

您可以使用“仅查找”来执行此操作。

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