2013年12月16日月曜日

再帰的にファイル数、ディレクトリ数を取得する

CentOSは1つのディレクトリに最大32000個までしかディレクトリを作れない。
でも作るシステムによってはテンポラリのディレクトリとかが溜まって危ないかもしれないのでチェックスクリプトを作ってみた。

#!/bin.sh

DIR=/home/hoge/

Seek(){
  for ELEM in * ; do
    if [ -d "$ELEM" ] ; then
      # ファイルだけなら -type f
      # ディレクトリだけなら -type d
      CNT=`find "$ELEM" -maxdepth 1 -type d | wc -l`
      if [ $CNT -ge 5000 ] ; then
        # 5000個を超えているものだけ出力
        PWD=`pwd`
        echo "$PWD/$ELEM : $CNT"
      else
        # 5000個を超えていないディレクトリだけさらに再帰的に処理
        (cd "$ELEM";Seek;)
      fi
    fi
  done
}

0 件のコメント:

コメントを投稿