一、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/
本文共 552 个字数,平均阅读时长 ≈ 2分钟
评论 (0)