目录

【Linux】du命令详解

Linux环境中,查看目录或文件的磁盘空间大小是很常见的需求,使用du命令即可帮助我们达到该目的。

命令格式

1
du [选项] [文件或者目录]

选项

常用的可选参数为:

  • -a: --all,列出所有文件和目录的容量大小(默认只列出目录容量的大小)。

  • -h: 以已读的形式显示。

  • -B--block-size=SIZE,指定容量的单位值,size可以是1,k,或者m,如-B1

  • -k--block-size=1k,以KB为单位。

  • -m--block-size=1m,以MB为单位。

  • -c--total,额外显示总的容量大小。

  • -s:仅显示总量大小。

  • --max-depth:显示指定层级的目录。

  • --exclude=<文件或目录>:忽略指定目录或文件。

示例

  • 显示当前目录及子目录大小

    1
    
    du
    
  • 显示指定文件所占空间

    1
    
    du filename
    
  • 仅显示当前目录所占空间大小

    1
    
    du --max-depth=1
    
  • 仅显示当前目录总的容量大小

    1
    2
    3
    4
    
    # 使用 -s
    du -sh
    # 使用--max-depth
    du -h --max-depth=0
    

duls -l

除了可以使用du查看目录或文件大小外,还可以使用ls -l查看文件或目录的大小,但是二者获得的结果有所差异。

  • ls -l的结果小于du的结果

    du是文件占用block的大小,在linux中,一个block的大小为4k。而ls -l是文件的实际大小,所以即使文件只有1bytesdu获得的结果也会是4k

  • ls -l的结果大于du的结果

    当文件出现空洞的时候会出现这种结果,即磁盘空间被占用,但是里面没有数据。