一、使用tree命令进行统计
tree实际上是一个以树状打印目录和文件结构的小程序,大多数Linux发行版都需要先安装之后才能够使用:
apt安装:
aptinstalltree
yum安装:
yuminstalltree
pacman安装:
pacman-Stree
使用:使用管道+grep,“directories”作为关键字,即可以递归的方式将当前目录下的目录数统计出来。
二、使用find+wc命令
find是Linux下一个强大的文件查询命令,如果想实现统计目录的功能,需要用到find的-type指令:
find.-typed
-typed指定了查找的对象类型是目录,如果要查找的对象类型是文件,就需要使用-typef。这条命令后面需要接一个管道,利用wc-l来按行统计结果的数量:
find.-typed|wc-l
这样统计的数量比tree要多,是因为find将隐藏目录和.也计算在内了。
三、使用rsync命令
rsync是一个神奇的命令,可以用来复制文件,还可以用来统计目录数量。
为了完成统计的任务,需要用到rsync的–stats开关,打开状态显示,另外还需要使用-n和-a选项,分别实现显示传输列表和递归遍历。
哪一个最快?
老胡用time来对三个命令执行的过程进行计时,结果如下:
命令执行顺序依次为tree、find和rsync,可以看出,在递归统计目录个数这个任务中,find的速度是最快的。
总结一下,递归统计某个目录下的目录个数老胡给出了三个办法,可以使用tree、find+wc-l、rsync三种不同的实现方式。其中find+wc-l的速度最快。另外这三种统计手段同样适用于文件。
如果偶的回答对你有点价值,请莫忘点赞加关注,谢谢!欢迎在评论区发表各种意见。
本文为作者原创,严禁转载,违者必究。