如何在 Linux 中计算目录中的文件?

在本教程中,我们将学习计算目录中文件数的各种方法。 使用计算机系统最烦人的功能之一是管理系统空间。 由于存在大量目录,浏览每个目录非常耗时。 可以通过某些命令来完成计算特定目录中文件的这种琐碎任务。

1. 计算目录中的项目数

为了显示立即出现在里面的项目数,我们将使用两个命令的组合:

ls <PATH> | wc -l 
目录中的总项目数

ls 命令用于显示目录的内容,而 wc 命令用于计算特定文本中的字数或行数。 在上面的例子中, '~' 象征主目录。

笔记: 如果用户必须对当前目录中的项目进行计数,则 '<PATH>' 在上面的命令中可以省略。

2. 统计目录中的文件

很明显,目录可能包含文件、文件夹或链接。 可以有特殊的方法来只计算目录中的文件。 它是通过以下方式完成的:

ls -l <PATH> | grep "^-" | wc -l 
目录中的文件数

让我们试着理解这个命令的过程。 这 'ls -l ~' 显示文件内容的拉长格式。

计数文件 Ls L 已编辑 1‘ls -l ~’ 的输出

我们可以从这个输出中注意到一个生动的文件模式。 所有常规文件都以 '-', 而目录以 'd'. 可以使用 Linux 命令匹配此模式。

grep 命令过滤掉开始的行(用 '^' 符号)与 '-'. 过滤后的文本被传递给 wc 打印作为输入给出的行数的命令。

3.整个目录的文件数

上面的命令只计算直接目录中的项目。 有时,我们需要统计一个目录内的目录中的文件。 这种类型的计数可以通过几个 Linux 命令来实现。

使用查找命令

find 命令完全符合它的意思。 它用于在 Linux 系统中查找和过滤文件或目录。 为了获得目录中的文件总数(包括子目录中的文件)。

find <PATH> -type f | wc -l 
计数文件查找命令文件总数

指某东西的用途 '-type f' 选项告诉命令列出 档案 在那个目录中。 文件列表作为文本传递给 wc 命令,它计算其中的行数。

笔记: 可能存在非 root 用户可能无法访问的某些子目录。 因此在这种情况下, sudo 必须放在 find 命令。

使用树命令

tree 命令用于显示目录树以及其中文件的最终计数。 它不是 Linux 中的预装命令,因此需要在使用前安装。

Ubuntu/Debian 用户可以通过以下方式安装它:

sudo apt install tree 

其他 Linux 发行版的用户可以使用他们的标准安装命令安装它,后跟 tree.

安装完成后,我们只需运行:

tree <PATH> 
计数文件树命令使用 tree 命令计算文件数

从图中我们可以看到,该命令首先显示树状目录结构,然后显示最终统计信息。 给定目录中有 31 个目录和 416 个文件。

使用 rsync 命令

rsync 命令主要是一个文件备份工具。 它可用于显示文件以及与目录相关的某些统计信息。

由于我们需要文件计数而不是文件备份,我们必须使用 '--dry-run' 选项与命令。

rsync --stats --dry-run -a <PATH> 
计数文件 Rsync 命令使用 rsync 命令计算文件数

'--stats' 选项用于显示结束统计,而 '-a' 选项通知命令也考虑子目录中的文件。 统计的第一行显示整个目录中的总项目数,然后是常规文件数和子目录数。

这总结了使用 Linux 命令对目录中的文件进行计数的方法。

结论

在本文中,我们了解了 Linux 中对目录中的文件进行计数的各种方法。 我们希望提供的每种方法都易于读者理解。 如果我们错过了任何技术,请随时在下面发表评论。