我的目标是获取已修改的文件列表git
,然后运行rspec
命令将每个文件作为参数传递。
目前我有:
$ git status -s | awk '{if ($1 == "M") print $2}' | tr "\\n" "\\0" | \
xargs -0 -I % rspec -f documentation %
这在技术上是可行的,但它rspec
针对每个修改的文件运行,我希望它运行:
$ rspec path/to/file/1 path/to/file/2 ...
有人知道我怎样才能实现这一目标吗?
答案1
... | xargs -0 rspec -f documentation
rspec
请注意,如果命令行太长,则可能会调用多次。这不是问题,rspec
因为调用它一次的原因是性能,但不要将它用于诸如xargs -0 tar cf archive.tar
任何第二次、第三次……运行都会创建一个存档覆盖先前运行的输出之类的情况。