Osx

OSX 上的 xargs:非法選項 –

  • May 24, 2016

我在 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 -print0with xargs -0

find docs/ -name "*png" -print0 | xargs -0 -I F python myscript.py "F"

或標準一:

find docs/ -name "*png" -exec python myscript.py {} +

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