lsのパラメータリストが長すぎます。

lsのパラメータリストが長すぎます。

ls *.txt | wc -l多くのファイルを含むディレクトリにアクセスしようとすると、次のエラーが発生します。

-bash: /bin/ls: Argument list too long

この「パラメータリスト」のしきい値は、システムの展開または仕様によって異なりますか?通常、このような大きな結果を他のコマンド(例:)にパイプするため、wc -l端末の制限は気にしません。

ベストアンサー1

エラーメッセージパラメータリストが長すぎます。~から*ls *.txt

この制限はバイナリとカーネルの両方に安全です。バラよりARG_MAX、新しいプロセスの最大パラメータ長これに関する詳細情報と使用方法と計算方法。

パイプサイズにはそのような制限はありません。したがって、単に次のコマンドを実行できます。

find -type f -name '*.txt'  | wc -l

ls注:最新のLinuxでは、ファイル名の奇妙な文字(改行文字など)が同じツールを使用してエスケープされますが、findまだ表示されます。*。以前のUnixを使用している場合は、このコマンドが必要です。

find -type f -name '*.txt' -exec echo \;  | wc -l

NB2:名前に改行文字を含むファイルを作成する方法を知りたいです。コツを知ったら難しくありません。

touch "hello
world"

おすすめ記事