在 Linux 中如何查看目录的大小(Linux 查看目录大小的命令)

在 Linux 中如何查看目录的大小(Linux 查看目录大小的命令)
在 Linux 中如何查看目录的大小(Linux 查看目录大小的命令)

我们常使用 ls 命令列出所在目录的内容,但是却不能同时查看目录中文件及文件夹的大小,要获取目录大小我们需要使用 du 命令,它是“disk usage”的缩写。

获取目录的大小

如果不指定目录, du 命令会显示当前目录下的文件或目录所占用的磁盘空间。如果指定目标路径,则会显示该目录中每个文件及子目录所占用的磁盘空间情况。

当不带任何选项时,du 以字节为单位显示给定目录及其子目录的磁盘使用情况。如果希望以人类可读的格式显示目录占用的空间情况。例如,要获取 /var 目录的总大小,可以运行以下命令:

sudo du -sh /var

输出将如下所示:

85G	/var

让我们解释一下命令及其参数:

  • 该命令以 sudo 开头,因为 /var 目录中的大多数文件和目录都归 root 用户所有,普通用户无法读取。如果省略sudo 则 du 命令将打印 “du: cannot read directory”。
  • 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 选项。“apparent size”是文件中实际包含的数据量。

sudo du -sh --apparent-size /var

当通过 SCP 、Rsync . 或 SFTP 传输目录时,通过网络传输的数据量就是文件的 apparent size。这就是为什么使用du(不带 --apparent-size)时显示的磁盘空间大小与实际大小不同的原因。

du 命令还可以与其他带有管道的命令结合使用。

例如,要打印 /var 目录中最大的 5 个目录,可以将 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

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/how-to-display-the-size-of-directories/

(0)
上一篇 2022年4月2日 上午8:52
下一篇 2022年4月2日 下午1:08

相关推荐

发表评论

登录后才能评论