Use tree
:
$ tree foo
foo
├── bar
│ ├── baz
│ └── foo3
└── foo2
2 directories, 2 files
Ou você pode combinar find
e awk
:
find foo -type d -printf "d\n" -o -type f -printf "f\n" | awk '/f/{f++}/d/{d++}END{printf "%d directories, %d files\n", d, f}'
Ou generalizando:
find foo -printf "%y\n" | awk '/f/{f++}/d/{d++}END{printf "%d directories, %d files\n", d, f}'
Se você não se importa com uma saída concisa:
find foo -printf "%y\n" | sort | uniq -c
Isso contará mais um diretório do que tree
- o diretório inicial não é contado na saída de tree
.