🦒
rmにワイルドカードを与えるとArgument list too longとエラーが出る
ワイルドカードが展開された結果として、引数の数が多すぎるとエラーが返るようです。
$ rm logs/*.json
bash: /bin/rm: Argument list too long
ファイルのリスト作成を find
に任せ、 rm
は渡された個々のファイルを削除するように変更します。
$ find logs -name *.json | xargs rm
何をもって too long
とするかは、 ARG_MAX
という構成値によるようです。
$ getconf ARG_MAX
1048576
これは引数の数そのものではないとのことでした[1]。
大量のJSONがログとして出力されており削除しようとしたところ、このエラーに行き当たりました。他のファイルも入っており、またディレクトリそのものは保持したい場合に必要な対応となります。
Discussion