如何在 Linux 中查看目录大小?

这是一篇关于如何通过一些常用的命令,显示 CentOS 或 RedHat 中的 Linux 目录大小,以及哪些文件夹占用的空间最大的教程。
搜索当前的 CentOS 或 RedHat 文件夹
您可以使用以下命令,在命令行中向下搜索当前文件夹的大小:
du -h --max-depth=1 |grep -v -e [0-9].[0-9]K -e [0-9][0-9]K -e ^0 | sort -n

在 Linux 文件夹中查找前 10 个大文件
find /home/shenweiyan/Downloads -xdev -type f -exec du -sk {} \; |sort -rn | head -10

在 Linux 中查找使用率高的磁盘
df -P | awk '0+$5 >= 70 {print}' # 其实 du -Th 就可以直接看

安装软件包以检查 Linux 目录大小
yum install ncdu

安装后,只需键入 ncdu
即可开始:

ncdu 键盘快捷键
up, down j, k - 在各个项目条目之间循环;
right, enter, l - 打开光标所在的目录;
left, <, h - 回到父目录;
n - 按文件名排序(再次按降序排列);
s - 按文件大小排序(再次按降序排列);
C - 按项目数(即该目录下的文件总数)排序(再次按降序排列);
c - 切换子项计数的显示;
a - 在显示磁盘使用情况和显示大小之间切换;
M - 按最近的 child mtime 或修改时间排序(再次按降序排列)需要 -e 标志;
m - 切换最近的 child mtime或修改时间的显示。需要-e标志;
d - 删除选定的文件或目录。当目录的内容与文件系统不匹配或不再存在时,将显示一条错误消息;
g - 在显示百分比,图形或两者之间切换。百分比是相对于当前目录的大小,图是相对于当前目录中的最大项目;
e - 显示/隐藏“隐藏”或“排除”的文件和目录。请注意,即使看不到隐藏的文件和目录,它们也仍然存在,并且仍包含在目录大小中;
i - 显示有关用法和大小的突出显示的项目信息;
r - 重新计算当前目录;
b - 在当前目录中生成 bash shell;
q - 退出 ncdu;
NCDU 示例
ncdu
如果要扫描整个文件系统(例如,根文件系统),则需要使用
-x
:
ncdu -x /
ncdu -1xo- / | gzip >export.gz
扫描完成后,可以通过下面的命令查看扫描结果:
zcat export.gz | ncdu -f-
提示:要从 cron 作业导出,请确保将 -1 替换为 -0 以禁止任何不必要的输出!
扫描完成后,您还可以导出目录并浏览目录:ncdu -o- | tee export.file | ncdu -f-
使用 gzip 压缩的结果也可以做到这一点,但有点麻烦:
ncdu -o- | gzip | tee export.gz | gunzip | ncdu -f-
要远程扫描系统,但在本地浏览文件:
ssh -C user@system ncdu -o- / | ncdu -f-
ssh 的 -C
选项会启用压缩,这对于慢速链接非常有用。与直接在远程系统上运行 ncdu
相比,远程扫描和本地查看具有两个主要优点:您可以浏览本地系统上的扫描目录而没有任何网络延迟,并且 ncdu
在导出时不会将整个目录结构保留在内存中, 这样您就不会在远程系统上消耗太多内存。
结论
本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了