質問: `find` で取得した長いファイルパスを `xargs` で取り扱いたいのですが、-Iオプションが機能しません。 ディレクトリ構造: ![パスの長いディレクトリ構造](https://i.stack.imgur.com/1Gwhb.png) 実行したコマンド ``` path="あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも" echo "path: ${path}" find "${path}" -mindepth 1 -maxdepth 1 -print0 | xargs -0 -n1 -P10 echo find "${path}" -mindepth 1 -maxdepth 1 -print0 | xargs -0 -n1 -P10 -I {} bash -c "echo {}" ``` 実行結果 ``` $ bash ./test.sh path: あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/.DS_Store あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも/あいうえおかきくけこさしすせそたちつてとなにぬねのまみむめも {} {} ``` 上記のように置き換えが機能せず、なぜか `{}` がそのまま表示されてしまいます。 どうしてでしょうか? 実行環境はmasOS Sierra 10.12.6です。 よろしくお願いいたします。
回答: macOSのxargsでは、-Iオプションで置換した後の文字列は255bytesが上限のようです。 `man xargs` によれば以下の通り。 ``` I replstr Execute utility for each input line, replacing one or more occurrences of replstr in up to replacements (or 5 if no -R flag is specified) arguments to utility with the entire line of input. The resulting arguments, after replacement is done, will not be allowed to grow beyond 255 bytes; this is implemented by concatenating as much of the argument containing replstr as possible, to the constructed arguments to utility, up to 255 bytes. The 255 byte limit does not apply to arguments to utility which do not contain replstr, and furthermore, no replacement will be done on utility itself. Implies -x. ```