如何在Linux中对目录中的文件进行计数

时间:2020-03-05 15:26:22  来源:igfitidea点击:

尽管不是很经常,但有时我们需要找出给定目录中有多少个文件。
例如,如果Linux系统上的inode用完了,则需要查找包含数千或者数百万个文件的目录。

在本文中,我们将向我们展示在Linux中查找目录中文件数量的几种不同方法。

计算目录中的文件

计算目录中文件的最简单方法是用“ ls”在每行中列出一个文件,然后将输出传递给“ wc”以对行进行计数:

ls -1U DIR_NAME | wc -l

上面的命令将为我们提供所有文件的总和,包括目录和符号链接。
'-1'选项表示每行列出一个文件,'-U'告诉'ls'不对输出进行排序,这使命令的执行速度更快。

“ ls -1U”命令不计算隐藏文件(点文件)。

如果只想计算文件而不包括目录,请使用以下命令:

ls -1Up DIR_NAME | grep -v/| wc -l

'-p'选项强制'ls'将斜杠('/')指示符添加到目录中。
输出通过管道传递到不包含目录的'grep -v'命令。

要更好地控制列出的文件,请使用“ find”命令而不是“ ls”:

find DIR_NAME -maxdepth 1 -type f | wc -l

-type f选项告诉'find'仅列出文件(包括点文件),并且'-maxdepth 1'将搜索限制到第一级目录。

递归计数目录中的文件

要递归计数目录中的文件,请运行“ find”命令,如下所示:

find DIR_NAME -type f | wc -l

可以用来计数文件的另一个命令是“ tree”,它以树状格式列出目录的内容:

tree DIR_NAME

输出的最后一行将显示列出的文件和目录的总数:

15144 directories, 91311 files