尽管不是很经常需要知道,但有时您需要找出指定目录中有多少个文件。例如,Linux系统inodes用完,则需要查找哪个目录包含成千上万个文件。
在本教程中,我们将向您展示如何在Linux使用wc命令统计目录文件。
统计目录中文件的最简单方法是使用ls
命令,每行列出一个文件,然后将标准输出通过管道传递到wc
命令以统计行数。
例如命令ls -1U DIR_NAME | wc -l
将为您提供所有文件的总和,包括目录和符号链接。
-1
选项表示每行列出一个文件,-U
指示ls
不要对输出进行排序,这会使命令的执行更快。ls -1U
命令不计算隐藏文件。
ls -1U DIR_NAME | wc -l
如果您只想计算文件而不包括目录,请运行命令ls -1Up DIR_NAME | grep -v / | wc -l
。
ls -1Up DIR_NAME | grep -v / | wc -l
-p
选项强制ls
将斜杠/
指示符附加到目录。输出通过管道传递到grep -v
命令,该命令不包含目录。
除了使用ls命令之外,还可以使用find
命令,对目录与文件进行统计。例如命令find DIR_NAME -maxdepth 1 -type f | wc -l
将会统计目录DIR_NAME
包含的文件数量。
-type f
选项指示find
命令仅搜索文件,包括隐藏文件。并且-maxdepth 1
将搜索限制到第一级目录。
然后将find命令的标准输出通过管道|
,传递给wc -l
命令进行统计,从而达到统计文件数量的目的。
find DIR_NAME -maxdepth 1 -type f | wc -l
tree find 命令递归统计目录文件
要递归统计目录中的文件,请运行命令find DIR_NAME -type f | wc -l
,find
命令将递归命令搜索DIR_NAME目录文件并进行统计。
另一个可用于计数文件的命令是tree
,它以树状格式列出目录的内容。tree
命令输出的最后一行将显示列出的文件和目录总数。
find DIR_NAME -type f | wc -l
tree DIR_NAME
15144 directories, 91311 files
结论
我们向您展示了如何使用ls
,find
和tree
命令对目录中的文件进行统计计数。
如果您有任何疑问或反馈,请随时发表评论。