我可以在给定目录中递归查找文件数量
find . -type f | wc -l
我可以在给定目录中递归查找目录数
find . -type d | wc -l
但是我想要一个命令,可以同时递归显示给定目录中的文件和目录的数量。
输出结果如下
6 directories, 14 files
答案1
使用tree
:
$ tree foo
foo
├── bar
│ ├── baz
│ └── foo3
└── foo2
2 directories, 2 files
或者你可以结合find
和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}'
或者,概括一下:
find foo -printf "%y\n" | awk '/f/{f++}/d/{d++}END{printf "%d directories, %d files\n", d, f}'
如果您不介意简洁的输出:
find foo -printf "%y\n" | sort | uniq -c
这将比 的输出多计算一个目录tree
- 起始目录不计入 的tree
输出中。
答案2
您可以像下面这样操作:
d=$(find . -type d | wc -l)
f=$(find . -type f | wc -l)
echo "There are $d directories and $f files"
就我而言,输出是There are 459 directories and 2352 files
高血压