1. 前言

本文主要讲解在Linux系统上怎么查看某个文件夹大小。我们将会使用du命令。

du命令是“disk usage磁盘使用情况”的缩写,它报告给定文件或文件夹使用的磁盘空间的估计数。它对于查找占用大量磁盘空间的文件和文件夹非常有用。

linux查看当前目录大小(Linux怎么查看某个文件夹大小)(1)

linux怎么查看某个文件夹大小

2. 如何使用`du`命令查看某个文件夹大小

du命令的使用语法:

du [OPTIONS]... FILE...

如果给定的文件是一个文件夹,du将总结该目录中每个文件和子文件夹的磁盘使用情况。如果没有指定文件,du将报告当前工作目录的磁盘使用情况。

在没有任何选项的情况下执行du时,以字节为单位显示给定文件或文件夹及其子文件夹的磁盘使用情况。

du ~/Documents

您还可以将多个文件和文件夹作为参数传递给du命令:

du ~/Documents ~/Pictures ~/.zshrc

如果您在没有权限的文件或目录上运行du,您将得到类似“du:无法读取目录”的内容。在这种情况下,需要在命令前加上sudo。

du命令有很多选项,我们只列出最常用的。

-a选项告诉du报告目录中每个文件的磁盘空间使用情况。

du -a ~/Documents

通常,您希望仅以人类可读易读的格式查看给定文件夹占用的空间。为此,使用-h选项。

例如,要查看/var/lib及其所有子文件夹的总大小,可以运行以下命令:

sudo du -h /var

我们使用sudo是因为/var/lib目录中的大多数文件和目录都属于root用户,普通用户无法读取。输出将是这样的:

4.0K /var/lib/apt/mirrors/partial
5.8.0K /var/lib/apt/mirrors
205M /var/lib/apt
2.9G /var/lib/

若要只报告指定目录的总大小,而非子文件夹,请使用-s选项:

sudo du -sh /var

输出结果:
2.9G /var

-c选项告诉du报告一个总数。当您希望获得两个或多个目录的合并大小时,这是非常有用的。

sudo du -csh /var/log /var/lib

输出结果:
1.2G /var/log
2.9G /var/lib
4.1G total

如果希望显示n-level子目录的磁盘使用情况,请使用--max-depth选项并指定子文件夹级别。例如,要获得关于您将使用的第一级文件夹的报告:

sudo du -h --max-depth=1 /var/lib

输出结果如下:

544K /var/lib/usbutils
4.0K /var/lib/acpi-support
205M /var/lib/apt
2.9G /var/lib

du实用程序的默认行为是重新分配目录或文件使用的磁盘空间。要查找文件的表观大小,请使用选项--apparent-size。文件的“apparent-size”是文件中实际有多少数据。

sudo du -sh --apparent-size /var/lib

输出结果:
2.9G /var/lib

du还允许您使用shell模式。例如,要获得主目录中以“Do”开头的所有文件夹的大小,可以运行以下命令:

sudo du -csh ~/Do*

输出结果:
102M /home/zcwyou/Documents
358M /home/zcwyou/Downloads
460M total

linux查看当前目录大小(Linux怎么查看某个文件夹大小)(2)

linux使用du命令查看某个文件夹大小

3. `du`与其它命令结合查看某个文件夹大小

du命令可以与带有管道的其他命令相结合。
例如,要打印/var目录中最大的5个文件夹,您需要将du的输出传递给sort命令,按照文件夹的大小对文件夹进行排序,然后将输出传递给head命令,head命令只打印前5个文件夹:

sudo du -h /var/ | sort -rh | head -5

执行结果:

4.6G /var/
2.9G /var/lib
2.6G /var/lib/snapd
1.7G /var/lib/snapd/snaps

linux查看当前目录大小(Linux怎么查看某个文件夹大小)(3)

du与其它命令结合查看某个文件夹大小

4. 总结

现在您应该已经很好地理解了如何使用du命令。
与df不同,df打印关于挂载文件系统的磁盘使用情况的信息,du命令给出给定文件或文件夹使用的磁盘空间的估计值。

您可以通过在终端中键入man du来查看所有可用的du命令选项。