在 Linux 上查找目录中所有文件的总大小

linuxoperating systemopen source更新于 2026/1/22 18:37:17

您可以使用各种类型的命令来获取 Linux 目录中所有文件的总大小。Linux 中也有一些 GUI 工具可以更简单的格式显示目录的总大小。

获取有关目录的正确信息可以帮助用户了解整个系统的存储分配情况。这就是为什么 Linux 用户总是想方设法查找目录的总大小。

在本指南中,我们将介绍在 Linux 上查找目录中所有文件的总大小的各种方法。

在 Linux 上查找目录中所有文件的总大小

让我们先来介绍一些可以尝试显示目录​​中文件正确大小的命令 -

du 命令

默认情况下,大多数 Linux 发行版都包含 du 命令,它代表磁盘使用情况。通过此命令,您可以获取多种格式的目录大小,因此我们只需运行 du 命令即可 -

~$: du
830720 ./Information
166144 ./Images
996868

如果您不带参数输入 du 命令,它只会显示目录的总大小(以千字节为单位)。因此,如果您只想查找当前目录的大小(不包括子目录),可以使用 --summarize 或 -s 选项 -

~$: du -s
996868 .

您可以使用"-h"选项以更易读的格式获取输出。

~$: du -h
812M ./Information
163M ./Images
974M .
~$: du -sh
974M .

数字表示已用空间,字母 M、G 和 K 分别定义兆字节、千兆字节和千字节。

额外提示 − du 命令默认显示目录的大小。您可以通过在 du 命令中添加 --apparent-size 选项来查看目录的实际大小。

~$: du -sh --apparent-size
973 .

"表观大小"指的是目录的实际大小。如果您想查看特定目录(而非当前目录)的大小,可以使用以下命令 -

~$: du -sh ~/Documents
974M /home/prateek/Documents

注意 - 您可能会发现某些条目存在错误,因为您没有访问该目录的权限。使用 sudo /su 命令获取管理员权限,即可清除错误。

您可以以所需的格式获取目录大小。为此,您需要添加大小格式,例如"k"(表示千字节)或"m"(表示兆字节),如下所示 -

~$: du -k ~/Documents 
830720 /home/prateek/Documents/Information
166144 /home/prateek/Documents/Images
996868  /home/prateek/Documents

使用 du 命令的 -c 选项来查看目录的总大小 -

~$: du -sch
974 .
974 total

您可以使用以下 du 命令查看目录大小(不包括部分文件)-

~$: du -sch --exclude '*.sh'
974 .
974 total

上述命令显示目录大小(不包括上述文件的大小)。使用"max-depth"选项,您可以将扫描限制设置为特定级别。

du -hc --max-depth=N <目录路径>
或者
du -dN -hc

这里,N 表示目录层级。例如,让我们扫描子目录的第一层 -

~$: du -hc --max-depth=1 
4.0K ./Pictures 
974M ./Documents 
4.0K ./Music 
12K ./.gnupg 
113M ./snap 
60M ./.cache 
776K ./.config 
664K ./.local 
4.0K ./Desktop 
4.0K ./Videos 
4.0K ./.ssh 
4.0K ./Templates 
4.0K ./Public 
8.0K ./opt 
4.0K ./Downloads 
1.2G 
1.2G total

您会注意到,在上述命令中,我们删除了 -s 参数,并使用了 -d 参数,以便您可以查看特定目录占用的空间大小。这样,您就可以查看多层目录的大小。

使用带有 -a 标志的 du 命令,您可以获取目录大小及其文件和子目录。

du -ah

要根据子目录所占用的磁盘空间大小对其进行排序,请使用以下命令 -

~$: du -h --max-depth=N | sort -hr
974 .
812 ./Information
163 ./Images

占用空间最大的子目录将显示在顶部。

ncdu 命令

ncdu 命令代表"ncdu 磁盘使用情况",该命令在某些 Linux 发行版中未预装。您可以使用以下命令轻松安装 -

sudo apt install ncdu -y (for Ubuntu/Debian)
sudo yum install ncdu (RedHat/CentOS)

此命令会以交互方式显示您的目录,如下所示 -

ncdu

执行以下命令后,将显示有关目录总大小的完整信息 -

ncdu 1.15.1 - Use the arrow keys to navigate press ? for help
 --- /home/prateek  ----------------------------------------------------------                
  973.5 MiB [####### ##] /Documents
  112.4 MiB [#          ] /snap 
  59.2 MiB  [           ] /.cache 
  776.0 KiB [           ] /.config 
  664.0 KtB [           ] /.local 
  12.0 KiB  [           ] /.gnupg 
  8.0 KiB   [           ] /opt 
e 4.0 KiB   [           ] /Videos 
e 4.0 KiB   [           ] /Templates 
e 4.0 KiB   [           ] /Public 
e 4.0 KiB   [           ] /Pictures 
e 4.0 KiB   [           ] /Music 
e 4.0 KiB   [           ] /Downloads 
e 4.0 KiB   [           ] /Desktop 
e 4.0 KiB   [           ] /.ssh 
  4.0 KiB   [           ] .bashrc 
  4.0 KiB   [           ] .bash history 
  4.0 KiB   [           ] .profile 
  4.0 KiB   [           ] .bash_logout  
  4.0 KiB   [           ] TestFile.txt 
  0.0 B .sudo_as_admin_successful 
Total disk usage: 1.1 GiB Apparent size: 1.1 GiB Items: 3924

在左上角,您可以看到当前扫描的目录。您可以在表格的第一列看到目录大小。使用向下和向上箭头可以在不同行之间移动。此外,您可以使用向右箭头浏览目录,使用向左箭头可以退出。

您可以使用 ncdu 命令定义目录路径,以定位特定目录。

ncdu /var

此命令将显示以下信息 -

ncdu 1.15.1 ~ Use the arrow keys to navigate, press ? for help
--------/var-----------------------------------------------------------------   .    
.   2.7 GiB [##########] /lib 
. 573.2 MiB [##        ] /cache 
. 92.2 MiB  [          ]/log 
  3.7 MiB   [          ]/snap 
  3.4 MiB   [          ]/backups 
. 48.0 KiB  [          ]/tmp 
. 48.0 KiB  [          ]/spool 
e 4.0 KiB   [          ]/opt 
e 4.0 KiB   [          ]/metrics 
e 4.0 KiB   [          ]/mail 
e 4.0 KiB   [          ]/local 
e 4.0 KiB   [          ]/crash 
@ 0.0     B [          ]lock 
@ 0.0     B [          ]run 

Total disk usage: 3.3 GiB Apparent size:  3.3 GiB Items: 12731

tree 命令

tree 是一个命令行实用程序,它以树状格式列出文件或目录。某些 Linux 版本默认不包含 tree 命令,但您的 Linux 仓库中提供了该命令。让我们通过以下命令安装 tree 命令实用程序 -

sudo apt install tr​​ee -y(适用于 Ubuntu/Debian)
sudo yum install tr​​ee(适用于 RedHat/CentOS)

如果不带任何参数运行此命令,它将仅列出所有目录和子目录。因此,请使用"-d"和"h"选项,如下所示 -

~$: tree -dh 
[4.0K] .
|__ [4.0K] Images
|__ [ 20K] Information

您可以使用上述命令查看当前目录的大小。这里我们使用:

  • -d 表示仅显示目录。

  • -h 表示以可读格式读取目录大小。

您也可以通过删除上述命令中的 -d 标志来查看目录及其文件的大小。

~$: tree -h

与 du 和 ncdu 命令类似,您也可以借助它查看特定目录的大小。为此,您必须在 tree 命令后包含目录路径,如下所示 -

~$: tree -dh ~/Documents
[4.0K] /home/prateek/Documents
|__ [4.0K] Images
|__ [ 20K] Information

额外提示 − 您还可以组合使用"du"和"tree"命令,如下所示 −

~$: tree --du -h

您可以尝试的 GUI 工具

您可以使用一些工具来查看 Linux 上目录的总大小。这里我们只列出了开源和免费的工具。

QDirStat

它是一个基于 Qt 的文件/目录系统分析器,以类似树状系统的热图形式显示目录和文件。借助此工具,您可以查看目录使用情况,并通过删除或清理文件等方式清理系统。使用以下命令安装此工具 -

~$: sudo apt install qdirstat -y

您可以在终端中输入"qdirstat"或从应用程序菜单中搜索该工具来打开此工具。

图 1

FileLight

这是一款非常轻量且易于使用的 GUI 工具,可让您以饼图的形式查看目录和文件占用的空间。它使用同心圆来显示目录的大小和使用情况,以便您更好地理解。您可以在终端中运行以下命令来安装它 -

~$: sudo apt install filelight -y

成功安装后,您可以从应用程序菜单中打开它,或在终端中输入"filelight" -

图 2

要查看特定文件或目录的磁盘使用情况,请点击左上角的"扫描",然后按照以下步骤操作 -

扫描 > 扫描文件夹 >您要扫描的文件夹/目录

结论

您可以通过 GUI 和 CLI 方法查看 Linux 目录中所有文件的总大小。如果您是 Linux 新手,可以使用 GUI 方法查看目录及其文件的大小。

有很多工具可以帮助您查看目录及其文件的大小,但在本指南中,我们推荐了两个最新的免费开源工具"QDirStat"和"FileLight"。您可以轻松安装这些工具,并以图形方式查看目录的大小。这样,您就可以通过任何方便的方法查看目录中所有文件的总大小。


相关文章


有用资源