👾
bash -c で受け取れるコマンドの最大長
背景
bash -c
で長文実行しようとしたところ、下記のエラーが出て失敗する
OSError: [Errno 7] Argument list too long: '/bin/bash'
最大長があるようなので、変更できるか探してみた。
内容
最大長の確認
下記の記事で最大長が確認できることがわかる。
<コマンド引数の文字数制限 – Argument list too long>
getconf ARG_MAX
2097152
docker
のPython:3
コンテナでは2097152byteらしい
最大長の変更
ARG_MAX
はLinuxのカーネルを再コンパイルすれば変更できるらしい。
(とても大変そう…)
<Is it possible to increase the maximum number of characters that ksh variable accepts?>
そこまでできない方はxargs
でパイプすると回避できる様子です。
xargs
内で問題ない量に分割実行してくれるという事でした。
ls | xargs rm
Discussion