【Linux】如安在 Linux 上查找占用空间较大的文件和文件夹

[复制链接]
发表于 2026-10-3 22:50:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

用久了 Linux,磁盘迟早会告急。找出到底是谁在吃空间,是运维日常里最高频的操作之一。这里整理了三种常用办法:只用系统自带命令的最简方案、能区分文件和目录的方案,以及可视化交互的 ncdu。

方法一:du 加 sort,列出最占空间的前十个

这条命令一行搞定,能直接看到当前目录及其子目录里占用空间最大的前十个文件或文件夹。

# 查找当前目录及其子目录中占用空间较大的前 10 个文件或文件夹
du -ah . | sort -rh | head -n 10

拆开来看每一项的含义:

  • du -ah .:递归统计当前目录(.)下所有文件和文件夹的占用空间,-a 表示显示所有文件和文件夹,-h 表示用人类可读的格式(K、M、G)显示。
  • sort -rh:按数值大小逆序排序,-r 是逆序,-h 是按人类可读格式排序。
  • head -n 10:只显示排序后的前 10 行。

方法二:分别查文件、分别查目录

1. 找出前 10 个最大的文件

find . -type f -exec du -h {} + | sort -rh | head -n 10
  • find . -type f:查找当前目录及其子目录下的所有普通文件。
  • -exec du -h {} +:对查到的每个文件执行 du -h,{} 代表文件名,+ 表示批量处理而不是每找到一个就启动一次进程,性能要好得多。
  • sort -rh | head -n 10:按数值逆序排序并显示前 10 行。

2. 找出前 10 个最大的目录

du -h --max-depth=1 . | sort -rh | head -n 10

du -h --max-depth=1 . 统计当前目录下的文件夹大小,--max-depth=1 表示只看这一层,不递归进子目录,所以看到的是每个一级目录的总占用。

方法三:用 ncdu 交互式查看

ncdu 是一个基于 ncurses 的磁盘使用分析工具,交互体验比纯命令直观得多,可以上下箭头浏览、直接进目录看,还能用 d 键删除。

1. 安装 ncdu

不同发行版的安装命令略有区别:

sudo apt-get install ncdu    # Debian / Ubuntu
sudo yum install ncdu        # CentOS / RHEL
sudo dnf install ncdu        # Fedora

2. 使用 ncdu

ncdu /

启动后是一张交互式界面,用箭头键导航,按 q 退出。想从某个子目录开始看,把路径换掉即可,比如 ncdu /var。

三种方法怎么选

场景推荐命令特点
快速看一眼谁最大du -ah . | sort -rh | head一条命令,无需安装
只想看大文件find + du -exec会遍历所有文件,大目录稍慢
定位到具体某个目录du --max-depth=1只看一层,响应最快
想边看边删ncdu /交互式,可下钻、可删除

几个实用的经验

  • 先看一级目录(du -sh *)能最快定位到“是 /var、是 /home 还是 /opt 在涨”,再往里钻,比一上来就全盘扫要快。
  • 容器和日志日志是磁盘膨胀的两大元凶:journalctl --vacuum-size 清理 systemd 日志日志,Docker 用 docker system prune 清悬空镜像。
  • 分析大目录时注意区分“ apparent size”和真实占用,du 默认统计磁盘块占用,稀疏文件可能显得很小。
  • 查完记得确认删除目标是不是挂载点里的东西,别误删了数据盘。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表