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

本文给大家分享如何在linux系统查看目录的大小的相关知识点及查看技巧。

相信不少朋友是被文章标题逼着进来看看的,心想着查看linux下的目录大小命令不就是ls -l吗?再者人类能够看懂的就是ls -lh了,难道不是这两个命令吗?

答疑解惑

1、首先咱们就根据大家所想的,通过ls -lh / 去查看根目录下的各文件目录大小,我本机查看到如下图所示:

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

2、让我们再次通过ls -lh /java_ruanjian/命令查看/java_ruanjian/目录的大小,如下图所示:

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

为什么是这样?其实这里简单概括就是:ls -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-X <文件>--exclude=<目录或文件>--help[目录或文件]

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下文件目录的大小。希望能够给大家带来工作上的一些便捷之处。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章