ディレクトリ内、またはサブディレクトリ毎のファイルの数を取得する方法
動画から画像を作成したり、水増しを行った時に各ディレクトリのファイルの数を一気に取得出来るので、特に2つ目のはめっちゃ便利。
ディレクトリ内のファイル数を取得
# 方法1 $ ls -U1 | wc -l # 方法2(1より遅い) $ find . -type f | wc -l
lsのオプションに-l
を用いるとファイルのアクセス権限なども表示するが、
-1
だとファイル名しか表示しない。
更に、-U
もつけることでソートしないようになるため、出来るだけ速度を向上させることが出来る。
ディレクトリ内のサブディレクトリ毎のファイル数を取得
$ for d in `find ./ -type d`; do echo $d,`ls "$d" | wc -l`; done ./, 4 .//R0_L1, 21453 .//R0_L0, 20450 .//R1_L0, 0 .//R1_L1, 0
見やすくすると以下のようになる。
for d in `find ./ -type d`; do echo $d,`ls "$d" | wc -l`; done
以下、各コマンドの解説
①find ./ -type d
:カレントディレクトリでタイプが「ディレクトリ」のものを表示
②ls "$d"
:カレントディレクトリにあるディレクトリの中身を表示
③ls "$d" | wc -l
:カレントディレクトリにあるディレクトリの中にあるファイルの数を表示
④do echo $d,`ls "$d" | wc -l`
:①を③の結果をカンマ区切りで表示