查找Linux目录下所有文件总大小


您可以使用各种命令来获取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

使用`-c`选项与du命令一起使用,可以查找目录的总大小:

~$: du -sch 
974 . 
974 total

您可以使用以下du命令查找排除某些文件后的目录大小:

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

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

du -hc --max-depth=N <path of the directory>
Or
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 tree -y (for Ubuntu/Debian)
sudo yum install tree (for 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'或从应用程序菜单搜索该工具来打开此工具。

Figure 1

FileLight

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

~$: sudo apt install filelight -y

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

Figure 2

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

Scan > Scan folder > The folder/directory you want to scan

结论

您可以通过GUI和CLI方法查找Linux中目录中所有文件的总大小。如果您不熟悉Linux,可以使用GUI方法查找目录及其文件的大小。

有很多工具可以帮助您找到它,但在此指南中,我们包含了两个工具,“QDirStat”和“FileLight”,它们是最新的、免费的和开源的。您可以轻松安装这些工具并以图形形式检查目录的大小。这样,您可以通过任何方便的方法查找目录中所有文件的总大小。

更新于:2023年8月22日

4K+ 浏览量

启动您的职业生涯

完成课程后获得认证

开始
广告