検索用のループ用のBashスクリプトと多くのディレクトリ

検索用のループ用のBashスクリプトと多くのディレクトリ

私は多くの(100,000+)のサブディレクトリを含むディレクトリでいくつかのタスクを実行するためのbashスクリプトを書いています。以下のようにforループに渡すことができるパラメータの数に事前定義された制限はありますか?

for dir in $(find . -type d)
do
  # My code
done

findコマンドがあまりにも多くのディレクトリを返すと、スクリプトが失敗するのではないかと心配されます。

ベストアンサー1

find出力を解析するのではなく、シェルワイルドカードのみを使用してください。これはより安全で、シェルに組み込まれています。シェル組み込み(for外部プロセスなど)は呼び出しを行わないため、外部プロセスと同じパラメータリスト長制限は適用されませんexec*

for dir in ./*/; do
    # ...
done

おすすめ記事