linux获取目录大小,如何在 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/*

输出类似如下:

.0G/var/cache

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

85Gtotal

另一种选择是使用--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

85Gtotal

默认情况下,du实用程序显示目录或文件使用的磁盘空间。 文件的“表观大小”是文件中实际存在的数据量。

要查找目录的外观大小,请使用--apparent-size开关。

sudo du -sh --apparent-size /var

当您通过SCP,Rsync或SFTP传输目录时,将通过网络传输的数据量是文件的明显大小。 这就是为什么在使用du(没有--apparent-size)显示时在源上使用的磁盘空间大小将与目标上的大小不同。

du命令也可以与管道的其他命令结合使用。 例如,要打印/ var目录中的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

写在最后

在本教程中,您学习了如何使用 du 命令获取目录的大小。

如果您有任何问题或意见,请在下面留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值