Linux如何统计某个目录下文件数量

记得有一次,我帮朋友整理电脑,他突然问我:“我的文档里有多少个文件啊?”我当时就想到,得,找个方法帮他数数。
随手打开终端,试试看。

我先用find命令,限定只查找当前目录下的文件,不加递归参数,然后配合wc命令,只统计行数。
命令如下:
find ./ -maxdepth 1 -type f | wc -l
屏幕上很快就显示了结果,是4 5 个文件。
朋友点点头,满意地笑了。
我暗自思忖,这find和wc的组合还真是挺方便的。

然后我又突然想到,要是他能统计包括子目录在内的所有文件,那该多好。
我又改了改命令,不加-maxdepth 1 ,结果发现,整个文档目录下共有6 8 9 个文件。
看来,这find命令真是强大。

不过,我又想了想,万一以后他需要区分文件和目录的数量呢?那得再写两个命令,分别统计文件和目录。
文件还是用之前的命令,而目录的话,只需要将-type f换成-type d。

find ./ -type f | wc -l find ./ -type d | wc -l
结果,文件是6 8 9 个,目录是1 1 7 个。
朋友直呼神奇,我也挺得意自己的这个小技巧。

不过话说回来,这ls命令加grep的方式,虽然简单,但用起来还是不那么可靠,特别是一些文件名带有特殊字符的时候。
所以,以后还是推荐用find和wc组合,至少在脚本里用,更保险。

对了,还有个事,我突然想到,朋友的公司也用Linux系统,他们可能也需要这样的文件统计方法。
下次有机会,我得教教他们。

你看着办。

Linux下如何查看一个文件夹下有多少文件

上周试过这个。

在电脑上操作。

先打开终端。

输入 ls ~ | wc -w。

回车。

看到数字了。

就是目录数。

~ 代表家目录。

如果不用 ls | wc -w。

就显示 0。

查根目录。

把 ~ 换成 /。

就看到根目录的数字。

想看整个电脑的。

用 sudo ls / | wc -w。

会列出所有目录。

数字就是总数。

算了。

百度知道意见反馈页面。