在这个适合初学者的教程中,我们将向您展示如何在 Linux服务器上对目录中的文件进行计数。成都联想服务器经销商
对于本教程,您需要访问终端(使用 CTRL + ALT + T 打开它)或通过 SSH 访问服务器。本教程将仅包含 CLI 的说明。如果要通过 GUI(图形用户界面)计算目录中的文件,只需右键单击目录并单击属性。您将看到一个窗口,其中包含有关该目录的统计信息,包括文件数。
1、使用 wc 命令计算目录中的文件数
对目录中的文件进行计数的最简单和最广泛使用的 Linux 命令是:
ls -1 | wc -l
该命令的简要说明:
“ls”用于列出当前目录中的文件。它是“list”的缩写
-1 不计算从“ls -l”命令获得的第一行,这只是一个标题行,其中包含所有文件大小的总和
| 用于将前一个命令的输出通过管道传递给 | 之后的命令
wc是用于查找“字数” 、计算行数和其他计数目的的命令
我们首先在之前空的 /etc/opt/random 目录中创建了 26 个 .txt 文件。然后我们只是使用简单的“ls”命令输出当前目录中的所有文件名,最后,我们运行“ls -1 | wc -l”来计算目录中的文件数,在这种情况下返回结果“26”。
2、使用 egrep 命令对目录中的文件进行计数
与前面的 wc 命令输出类似结果的类似命令是 egrep 命令。此命令将输出当前目录中的文件数。命令是:
ls -l . | egrep -c ^-
并返回运行此命令的目录中的文件数。它的工作方式与前面解释的 wc 命令非常相似。
3、使用 find 命令递归地计算目录中的文件
如果要计算某个目录中的文件数,以及该父目录中目录中的所有其他文件,可以使用 find 命令:
find directoryName -type f | wc -l
例如,如果:
/etc/opt/random 有 26 个文件
/etc/opt/random/new 有 10 个文件
/etc/opt/random/old 有 5 个文件
运行此命令:
find /etc/opt/random -type f | wc -l
将返回“41”的结果。即 26+10+5。
“-type f”用于仅对文件进行计数。
如果您想计算当前目录(您所在的目录)中的文件,只需将 directoryName 替换为一个点,如下所示:
find . -type f | wc -l
4、使用 tree 命令计算文件和目录
默认情况下,您的发行版上可能未安装 tree 命令。您可以通过运行安装它
Ubuntu/Debian 下使用命令“ apt install tree”
CentOS/Fedora 下使用命令“ dnf install tree”
该命令的基本语法是
tree directoryName
它返回目录中所有文件和目录及其层次结构的列表。
因此,如果您从我们的示例中运行随机目录的树命令:
tree /etc/opt/random
此命令输出的最后一行将是该目录中的目录和文件数。
tree 命令有更多可以使用的选项,例如:
tree -h 显示大小
tree -a 显示和统计所有文件,包括隐藏文件
tree -d 仅显示和计算目录。
tree –help 获得更多解释和帮助树命令
5、统计一个目录中的大量文件
如果您的目录中有数千个文件,例如 100000+ 个文件,则执行标准的“ls -1 |”可能需要更长的时间。wc -l”命令。为了让它更快(并使命令做更少的工作),你需要使用:
ls -f | wc -l
默认情况下, ls 对目录和文件进行排序。如果您有数千个文件,这可能需要一段时间。如果您使用 -f 选项,您将禁用排序。此命令还将计算隐藏文件。
统计并显示所有目录中的文件数
如果您想计算并显示当前目录中所有(子)目录中的文件数,请使用以下命令:
du -a | sed /.*./.*/.*/!d | cut -d/ -f2 | sort | uniq -c
如果您在前面示例中的 /etc/opt/random 文件夹中运行此命令,您将得到以下结果:
10 new
5 old
这些只是您可以在 Linux(任何发行版)上用于计算目录中文件数的一些命令的几个示例。当然,还有更多的命令可以实现,如果您是您是初学者,本文这些将满足您的大部分需求。
成都联想服务器代理【公司名称】成都鸿盛广达科技有限公司
【代理级别】成都联想服务器总代理
【销售经理】成都鸿盛广达科技有限公司
【联系方式】座机:028-85952921 手机:13981931555
【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼