Xargs

xargs:使用所有參數執行一次命令

  • November 19, 2014

我的目標是獲取已修改的文件列表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任何第二次,第三次,……執行會創建覆蓋先前執行的輸出的存檔。

引用自:https://unix.stackexchange.com/questions/168626