下記のようなディレクトリ構造から、ファイル数のみを出力したい場合はどのようにすればよいですか?欲しいのは各サブディレクトリ内のファイル数であり、合計ファイル数ではありません。
<ディレクトリ構造>
roootdir
├subdir001
├subdir002
…
└subdir100
<欲しい結果>
8
10
2
…
30
roootdir というのは / のことか、何かのディレクトリなのか分からないので、以下、/roootdir 配下のサブディレクトリに対する bash のワンライナーです。
質問にあるような出力であれば、こんな感じ。
(cd /roootdir ; for d in *; do find $d -type f -print | wc -l; done)
これだと、どのディレクトリの数かが分からないので、こんな感じにした方が視認性が良いと思います。
(cd /roootdir ; for d in *; do find $d -type f -print | (printf "$d : " ; wc -l) ; done)
もし、/roootdir 直下にディレクトリとファイルが混在しているなら、こんな感じにすると /roootdir 直下のディレクトリだけを対象にします。
(cd /roootdir ; for d in `find . -type d -mindepth 1 -maxdepth 1 -print`; do find $d -type f -print | wc -l ; done)
上記の例みっつは、もし subdir001 などの下にさらにサブディレクトリがある場合には、それをもぐってファイルの数をカウントします。
find の次にある $d をダブルクォートで括るとどうなりますか?
Linux と言ってたのは、NAS の中なのですね。
2016/04/25 11:30:17だとすると、日本語がどうかなあ...
できました!凄い!ありがとうございます!
2016/04/25 11:37:11