介绍
在本实验中,你将学习如何在 Linux 中使用 du(disk usage,磁盘使用情况)命令来估算文件空间使用情况,并获取文件和目录占用的磁盘空间信息。你将了解 du 命令的各种选项,测量目录的磁盘使用情况,并从 du 测量中排除某些目录。本实验涵盖了 Linux 中的基本文件和目录操作,这些操作对于系统管理和文件管理任务至关重要。
理解 du 命令
在这一步中,你将学习 Linux 中的 du(disk usage,磁盘使用情况)命令。du 命令用于估算文件空间使用情况,提供文件和目录占用的磁盘空间信息。
首先,让我们查看 du 命令的帮助文档:
man du
帮助文档的输出将为你提供关于 du 命令的各种选项和用法的详细信息。
一些常用的 du 选项包括:
-h:以人类可读的格式显示输出(例如,1.2M 而不是 1234567)-s:显示目录的总大小,而不是其中每个文件/目录的大小-c:在输出末尾显示总计-x:不跨越文件系统边界-d <depth>:限制du显示的目录树深度
现在,让我们通过一些示例来理解如何使用 du 命令:
## 显示当前目录的磁盘使用情况
du -h .
## 显示当前目录的磁盘使用情况,包括子目录
du -h -s *
## 显示当前目录的磁盘使用情况,限制深度为 1 级
du -h -d 1
示例输出:
4.0K .
4.0K file1.txt
8.0K file2.txt
12K .
输出显示了当前目录(.)及其内部文件的磁盘使用情况。-h 选项以人类可读的格式显示大小。
测量目录的磁盘使用情况
在这一步中,你将学习如何使用 du 命令测量特定目录的磁盘使用情况。
首先,让我们创建一个目录和一些文件来进行操作:
mkdir ~/project/test_dir
cd ~/project/test_dir
touch file1.txt file2.txt file3.txt
现在,让我们使用 du 命令测量 test_dir 目录的磁盘使用情况:
## 显示 test_dir 目录的磁盘使用情况
du -h ~/project/test_dir
## 显示 test_dir 目录的总磁盘使用情况
du -hs ~/project/test_dir
示例输出:
12K /home/labex/project/test_dir
12K /home/labex/project/test_dir
第一个命令 du -h ~/project/test_dir 显示了 test_dir 目录中每个文件和子目录的磁盘使用情况。-h 选项以人类可读的格式显示大小。
第二个命令 du -hs ~/project/test_dir 显示了 test_dir 目录的总磁盘使用情况。-s 选项显示汇总(总计)大小,而不是单个文件/目录的大小。
你还可以使用 du 命令递归地测量目录及其子目录的磁盘使用情况:
## 显示 test_dir 目录及其子目录的磁盘使用情况
du -h -d 1 ~/project/test_dir
示例输出:
4.0K /home/labex/project/test_dir/file1.txt
4.0K /home/labex/project/test_dir/file2.txt
4.0K /home/labex/project/test_dir/file3.txt
12K /home/labex/project/test_dir
12K /home/labex/project/test_dir
-d 1 选项将目录树的深度限制为 1 级,显示 test_dir 目录及其直接文件/子目录的磁盘使用情况。
从 du 测量中排除目录
在这一步中,你将学习如何从 du 命令的磁盘使用情况测量中排除特定目录。
让我们创建一个新的目录结构来演示这一点:
mkdir -p ~/project/main_dir/subdir1 ~/project/main_dir/subdir2
touch ~/project/main_dir/subdir1/file1.txt ~/project/main_dir/subdir2/file2.txt
现在,让我们使用 du 命令测量 main_dir 目录的磁盘使用情况,包括其子目录:
du -h -d 1 ~/project/main_dir
示例输出:
4.0K /home/labex/project/main_dir/subdir1
4.0K /home/labex/project/main_dir/subdir2
8.0K /home/labex/project/main_dir
8.0K /home/labex/project/main_dir
如你所见,du 命令包含了 subdir1 和 subdir2 目录的磁盘使用情况。
如果你想从 du 测量中排除特定目录,可以使用 --exclude 选项:
du -h -d 1 --exclude=subdir1 ~/project/main_dir
示例输出:
4.0K /home/labex/project/main_dir/subdir2
4.0K /home/labex/project/main_dir
4.0K /home/labex/project/main_dir
在这个例子中,--exclude=subdir1 选项告诉 du 从磁盘使用情况测量中排除 subdir1 目录。
你还可以通过多次使用 --exclude 选项来排除多个目录:
du -h -d 1 --exclude=subdir1 --exclude=subdir2 ~/project/main_dir
示例输出:
0 /home/labex/project/main_dir
0 /home/labex/project/main_dir
在这种情况下,由于我们排除了 subdir1 和 subdir2,main_dir 目录的总磁盘使用情况被报告为 0。
总结
在本实验中,你学习了 Linux 中的 du(disk usage,磁盘使用情况)命令,该命令用于估算文件空间使用情况,并提供文件和目录占用的磁盘空间信息。你探索了常用的 du 选项,例如 -h 用于人类可读的输出,-s 用于显示目录的总大小,以及 -d 用于限制目录树的深度。你还练习了使用 du 命令测量特定目录的磁盘使用情况,包括目录本身及其内部文件的磁盘使用情况。



