使用 du 命令可统计文件和目录磁盘占用,结合 -s、-h、--max-depth、-a 等选项实现简洁或详细输出;通过 du -h /path | sort -rh | head -n 10 快速定位最大占用目录;du 与 df 不同,前者查看文件级占用,后者查看文件系统级空间;结合 find 与 xargs 可精确统计特定类型文件或排除指定目录。

du
在使用
du
比如,我想看看当前目录的总体大小,我通常会这么做:
du -sh .
这里的
-s
-h
如果你想深入了解某个特定目录,比如
/var/log
du -h --max-depth=1 /var/log
--max-depth=1
du
有时候,我需要知道所有文件(包括隐藏文件)和目录的大小,这时候
-a
du -ah /path/to/directory
这会列出路径下所有文件和目录的大小,同样以人类可读的格式显示。

这绝对是运维或开发人员最常遇到的场景之一:服务器磁盘报警,你需要马上找出是哪个目录在“作妖”。我通常会先定位到可能出问题的挂载点,然后用
du
sort
head
假设我的
/data
sudo du -h /data | sort -rh | head -n 10
这里
sudo
du -h /data
/data
|
sort -rh
-r
-h
sort
head -n 10
这个组合命令简直是我的救星,它能让我迅速从茫茫多的目录中揪出真正的“胖子”,省去了大量手动检查的时间。我记得有一次,就是靠这个命令,我发现一个日志归档脚本出了问题,导致一个旧目录里堆积了TB级的日志文件,差点把整个文件系统撑爆。

这是一个经典的混淆点,很多人搞不清
du
df
du
du
du
du
du
而
df
df
df
我通常是这样使用的:
df -h
df
/
/home
df
du -sh /path
df
du
简而言之,
df
du

有时候,我们不光想知道总大小,还想进行更细致的分析。比如,我只想知道一个项目目录下所有的
.log
node_modules
du
如果你想排除某些目录或文件模式,
du
--exclude
node_modules
du -h --exclude="node_modules" --exclude="*.git" /path/to/my/project
这个命令会统计
/path/to/my/project
node_modules
.git
--exclude
如果我的需求更复杂,比如我只想统计所有
.jpg
du
find
find /path/to/images -name "*.jpg" -print0 | xargs -0 du -ch
这个命令链的逻辑是这样的:
find /path/to/images -name "*.jpg" -print0
.jpg
print0
xargs -0 du -ch
xargs -0
find
du -ch
du -ch
.jpg
-c
这种组合命令的灵活性非常高,能让我根据实际需求,精确地筛选出需要统计的目标,这对于进行精细化的存储审计和清理工作非常有帮助。我发现很多时候,只用
du
find
xargs
以上就是Linux统计目录大小du命令实例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号