如何在Linux中获取目录的大小
使用时列出目录的内容 ls
命令,您可能已经注意到目录的大小几乎总是4096字节(4 KB)。 这就是用于存储目录元信息的磁盘上的空间大小,而不是其包含的内容。
您要用于获取目录实际大小的命令是 du
,是“磁盘使用情况”的缩写。
获取目录的大小
的 du
命令显示指定文件或目录使用的文件空间量。 如果指定的路径是目录, du
总结该目录中每个子目录的磁盘使用情况。 如果未指定路径, du
报告当前工作目录的磁盘使用情况。
不带任何选项调用时, du
显示给定目录及其每个子目录的磁盘使用情况(以字节为单位)。
通常,您希望以人类可读的格式显示目录所占用的空间。 例如,要获取 /var
目录,您将运行以下命令:
sudo du -sh /var
输出将如下所示:
85G /var
让我们解释该命令及其参数:
- 该命令以
sudo
因为其中大多数文件和目录/var
该目录归root用户所有,普通用户不可读。 如果你省略sudo
的du
命令将显示“ du:无法读取目录”。 s
-仅显示指定目录的总大小,不显示子目录的文件总大小。h
-以人类可读的格式打印尺寸(h
)。/var
-要获取大小的目录的路径。
如果要显示第一级子目录的磁盘使用情况怎么办? 您有两个选择。 第一个是使用星号(*
),如下所示,这意味着“匹配所有以句点(.
)”。 的 -c
选项告诉 du
打印所有尺寸的总计:
sudo du -shc /var/*
24K /var/db
4.0K /var/empty
4.0K /var/games
77G /var/lib
4.0K /var/local
0 /var/lock
3.3G /var/log
0 /var/mail
4.0K /var/opt
0 /var/run
196K /var/spool
28K /var/tmp
85G total
获取有关第一级子目录的磁盘使用情况的报告的另一种方法是使用 --max-depth
选项:
sudo du -h --max-depth=1 /var
77G /var/lib
24K /var/db
4.0K /var/empty
4.0K /var/local
4.0K /var/opt
196K /var/spool
4.0K /var/games
3.3G /var/log
5.0G /var/cache
28K /var/tmp
85G /var
85G total
默认情况下, du
命令显示目录或文件使用的磁盘空间。 要查找目录的外观大小,请使用 --apparent-size
选项。 文件的“表观大小”是文件中实际有多少数据。
sudo du -sh --apparent-size /var
当您通过SCP,Rsync。或SFTP传输目录时,通过网络传输的数据量就是文件的表观大小。 这就是为什么当显示为时,源上使用的磁盘空间大小的原因 du
(无 --apparent-size
)与目标上的尺寸不同。
的 du
命令也可以与其他带有管道的命令结合使用。
例如,要在 /var
目录,您将通过管道输出 du
到 sort
命令按目录大小对目录进行排序,然后将输出通过管道传递给 head
仅显示前5个目录的命令:
sudo du -h /var/ | sort -rh | head -5
85G /var/
77G /var/lib
75G /var/lib/libvirt/images
75G /var/lib/libvirt
5.0G /var/cache/pacman/pkg
结论#
在Linux中,您可以使用 du
命令。
如果您有任何疑问或意见,请在下面发表评论。
杜终端磁盘