1、结合 du
和 sort -h
(人类可读格式)
统计文件大小(自动转换单位,如KB/MB/GB)并排序
# find /Nas_Disk -type f -exec du -h {} \; | sort -hr du -h:以人类可读格式(如 4K、1M)显示文件大小。 sort -hr:按人类可读的数值从大到小排序(需GNU sort支持)
2、仅统计当前目录文件(不递归)
# du -ah /Nas_Disk | sort -rh du -ah:显示所有文件和目录的大小(包含递归子目录) sort -rh:按人类可读的数值从大到小排序。
进阶技巧
1、限制搜索深度(避免遍历所有子目录):
find /Nas_Disk -maxdepth 2 -type f -exec du -h {} \; | sort -hr -maxdepth 2:仅搜索 /Nas_Disk 及其直接子目录(层级控制).
2、排除特定目录或文件(如隐藏文件、临时文件):
find /Nas_Disk -type f ! -path '*/.*' ! -name '*.tmp' -exec du -h {} \; | sort -hr ! -path '*/.*':忽略隐藏文件/目录(如 .git、.cache)。 ! -name '*.tmp':排除所有 .tmp 文件。
3、仅统计前10大文件(快速定位最大文件)
find /Nas_Disk -type f -exec du -h {} \; | sort -hr | head -n 10
4、输出到文件(保存结果):
find /Nas_Disk -type f -printf "%s\t%p\n" | sort -nr > large_files.txt
5、统计目录总大小(而非单个文件):
du -sh /Nas_Disk/* | sort -hr -s:仅显示目录总大小(不递归子目录详情).