Linux du 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何在 Linux 中使用 du(disk usage,磁盘使用情况)命令来估算文件空间使用情况,并获取文件和目录占用的磁盘空间信息。你将了解 du 命令的各种选项,测量目录的磁盘使用情况,并从 du 测量中排除某些目录。本实验涵盖了 Linux 中的基本文件和目录操作,这些操作对于系统管理和文件管理任务至关重要。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/SystemInformationandMonitoringGroup -.-> linux/df("Disk Space Reporting") linux/SystemInformationandMonitoringGroup -.-> linux/du("File Space Estimating") subgraph Lab Skills linux/ls -.-> lab-422652{{"Linux du 命令实用示例"}} linux/cd -.-> lab-422652{{"Linux du 命令实用示例"}} linux/df -.-> lab-422652{{"Linux du 命令实用示例"}} linux/du -.-> lab-422652{{"Linux du 命令实用示例"}} end

理解 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 命令包含了 subdir1subdir2 目录的磁盘使用情况。

如果你想从 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

在这种情况下,由于我们排除了 subdir1subdir2main_dir 目录的总磁盘使用情况被报告为 0。

总结

在本实验中,你学习了 Linux 中的 du(disk usage,磁盘使用情况)命令,该命令用于估算文件空间使用情况,并提供文件和目录占用的磁盘空间信息。你探索了常用的 du 选项,例如 -h 用于人类可读的输出,-s 用于显示目录的总大小,以及 -d 用于限制目录树的深度。你还练习了使用 du 命令测量特定目录的磁盘使用情况,包括目录本身及其内部文件的磁盘使用情况。

Linux 命令速查表