我可以在给定目录中递归查找文件数
find . -type f | wc -l
Run Code Online (Sandbox Code Playgroud)
我可以在给定目录中递归地找到目录数
find . -type d | wc -l
Run Code Online (Sandbox Code Playgroud)
但是我想要一个命令,它同时在给定目录中递归显示文件和目录的数量。
输出将类似于
6 directories, 14 files
Run Code Online (Sandbox Code Playgroud)
使用tree
:
$ tree foo
foo
??? bar
? ??? baz
? ??? foo3
??? foo2
2 directories, 2 files
Run Code Online (Sandbox Code Playgroud)
或者你可以结合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}'
Run Code Online (Sandbox Code Playgroud)
或者,概括:
find foo -printf "%y\n" | awk '/f/{f++}/d/{d++}END{printf "%d directories, %d files\n", d, f}'
Run Code Online (Sandbox Code Playgroud)
如果您不介意简洁的输出:
find foo -printf "%y\n" | sort | uniq -c
Run Code Online (Sandbox Code Playgroud)
这将比tree
-tree
的输出中不计入起始目录多一个目录。