查看目录内所有文件的大小(包括子目录中的文件),并按大小排序,可以使用 find
命令结合 du
和 sort
。
1. 查看目录内所有文件的大小并按大小排序
命令
find /path/to/directory -type f -exec du -ah {} + | sort -hr
参数说明
find
:查找文件或目录。/path/to/directory
:要查找的目录。-type f
:只查找文件,不包括目录。-exec du -ah {} +
:对找到的文件执行du -ah
命令,显示文件大小。
sort
:排序命令。-h
:按人类可读的格式排序(如 KB、MB、GB)。-r
:反向排序(从大到小)。
示例
假设要查看 /home/user/documents
目录下所有文件的大小并按大小排序:
find /home/user/documents -type f -exec du -ah {} + | sort -hr
2. 查看目录内所有文件和目录的大小并按大小排序
同时查看文件和目录的大小(包括子目录中的文件和目录),可以使用以下命令:
命令
du -ah /path/to/directory | sort -hr
参数说明
du
:显示目录或文件的磁盘使用情况。-a
:显示所有文件和目录的大小。-h
:以人类可读的格式显示大小(如 KB、MB、GB)。
sort
:排序命令。-h
:按人类可读的格式排序(如 KB、MB、GB)。-r
:反向排序(从大到小)。
示例
查看 /home/user/documents
目录下所有文件和目录的大小并按大小排序:
du -ah /home/user/documents | sort -hr
3. 输出结果示例
假设 /home/user/documents
目录结构如下:
/home/user/documents/
├── file1.txt 10M
├── file2.txt 5M
├── subdir1/
│ ├── file3.txt 20M
│ └── file4.txt 15M
└── subdir2/
└── file5.txt 8M
运行以下命令:
find /home/user/documents -type f -exec du -ah {} + | sort -hr
输出结果可能如下:
20M /home/user/documents/subdir1/file3.txt
15M /home/user/documents/subdir1/file4.txt
10M /home/user/documents/file1.txt
8M /home/user/documents/subdir2/file5.txt
5M /home/user/documents/file2.txt
如果运行以下命令:
du -ah /home/user/documents | sort -hr
输出结果可能如下:
20M /home/user/documents/subdir1/file3.txt
15M /home/user/documents/subdir1/file4.txt
10M /home/user/documents/file1.txt
8M /home/user/documents/subdir2/file5.txt
5M /home/user/documents/file2.txt
35M /home/user/documents/subdir1
8M /home/user/documents/subdir2
53M /home/user/documents
4. 总结
- 使用
find
命令可以递归查找目录中的所有文件,并结合du
显示文件大小。 - 使用
du
命令可以递归显示目录中所有文件和目录的大小。 - 结合
sort
命令可以按大小排序。