Shell 在另一个命令中间传输数据

发布于 2024-12-04 13:34:01 字数 341 浏览 0 评论 0原文

如果我需要像下面这样的脚本:

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

Where <文件>是我从前面的 find 命令中找到的文件。基本上我想不仅在末尾传输数据,而且在中间的一些地方传输数据。 (像 $1 ???)

我知道我可以有小的 sh 文件,我可以将其放在变量中并使用 For 循环 &使用该变量......但我想要的是简单的变量,正如我上面解释的那样。可以轻松完成简单任务的地方。

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

让我知道这种方式是否可行。

If I need to have scripts like below:

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

Where < files > is the file which I found from the previous find command. Basically i want to pipe the data not just at the end but some where in the middle. (Some thing like $1 ???)

I understand I can have small sh file, where I can have this in a variable and use For loop & use that variable.... But what I want is simple one as I explained above. Where simple tasks can be accomplished easily.

Note: The script above is only a indication of type of Problem and the actual problem.

Let me know if this kind is possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不顾 2024-12-11 13:34:01

如果你只是想复制

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

If you just want to do copy

find -name 'lib*.so ' -print0 | xargs -r0 cp --target ~/libs/
分開簡單 2024-12-11 13:34:01

您可以仅使用 find 来完成此操作,而不必通过执行以下操作为每个文件生成 cp(1)

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

请注意,这仅适用于 GNU cp 和 POSIX 2008 兼容的 find,例如 GNU find。

You can do this using find only, without having to spawn cp(1) for each file by doing:

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

Note that this only works with GNU cp and a POSIX 2008 compliant find, like GNU find.

那伤。 2024-12-11 13:34:01

我希望我明白你在这里想要做什么...

你只能使用 find 来完成此操作。

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

I hope I understand what you're trying to do here...

You can do this using find only.

find -name 'lib*.so' -exec cp {} ~/libs/ \;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文