ディレクトリやその他のタイプではなく、ファイルのみの再帰的なカウントが必要であると仮定すると、次のようなものが機能するはずです:
find . -maxdepth 1 -mindepth 1 -type d | while read dir; do
printf "%-25.25s : " "$dir"
find "$dir" -type f | wc -l
done
このタスクは私をとても魅了したので、自分で解決策を見つけたいと思いました.while ループさえも必要とせず、MAY 言うまでもなく、Thor の努力のおかげで物事を詳細に理解することができました。
これが私のものです:
find . -maxdepth 1 -mindepth 1 -type d -exec sh -c 'echo "{} : $(find "{}" -type f | wc -l)" file\(s\)' \;
控えめに見えるのには理由があります。見た目よりも強力だからです。 :-)
ただし、これを .bash_aliases
に含める予定がある場合は、 ファイルは次のようになります:
alias somealias='find . -maxdepth 1 -mindepth 1 -type d -exec sh -c '\''echo "{} : $(find "{}" -type f | wc -l)" file\(s\)'\'' \;'
ネストされた single の非常にトリッキーな処理に注意してください 引用符。いいえ、そうではありません sh -c
には二重引用符を使用できます
find . -type f | cut -d"/" -f2 | uniq -c
現在のフォルダー内のフォルダーとファイルを、その下にあるファイルの数と共に一覧表示します。迅速かつ便利な IMO。 (ファイルはカウント 1 で表示されます)。