du 命令:显示目录(文件)占用磁盘空间大小
侧边栏壁纸
  • 累计撰写 64 篇文章
  • 累计收到 1 条评论

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

soulio
2024-09-15 / 0 评论 / 8 阅读 / 正在检测是否收录...

一、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

海报

正在生成.....

评论 (0)

取消