Osx
OSX 上的 xargs:非法選項 –
我在 OSX 上。我想針對特定目錄中的所有 png 執行 python 腳本。這是我嘗試過的:
find docs/ -name "*png" | xargs --replace=F python myscript.py "F"
但我看到了這個:
xargs: illegal option -- - usage: xargs [-0opt] [-E eofstr] [-I replstr [-R replacements]] [-J replstr] [-L number] [-n number [-x]] [-P maxprocs] [-s size] [utility [argument ...]]
我究竟做錯了什麼?
xargs
在 Mac OS X上不支持該--replace
選項;您可以-I
改用:find docs/ -name "*png" | xargs -I F python myscript.py "F"
產生奇怪的錯誤消息是因為此版本
xargs
將單個字元之後的字元解釋-
為選項,因此--replace
它正在尋找一個名為 的選項-
,該選項不存在。
Mac OSX xargs不支持像GNU xargs這樣的長選項。要
--replace
像 GNU xargs 一樣使用,請使用-I
:find docs/ -name "*png" | xargs -I F python myscript.py "F"
請注意,此方法因文件名包含換行符而中斷,您希望使用
find -print0
withxargs -0
:find docs/ -name "*png" -print0 | xargs -0 -I F python myscript.py "F"
或標準一:
find docs/ -name "*png" -exec python myscript.py {} +