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 ...

有人知道我怎樣才能實現這個目標嗎?

答案1

... | xargs -0 rspec -f documentation 

rspec請注意,如果命令列太長,則可能會呼叫多次。這不是問題,rspec因為呼叫它一次的原因是效能,但不要將它用於諸如xargs -0 tar cf archive.tar任何第二次、第三次…運行都會創建一個存檔覆蓋先前運行的輸出之類的情況。

相關內容