31個以上のファイルを含むディレクトリのみを印刷する

31個以上のファイルを含むディレクトリのみを印刷する

私はこのスクリプトを使ってディレクトリとサブディレクトリのファイル数を計算します。

for i in $(find . -type d) ; do 
  printf "$i %s\t" ;
  ( find $i -type f | wc -l ) ; 
done

このスクリプトはうまく動作します。私が本当に望むのは、31個以上のファイルを含むディレクトリだけを印刷することです。

ベストアンサー1

努力する:

find . -type d -exec sh -c '[ $(find "$1" -type f | wc -l) -gt 31 ]' _ {} \; -print

-maxdepth2番目の項目に制限を使用することをお勧めしますfind。そうしないと、驚くべき結果が出る可能性があります。このコマンドは、改行文字を含む名前には機能しません。

おすすめ記事