Xargs
xargs:使用所有參數執行一次命令
我的目標是獲取已修改的文件列表
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 ...
有誰知道我怎麼能做到這一點?
... | xargs -0 rspec -f documentation
請注意,
rspec
如果命令行太長,這可能會呼叫多次。這不是問題,rspec
因為呼叫它一次的原因是性能,但不要將它用於xargs -0 tar cf archive.tar
任何第二次,第三次,……執行會創建覆蓋先前執行的輸出的存檔。