Bootstrap

linux下的目录内所有文件的大小

查看目录内所有文件的大小(包括子目录中的文件),并按大小排序,可以使用 find 命令结合 dusort


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 命令可以按大小排序。
;