[Linux] 1個の引数の長さの上限
問題
コマンドの引数の個数が多すぎるとエラーになりますが、1個の引数が長すぎてもエラーになりますか?最大値は?
Argument list too long
答え
以下でパラメータのサイズの上限が確認できるという話はよく見かける。
$ getconf ARG_MAX
2097152
100文字ぐらいのファイルが2万個あると、引数が200万byteを超えて rm *
が失敗するといったもの。
ただ、1個のとても長い引数がある場合でも Argument list too long が発生する。
それは MAX_ARG_STRLEN という定数があり、ページサイズ*32 → 128kb であることが多いらしい。
実際に手元の RHEL9互換の環境で試すと、13万文字付近を超えるとエラーになるのが確認できた。
環境によると思われるが、1個の引数の長さの限界は128kbあたりのようだ。
コメント