xargs:使用所有参数运行一次命令

Mic*_*dry 3 xargs

我的目标是获取已修改的文件列表git,然后运行rspec命令将每个文件作为参数传入。

目前我有:

$ git status -s | awk '{if ($1 == "M") print $2}' | tr "\\n" "\\0" | \
    xargs -0 -I % rspec -f documentation %
Run Code Online (Sandbox Code Playgroud)

这在技术上有效,但它rspec为每个修改过的文件运行,我希望它运行:

$ rspec path/to/file/1 path/to/file/2 ...
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能做到这一点?

Hau*_*ing 5

... | xargs -0 rspec -f documentation 
Run Code Online (Sandbox Code Playgroud)

请注意,rspec如果命令行太长,这可能会调用多次。这不是问题,rspec因为调用它一次的原因是性能,但不要将它用于xargs -0 tar cf archive.tar任何第二次、第三次……运行会创建一个覆盖先前运行输出的存档的地方。