xargs的最终参数

dan*_*ast 17 xargs

我想做类似的事情:

find . -type f | xargs cp dest_dir
Run Code Online (Sandbox Code Playgroud)

但是xargsdest_dir用作初始论证,而不是最终论证.我想知道:

  1. 是否可以指定最终参数xargs
  2. 任何其他替代方案可以达到相同的效果?

编辑

一个可能的,但繁琐的替代方案是:

find . -type f | while read f ; do echo cp $f dest_dir ; done
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个,因为cp会启动几十个进程.

Dar*_*rix 21

-I选项用replace-str从标准输入读取的名称替换initial-arguments中的出现.

例如:

find . -type f | xargs -I file cp file dest_dir
Run Code Online (Sandbox Code Playgroud)

应该解决你的问题.

以下教程中的更多细节:

http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/

特别是关于{}作为参数列表标记的部分

  • 但是,`-I`意味着`-L 1`,这意味着它仍然受到OP试图避免的问题的困扰(*"我不喜欢这样,因为将启动数十个cp进程."*) (3认同)