du 命令在 用于检查文件和目录的磁盘使用情况。-S 和 -s 是 du 命令的两个不同的选项:
-S 选项 显示不包括子目录的大小。它会计算每个指定目录的总大小,但不包括其子目录中的文件大小。这对于确定某个特定目录本身占用了多少空间非常有用,而不考虑其下任何子目录的大小。
-s 选项 显示总计。它会计算指定目录及其所有子目录的总大小,给出一个总的使用量。
-a会列出所有文件和目录
-h选项(可读格式,例如 KB、MB)可以使输出更易于阅读
没有任何参数的情况下运行时,它会递归地计算当前工作目录及其所有子目录中的文件大小
选项解释
无参数
- 默认行为:显示当前目录及其所有子目录的磁盘使用情况。
- 示例:
输出可能为当前目录和子目录的磁盘使用大小。du
-S
选项
- 功能:显示不包括子目录的大小,只计算顶级目录的文件大小。
- 示例:
输出该目录下的直接文件大小总和,不包括任何子目录中的文件。du -S /path/to/directory
-s
选项
- 功能:显示总计大小,包括所有指定目录及子目录的大小。
- 示例:
输出包括所有子目录在内的总大小。du -s /path/to/directory
-a
选项
- 功能:显示所有文件和目录的详细磁盘使用情况。
- 示例:
输出目录及子目录下所有文件和目录的磁盘使用详细信息。du -a /path/to/directory
组合使用 -s
, -S
, 和 .*
- 示例1:
du -s ./*
- 输出当前目录下每个文件和子目录的总大小。
- 示例2:
du -S ./*
- 输出当前目录下每个文件和子目录的大小,但不包括子目录内的文件大小。
组合使用 -a
与其他选项
- 示例1:
du -a -s /path/to/directory
- 实际会忽略
-a
的效果,只显示总的累计大小。
- 实际会忽略
- 示例2:
du -a -S /path/to/directory
- 显示每个文件和顶级目录的直接大小,不包括子目录大小。
让我们设想一个具体的文件目录结构,然后通过du
命令的不同选项来展示可能的输出结果。这将帮助更好地理解各种参数在实际情况下的应用。
假设的文件目录结构
设想以下目录结构位于/home/user/ExampleDir
:
/home/user/ExampleDir/ ├── file1.txt (1MB) ├── file2.txt (1MB) ├── Subdir1 │ ├── file3.txt (1MB) │ └── file4.txt (2MB) └── Subdir2 ├── file5.txt (2MB) └── Subdir3 ├── file6.txt (1MB) └── file7.txt (1MB)
du
命令输出示例
1. 无参数
du /home/user/ExampleDir
输出为:
4M /home/user/ExampleDir/Subdir1 4M /home/user/ExampleDir/Subdir2/Subdir3 6M /home/user/ExampleDir/Subdir2 11M /home/user/ExampleDir
2. 使用 -S
选项
du -S /home/user/ExampleDir
输出示例:
2M /home/user/ExampleDir # 只包括file1.txt和file2.txt的大小
3. 使用 -s
选项
du -s /home/user/ExampleDir
输出示例:
11M /home/user/ExampleDir # 包括所有文件和子目录的总大小
4. 使用 -a
选项
du -a /home/user/ExampleDir
输出示例:
1M /home/user/ExampleDir/file1.txt 1M /home/user/ExampleDir/file2.txt 1M /home/user/ExampleDir/Subdir1/file3.txt 2M /home/user/ExampleDir/Subdir1/file4.txt 2M /home/user/ExampleDir/Subdir2/file5.txt 1M /home/user/ExampleDir/Subdir2/Subdir3/file6.txt 1M /home/user/ExampleDir/Subdir2/Subdir3/file7.txt 4M /home/user/ExampleDir/Subdir1 4M /home/user/ExampleDir/Subdir2/Subdir3 6M /home/user/ExampleDir/Subdir2 11M /home/user/ExampleDir
5. 组合使用 -s
和 .*
du -s /home/user/ExampleDir/*
输出示例:
1M /home/user/ExampleDir/file1.txt 1M /home/user/ExampleDir/file2.txt 4M /home/user/ExampleDir/Subdir1 6M /home/user/ExampleDir/Subdir2
6. 组合使用 -S
和 .*
du -S /home/user/ExampleDir/*
输出示例:
1M /home/user/ExampleDir/file1.txt 1M /home/user/ExampleDir/file2.txt 4M /home/user/ExampleDir/Subdir1 2M /home/user/ExampleDir/Subdir2 # 只计算Subdir2内的直接文件file5.txt