欢迎各位兄弟 发布技术文章
这里的技术是共享的
du -sh
命令详解与示例du
是 Linux/Unix 系统中用于估算文件和目录空间使用情况的命令。其中 -sh
是两个常用选项的组合,下面详细解释:
bashdu -sh [目录或文件]
-s
或 --summarize
:仅显示总计,不显示每个子目录的详细情况
-h
或 --human-readable
:以易读的格式(K、M、G)显示大小
查看当前目录的总大小
bashdu -sh
输出示例:
4.2G .
查看指定目录的总大小
bashdu -sh /home/user/Documents
输出示例:
2.5G /home/user/Documents
查看多个目录的大小
bashdu -sh /var/log /var/www
输出示例:
1.3G /var/log
580M /var/www
查看当前目录下所有子目录的大小
bashdu -sh *
输出示例:
12K backup
34M downloads
2.5G projects
126K tmp
结合排序查看最大目录
bashdu -sh * | sort -h
此命令会按从小到大排序显示目录大小
--max-depth=N
:设置显示的目录深度
bashdu -h --max-depth=1 /var
-c
:显示总计(与 -s
一起使用时特别有用)
bashdu -sch *
-a
:显示所有文件而不仅是目录
du -sh
是系统管理和磁盘空间清理时非常有用的命令,可以帮助你快速找出占用空间最大的目录。
-s -c -a 的区别
在 du
命令中,-s
、-c
和 -a
是三个常用的选项,它们的区别如下:
-s
(--summarize)作用:仅显示指定的目录或文件的总使用量,不显示子目录的详情。
示例:
bashdu -sh /path/to/directory
输出(仅显示总量):
2.5G /path/to/directory
适用场景:仅关心某个目录的总大小,而不需要详细子目录占用情况。
-c
(--total)作用:在最终结果中额外显示合计值(可以与 -s
结合使用)。
示例:
bashdu -ch /path/to/directory1 /path/to/directory2
输出(每个目录单独显示,最后一行汇总):
1.3G /path/to/directory1
1.2G /path/to/directory2
2.5G total
适用场景:需要同时查看多个目录的大小 并计算它们的总和(如统计 /var
下所有子目录的总占用)。
-a
(--all)作用:显示所有文件和目录的大小(默认 du
仅显示目录)。
示例:
bashdu -ah /path/to/directory
输出(所有文件+目录,可能很长):
4.0K /path/to/directory/file1.txt
12M /path/to/directory/subdir
12M /path/to/directory
适用场景:需要精确到每个文件的占用情况(如查找大文件)。
命令 | 作用 | 输出示例 |
---|---|---|
du -sh * | 当前目录下所有子目录的总大小(不显示文件) | 12K dir1 50M dir2 |
du -sch * | 当前目录下所有子目录的总大小 + 合计值 | 12K dir1 50M dir2 50M total |
du -ah --max-depth=1 | 显示当前目录下所有文件和子目录(1层深度) | 4.0K file1 12M dir1 12M . |
选项 | 显示内容 | 是否递归子目录 | 典型用途 |
---|---|---|---|
-s | 仅汇总值 | 否 | 快速查看目录总大小 |
-c | 额外显示合计 | 是(除非搭配 -s ) | 计算多个目录总和 |
-a | 所有文件+目录 | 是 | 查找具体大文件 |
根据需求灵活组合这些选项可以更高效地分析磁盘使用情况!