如何计算给定Linux目录中文件和子目录的数量?

不仅要知道当前目录中的文件数,而且要知道当前目录中所有子目录中的文件数,通常变得很重要。可以使用

使用ls

我们可以使用ls列出文件,然后仅选择以“-”符号开头的文件。R选项和l选项一起进行递归搜索。'-c'选项计算行数,即文件数。

ls -lR . | egrep -c '^-'

运行上面的代码给我们以下结果-

13

将find与隐藏文件一起使用

find命令通过递归遍历所有目录及其子目录来帮助我们找到具有特定条件的文件。我们通过提供参数f将它与type选项一起使用,以仅获取文件。在这里它还计算所有隐藏文件。

find . -type f | wc -l

运行上面的代码给我们以下结果-

1505

使用查找而不隐藏文件

我们使用与上一条命令相同的方法,但使用正则表达式模式来避免。通过使用转义字符\。

find . -not -path '*/\.*' -type f | wc -l

运行上面的代码给我们以下结果-

13