目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js springboot win10 电路 vue macOS nginx esp32 windows git docker idea maven esp8266 python Arduino

存档:

X

你真的知道如何查看Linux目录大小吗?

查看linux下的目录大小命令不就是ls -l吗?再者人类能够看懂的就是ls -lh了,难道不是这两个命令吗?

答疑解惑

1、首先咱们就根据大家所想的,通过**ls -lh / ** 去查看根目录下的各文件目录大小

熟悉ls命令的朋友都知道,以上在根目录下列出的各目录大小最大的竟然只有8KB,多数都是4KB,这显然不是我们所看文件目录的实际大小,怎么回事呢?

2、让我们再次通过ls -lh /java_ruanjian/命令查看/java_ruanjian/ 目录的大小

此时查看到该目录下的文件大小是139MB

为什么是这样?其实这里简单概括就是:l****s -lh能得到普通文件的大小 ,但对于目录得到的4K,那是目录文件的大小(即目录本身要占4K), 但是不是目录里所有文件的大小。

linux系统中目录中保存的仅仅是文件的 文件名和文件的inode号 ,相当于保存的是它里面文件的指针,所以系统会根据目录中文件名和inode的数量分配若干个block给目录,而block的大小一般就是4K,如果一个目录中文件名太多可能会分配2个或多个block给目录。

那我们该如何去查看linux文件目录的实际大小呢?请继续往下看看。

通过du命令查看文件目录大小

其实linux系统中可以通过du命令进行查看文件目录的大小。

du :英文为**disk usage **(磁盘使用量,占用的磁盘空间)。

一个文件占用的 磁盘空间一个文件的 大小 是两码事情。占用空间取决于文件系统的块(block)的大小,linux一般默认是4KB,因此,一个大小为1个字节的文件,最小也要占用4K,如果你创建文件系统的时候制定块大小是16K,那么即便一个文件只有1个字节,占用空间也是16K。

du命令的主要语法如下所示:

du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

du命令参数说明如下:

-a 或**-all **:显示目录中个别文件的大小。

-b或**-bytes** :显示目录或文件大小时,以byte为单位。

-c或**--total** :除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

-D或**--dereference-args** :显示指定符号连接的源文件大小。

-h或**--human-readable** :以K,M,G为单位,提高信息的可读性。

-H或**--si ** :与-h参数相同,但是K,M,G是以1000为换算单位。

-k或**--kilobytes** :以1024 bytes为单位。

-l或**--count-links** :重复计算硬件连接的文件。

-L <符号连接>--dereference<符号连接> :显示选项中所指定符号连接的源文件大小。

-m或**--megabytes** :以1MB为单位。

-s或**--summarize** :仅显示总计。

-S或**--separate-dirs** :显示个别目录的大小时,并不含其子目录的大小。

-x或**--one-file-xystem** :以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-X <文件>--exclude-from=<文件> :在<文件>指定目录或文件。

--exclude=<目录或文件> :略过指定的目录或文件。

**--max-depth=<目录层数> ** :超过指定层数的目录后,予以忽略。

**--help **:显示帮助。

--version :显示版本信息。

看到这一大推参数,大家是不是慌了!别担心,今天只挑重点的讲,也就是常用的几个参数,足以应付查看文件目录大小的参数。

du命令实战讲解

以下通过**/haodao/linux/test01** 文件目录进行常见参数实战讲解。

1、查看/haodao/linux/test01目录的大小 ,命令如下:

[root@haodaolinux1 ~]# du -h /haodao/linux/test01
50M     /haodao/linux/test01

2、查看/haodao目录下每一个目录(包含其子目录)的大小 ,命令如下:

[root@haodaolinux1 ~]# du -h /haodao
50M     /haodao/linux/test01
100M    /haodao/linux
238M    /haodao

3、查看/haodao目录的大小 ,仅仅宣示目录总和 ,命令如下:

[root@haodaolinux1 ~]# du -sh /haodao 
238M    /haodao

4、通过--max-depth=<目录层数>参数指定目录层级来查找某个目录文件大小 ,命令如下:

[root@haodaolinux1 ~]# du -h --max-depth=1 /haodao
100M    /haodao/linux
238M    /haodao
[root@haodaolinux1 ~]# du -h --max-depth=2 /haodao
50M     /haodao/linux/test01
100M    /haodao/linux
238M    /haodao

以上命令分别指定**/haodao目录的目录层级为1和目录层级为2,当目录层级为1时 ,只列出/haodao目录下的文件目录大小。当目录层级为2时 ,则列出/haodao/linux**目录下的文件目录大小。


标题:你真的知道如何查看Linux目录大小吗?
作者:llilei
地址:http://solo.llilei.work/articles/2021/12/28/1640653163635.html