tree命令统计子目录和文件数量

很多情况下,需要统计某个目录下子目录和文件的数量,网上大把是通过
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

你可能感兴趣的:(tree命令统计子目录和文件数量)