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

系统 Linux
本文给大家分享如何在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命令的主要语法如下所示: 

  1. 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目录的大小,命令如下: 

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

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

  1. [root@haodaolinux1 ~]# du -h /haodao  
  2. 50M     /haodao/linux/test01  
  3. 100M    /haodao/linux  
  4. 238M    /haodao 

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

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

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

  1. [root@haodaolinux1 ~]# du -h --max-depth=1 /haodao  
  2. 100M    /haodao/linux  
  3. 238M    /haodao  
  4. [root@haodaolinux1 ~]# du -h --max-depth=2 /haodao  
  5. 50M     /haodao/linux/test01  
  6. 100M    /haodao/linux  
  7. 238M    /haodao 

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

结语

本文通过大家平日容易忽略的一个知识点出发,通过具体实例带大家查看linux下文件目录的大小。希望能够给大家带来工作上的一些便捷之处。 

 

责任编辑:庞桂玉 来源: 良许Linux
相关推荐

2021-02-19 07:59:21

数据埋点数据分析大数据

2022-09-28 18:16:34

JavaJDK

2022-09-26 13:10:17

JavaScriptthis

2022-09-22 14:55:31

前端JavaScripthis

2020-09-03 06:42:12

线程安全CPU

2017-03-06 15:36:39

敏捷开发反馈信息

2015-10-23 09:34:16

2023-10-18 07:48:29

2015-09-11 15:56:52

内核构建Linux

2022-03-25 09:39:50

LinuxLinux top

2021-03-04 23:11:59

环境变量Python

2022-04-07 16:03:36

JavaScriptTypeScript

2009-12-09 14:56:54

Linux查看目录文件

2020-01-14 10:37:38

存储DateTime数值

2021-07-11 18:04:04

C语言

2020-10-16 15:06:59

开发技术方案

2023-06-26 08:20:02

openapi格式注解

2024-05-10 08:41:05

NPMYarn

2010-09-17 15:32:09

Linux网络协议栈
点赞
收藏

51CTO技术栈公众号