如何查看Linux目录大小

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][-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/test0150M     /haodao/linux/test01

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

[root@haodaolinux1 ~]# du -h /haodao50M     /haodao/linux/test01100M    /haodao/linux238M    /haodao

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

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

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

[root@haodaolinux1 ~]# du -h --max-depth=1 /haodao100M    /haodao/linux238M    /haodao[root@haodaolinux1 ~]# du -h --max-depth=2 /haodao50M     /haodao/linux/test01100M    /haodao/linux238M    /haodao

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

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值