0

設定された数 (例: 1000 以上) を超えるファイルを含むサーバー上のすべてのディレクトリを見つける方法が必要です。私は多くの大規模なサーバーで作業しており、何百万もの小さなログ ファイルを含むディレクトリを見つけることがあります。これらのディレクトリを見つける方法が必要です。

私は完全なディレクトリリストをスクリプト化してから実行するという行に沿って何かを考えていました... ll | | wc -l ...しかし、それを行うためのより良い/より速い方法があるかもしれないと思いましたか?

理想的には、このスクリプトを crontab で実行して週に 1 回実行するように設定します。

乾杯、スチュ

4

2 に答える 2

1

を好む:

[[ `ls -1 | wc -l` -gt 1000 ]] && echo `pwd` 

そして、循環...しかし、循環なし:

 ls -1R|awk -F "\n" 'BEGIN {RS="\\n\\n"} NF>1000 {print $1, NF-1}'

編集:

awkその大きなレコード (3000 バイト以上) を処理できないため、次のようにします。

for dirz in `find . -type d -print` ; do
    [[ `ls -1 $dirz | wc -l` -gt 1000 ]] && echo $dirz
done

HTH

于 2011-08-26T08:03:17.800 に答える
0

私は次のように2段階のアプローチを行います(テストされていません):

find / -type d -exec sh -c "find {} -depth 1 -type f -print | wc -l" \; | while read F N
  do
     [ $N -gt 1000 ] && echo $F $N
  done
于 2011-08-30T12:36:10.220 に答える