du 命令:显示目录(文件)占用磁盘空间大小

一、du 命令简介

du​(Disk Usage)命令用于显示指定的文件或目录所占用的磁盘空间总量,包括其所有子目录和文件。

二、du 命令参数

du [选项] [目录]

常用选项

  • 无参数时:列出当前目录及其所有子目录的磁盘使用情况。

  • -a​:列出所有文件的磁盘使用量,而不仅仅是目录。

  • -h​:以人类可读的格式(如 KB、MB、GB)显示大小。

  • -s​:只显示总计,即当前目录的总磁盘使用量,不显示子目录的详细信息。

  • -c​:显示总计,即当前目录及其所有子目录的总磁盘使用量。

  • -d​:指定扫描的深度,后面跟一个数字表示最多深入到第几级子目录。

  • --max-depth=N​:与 -d​ ​类似,限制输出目录的最大深度。

  • -k​:以 KB 为单位显示磁盘使用量。

  • -m​:以 MB 为单位显示磁盘使用量。

  • -x​:跳过不同文件系统上的目录。

  • --exclude=PATTERN​:排除匹配 PATTERN 的文件或目录。

三、du 命令示例

目录就像一个结构体,本身占用空间并不大。将一个文件存入目录,实际是建立一个链接到目录。

ls 和 tree 命令对于目录大小的计算:只包含目录本体大小,不包含存储在目录中的文件大小。

soulio@ubuntu:~/命令大全$ ls -lh
total 16K
drwxrwxr-x 3 soulio soulio 4.0K Sep 12 05:48 chmod
drwxrwxr-x 6 soulio soulio 4.0K Sep 12 08:38 cp
drwxrwxr-x 2 soulio soulio 4.0K Sep 14 08:55 dd
drwxrwxr-x 2 soulio soulio 4.0K Sep 14 13:48 diff

tree 命令

[4.0K]  .
├── [4.0K]  chmod
│   ├── [  29]  hello.sh
│   └── [4.0K]  文件夹
│       └── [   0]  file.txt
├── [4.0K]  cp
│   ├── [4.0K]  dir1
│   │   └── [   0]  hello.txt
│   ├── [4.0K]  dir2
│   │   └── [4.0K]  dir1
│   │       └── [   0]  hello.txt
│   ├── [4.0K]  dir3
│   │   └── [   0]  hello.txt
│   ├── [4.0K]  dir4
│   │   └── [   0]  hello.txt
│   └── [   0]  file
├── [4.0K]  dd
│   ├── [400M]  new_file
│   ├── [   0]  nginx.back
│   └── [400M]  test_file
└── [4.0K]  diff
    ├── [  47]  file1.txt
    └── [  55]  file2.txt

du 命令对于目录大小的计算:包含存储在其中的文件。

示例 1 显示当前目录的总磁盘使用量(以人类可读的格式):

du -sh
801M    .

示例 2 显示当前目录及其所有子目录的磁盘使用情况(人类可读):

du -h
12K     ./diff
4.0K    ./cp/dir1
4.0K    ./cp/dir2/dir1
8.0K    ./cp/dir2
4.0K    ./cp/dir3
4.0K    ./cp/dir4
24K     ./cp
4.0K    ./chmod/文件夹
12K     ./chmod
801M    ./dd
801M    .

示例 3 显示当前目录的总磁盘使用量,并包括所有子目录的大小:

du -hc
12K     ./diff
4.0K    ./cp/dir1
4.0K    ./cp/dir2/dir1
8.0K    ./cp/dir2
4.0K    ./cp/dir3
4.0K    ./cp/dir4
24K     ./cp
4.0K    ./chmod/文件夹
12K     ./chmod
801M    ./dd
801M    .
801M    total

示例 4 列出当前目录下所有文件和目录的磁盘使用量(以人类可读的格式):

du -ha
4.0K    ./diff/file2.txt
4.0K    ./diff/file1.txt
12K     ./diff
0       ./cp/dir1/hello.txt
4.0K    ./cp/dir1
0       ./cp/dir2/dir1/hello.txt
4.0K    ./cp/dir2/dir1
8.0K    ./cp/dir2
0       ./cp/file
0       ./cp/dir3/hello.txt
4.0K    ./cp/dir3
0       ./cp/dir4/hello.txt
4.0K    ./cp/dir4
24K     ./cp
0       ./chmod/文件夹/file.txt
4.0K    ./chmod/文件夹
4.0K    ./chmod/hello.sh
12K     ./chmod
400M    ./dd/new_file
0       ./dd/nginx.back
401M    ./dd/test_file
801M    ./dd
801M    .

示例 5 显示当前目录及其子目录的磁盘使用量,但只深入到第 2 级子目录:

du -hd 2
12K     ./diff
4.0K    ./cp/dir1
8.0K    ./cp/dir2
4.0K    ./cp/dir3
4.0K    ./cp/dir4
24K     ./cp
4.0K    ./chmod/文件夹
12K     ./chmod
801M    ./dd
801M    .

示例 6 排除当前目录下名为“node_modules”的所有子目录,并显示其他目录的磁盘使用情况:

du --exclude='node_modules'
12      ./diff
4       ./chmod/文件夹
12      ./chmod
819208  ./dd
819236  

示例 7 显示指定目录的磁盘使用情况:

du /path/to/directory
$ sudo du -sh /etc/
6.2M    /etc/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值