很多情况下,需要统计某个目录下子目录和文件的数量,网上大把是通过
ls -l |egrep "^d" |wc -l
或
ls -l |egrep "-l" |wc -l
遇到子目录多的情况下还得用for循环把子目录都挨个ls
一遍。
这样行不行?行。
但是粗暴、霸蛮,不优雅!
但如果先使用tree --help看一下,会发现可以使用 -J 参数输出为json格式,格式中是个数组,其中第二个元素(从0开始算起)是个report。
如下:
$ tree -J |jq .[1]
{
"type": "report",
"directories": 0,
"files": 109
}
所以,通过report获取json的值那就绅士很多了。
- 统计子目录(包含软链接)
$ tree -J |jq .[1].directories
- 统计文件数(包含软链接)
$ tree -J |jq .[1].files
网友评论