「四川联想代理」如何在Linux联想服务器上统计目录中的文件数

成都联想服务器总代理 73 2023-05-26 https://www.lenovocd.com/ 成都联想服务器总代理

在这个适合初学者的教程中,我们将向您展示如何在 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(任何发行版)上用于计算目录中文件数的一些命令的几个示例。当然,还有更多的命令可以实现,如果您是您是初学者,本文这些将满足您的大部分需求。

成都联想代理www.lenovocd.com


【公司名称】成都鸿盛广达科技有限公司

【代理级别】成都联想服务器总代理

【销售经理】成都鸿盛广达科技有限公司

【联系方式】座机:028-85952921 手机:13981931555

【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼