如何精确查询Linux服务器特定文件夹的详细空间占用情况?

更新于
2026-08-17 10:48:44
2阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
怎么说呢,

再看痛点直击。为什么硬盘空间总是“莫名其妙”满?

在运维日常中。最常遇到的尴尬场景往往是:

  • 监控告警显示磁盘使用率已达 90%+,却找不到“罪魁祸首”。
  • 程序提示 “No space left on device”,但 ls -l 看不出哪个目录异常。
  • 清理日志、删除旧文件后空间仍未回升,怀疑有隐藏的临时文件或误删的挂载点。

这些问题的根源几乎都是对文件夹占用情况缺乏精准、分层的视图。下面的章节将一步步教你用 Linux 原生命令和实用工具,快速定位并量化每个目录、子目录乃至单个大文件的磁盘占用。

如何精确查询Linux服务器特定文件夹的详细空间占用情况?

一、先从全局视角审视文件程序——df

目标:了解哪块磁盘分区最紧张,确认要检查的挂载点。

# 人类可读输出
df -h
# 查看特定挂载点
df -h /var

-h 将字节数转换为易读单位;如果只想看某个文件程序的使用情况,只需在命令后加上方法即可。

二、细化到目录层级——du 系列实战

1. 最常用的一键概览

# 显示当前目录下每个子目录的总占用
du -sh ./*
# 按大小排序,找出“大块头”
du -sh ./* | sort -hr

2. 限制深度。仅看一级子目录

# --max-depth=1 等价于上面的 * 通配符,但更灵活
du -h --max-depth=1 /path/to/target

3. 查看单个目录的总大小

# 只输出总计,不列出每个子目录
du -sh /path/to/folder

4. 想要完整树形展示?加入 -a

# 列出所有文件和子目录的大小
du -ah --max-depth=2 /path/to/folder | sort -hr

5. 合并多个选项,实现“一键全能”

# 人类可读 + 总计 + 限制深度 + 排序
du -h --max-depth=2 /path/to/folder | sort -hr

三、交互式工具——ncdu

适用场景:当你希望在终端里直接“点开”目录查看占用时ncdu 是首选。

# 安装
sudo apt-get install ncdu
# 启动并扫描根分区
sudo ncdu /
# 扫描特定方法。例如 /var/log
sudo ncdu /var/log

ncdu 会以树形结构展示每层大小,你可以使用方向键快速展开/收起,按 d 删除不需要的文件或目录。按理说,这一步骤往往能在几秒钟内定位到占比最大的几个目录。

四、结合 find 挖掘“大块头”文件

If you suspect a handful of huge files are eating space,use:

# 查找大于 500M 的文件并按大小倒序排列
find /path/to/search -type f -size +500M -exec ls -lh {} + | sort -k5 -hr
# 只列出前 10 条最大文件
find / -xdev -type f -printf '%s %p
' | sort -nr | head -n 10 | awk '{printf "%.2f MB\t%s
"。$1/1024/1024,$2}'

五、脚本化批量检查:每日自动报告

If you need a recurring snapshot of folder usage for audit or alerting,wrap commands into a tiny Bash script:

#!其实,/usr/bin/env bash
TARGETS=
REPORT="/tmp/disk_usage_$.txt"
{
echo "=== Disk Usage Report: $ ==="
df -hT | grep "^/dev"
echo ""
for DIR in "${TARGETS}";do
echo "> $DIR"
du -sh "$DIR" 2>/dev/null
du -sh "$DIR"/* 2>/dev/null | sort -hr | head -n 5
echo ""
done
}> "$REPORT"
# 可选:发送邮件或 Slack 通知
# mail -s "Disk Usage Report" <"$REPORT"
# curl -X POST ...   # Slack webhook
echo "Report saved to $REPORT"

六、常见误区与排查技巧

  • NFS 或挂载点失效:A directory may appear empty but actually resides on a failed mount;check with alert df –T.
  • .git、Docker 镜像层:Docker 容器镜像默认保存在 /var/lib/docker;使用 docksystem prune –a 清理未使用镜像。
  • .tmp/.cache 文件:Cron jobs often leave temporary files under /tmp ;periodic clean‑up via /etc/tmpfiles.d .
  • LVM 快照:LVM snapshots can silently consume dozens of GB;list m with .

七、快速定位实战案例

从案例一来看,根分区已满,却找不到大文件所在位置

  1. a. 先确认是哪个挂载点紧张:
    $ df -hT | grep '^/dev'
  2. b. 使用 ncdu 快速浏览:
    $ sudo ncdu / # 在交互界面里直接看到前十名占比目录 
  3. c. 若想进一步细化到单个大文件: $ find / -xdev‑type f ‑size +1G ‑exec ls ‑lh {} + | sort ‑k5 ‑hr
  4. \end{ol}

说到案例二。/home 下某使用者家目录爆炸式增长

  • 执行单使用者专属查询:
    $ du –sh /home/alice/*
    $ du –sh /home/alice/.cache # 常见缓存堆积点
    $ du –sh /home/alice/.local/share/Trash/* # 垃圾箱
    
  • 再看针对性清理,
    • 再看删除旧日志,rm ‑rf /home/alice/*.log.*​
    • 再看清空回收站,rm ‑rf /home/alice/.local/share/Trash/*​
    • 压缩或迁移大媒体文件。​
    • ​ ​​ ​​ ​​ ​ ​​ ​​​ ​​ ​​ ​​ ​​ ​​ ​​​ ​​​ ​​​​ ​​​​ ​​​ ​ ​ ​ ​ ​ ​ ​
      ⚠️ 小心误删!执行任何删除命令前请务必确认方法和备份策略。.

      常用快捷键

      • ← → 展开/折叠;
      • d 删除选中文件或目录;老实说,
      • q 退出。

      推荐阅读 & 工具链接

      • 官方手册这方面,man duman dfman ncdu
      • 在线监控网站可将 df 指标持久化;
      • “Linux 硬盘空间管理”系列视频教程。

      ©2026 运维技术分享 • 如有版权争议,请联系作者撤稿。

      如何精确查询Linux服务器特定文件夹的详细空间占用情况?

标签:文件夹
怎么说呢,

再看痛点直击。为什么硬盘空间总是“莫名其妙”满?

在运维日常中。最常遇到的尴尬场景往往是:

  • 监控告警显示磁盘使用率已达 90%+,却找不到“罪魁祸首”。
  • 程序提示 “No space left on device”,但 ls -l 看不出哪个目录异常。
  • 清理日志、删除旧文件后空间仍未回升,怀疑有隐藏的临时文件或误删的挂载点。

这些问题的根源几乎都是对文件夹占用情况缺乏精准、分层的视图。下面的章节将一步步教你用 Linux 原生命令和实用工具,快速定位并量化每个目录、子目录乃至单个大文件的磁盘占用。

如何精确查询Linux服务器特定文件夹的详细空间占用情况?

一、先从全局视角审视文件程序——df

目标:了解哪块磁盘分区最紧张,确认要检查的挂载点。

# 人类可读输出
df -h
# 查看特定挂载点
df -h /var

-h 将字节数转换为易读单位;如果只想看某个文件程序的使用情况,只需在命令后加上方法即可。

二、细化到目录层级——du 系列实战

1. 最常用的一键概览

# 显示当前目录下每个子目录的总占用
du -sh ./*
# 按大小排序,找出“大块头”
du -sh ./* | sort -hr

2. 限制深度。仅看一级子目录

# --max-depth=1 等价于上面的 * 通配符,但更灵活
du -h --max-depth=1 /path/to/target

3. 查看单个目录的总大小

# 只输出总计,不列出每个子目录
du -sh /path/to/folder

4. 想要完整树形展示?加入 -a

# 列出所有文件和子目录的大小
du -ah --max-depth=2 /path/to/folder | sort -hr

5. 合并多个选项,实现“一键全能”

# 人类可读 + 总计 + 限制深度 + 排序
du -h --max-depth=2 /path/to/folder | sort -hr

三、交互式工具——ncdu

适用场景:当你希望在终端里直接“点开”目录查看占用时ncdu 是首选。

# 安装
sudo apt-get install ncdu
# 启动并扫描根分区
sudo ncdu /
# 扫描特定方法。例如 /var/log
sudo ncdu /var/log

ncdu 会以树形结构展示每层大小,你可以使用方向键快速展开/收起,按 d 删除不需要的文件或目录。按理说,这一步骤往往能在几秒钟内定位到占比最大的几个目录。

四、结合 find 挖掘“大块头”文件

If you suspect a handful of huge files are eating space,use:

# 查找大于 500M 的文件并按大小倒序排列
find /path/to/search -type f -size +500M -exec ls -lh {} + | sort -k5 -hr
# 只列出前 10 条最大文件
find / -xdev -type f -printf '%s %p
' | sort -nr | head -n 10 | awk '{printf "%.2f MB\t%s
"。$1/1024/1024,$2}'

五、脚本化批量检查:每日自动报告

If you need a recurring snapshot of folder usage for audit or alerting,wrap commands into a tiny Bash script:

#!其实,/usr/bin/env bash
TARGETS=
REPORT="/tmp/disk_usage_$.txt"
{
echo "=== Disk Usage Report: $ ==="
df -hT | grep "^/dev"
echo ""
for DIR in "${TARGETS}";do
echo "> $DIR"
du -sh "$DIR" 2>/dev/null
du -sh "$DIR"/* 2>/dev/null | sort -hr | head -n 5
echo ""
done
}> "$REPORT"
# 可选:发送邮件或 Slack 通知
# mail -s "Disk Usage Report" <"$REPORT"
# curl -X POST ...   # Slack webhook
echo "Report saved to $REPORT"

六、常见误区与排查技巧

  • NFS 或挂载点失效:A directory may appear empty but actually resides on a failed mount;check with alert df –T.
  • .git、Docker 镜像层:Docker 容器镜像默认保存在 /var/lib/docker;使用 docksystem prune –a 清理未使用镜像。
  • .tmp/.cache 文件:Cron jobs often leave temporary files under /tmp ;periodic clean‑up via /etc/tmpfiles.d .
  • LVM 快照:LVM snapshots can silently consume dozens of GB;list m with .

七、快速定位实战案例

从案例一来看,根分区已满,却找不到大文件所在位置

  1. a. 先确认是哪个挂载点紧张:
    $ df -hT | grep '^/dev'
  2. b. 使用 ncdu 快速浏览:
    $ sudo ncdu / # 在交互界面里直接看到前十名占比目录 
  3. c. 若想进一步细化到单个大文件: $ find / -xdev‑type f ‑size +1G ‑exec ls ‑lh {} + | sort ‑k5 ‑hr
  4. \end{ol}

说到案例二。/home 下某使用者家目录爆炸式增长

  • 执行单使用者专属查询:
    $ du –sh /home/alice/*
    $ du –sh /home/alice/.cache # 常见缓存堆积点
    $ du –sh /home/alice/.local/share/Trash/* # 垃圾箱
    
  • 再看针对性清理,
    • 再看删除旧日志,rm ‑rf /home/alice/*.log.*​
    • 再看清空回收站,rm ‑rf /home/alice/.local/share/Trash/*​
    • 压缩或迁移大媒体文件。​
    • ​ ​​ ​​ ​​ ​ ​​ ​​​ ​​ ​​ ​​ ​​ ​​ ​​​ ​​​ ​​​​ ​​​​ ​​​ ​ ​ ​ ​ ​ ​ ​
      ⚠️ 小心误删!执行任何删除命令前请务必确认方法和备份策略。.

      常用快捷键

      • ← → 展开/折叠;
      • d 删除选中文件或目录;老实说,
      • q 退出。

      推荐阅读 & 工具链接

      • 官方手册这方面,man duman dfman ncdu
      • 在线监控网站可将 df 指标持久化;
      • “Linux 硬盘空间管理”系列视频教程。

      ©2026 运维技术分享 • 如有版权争议,请联系作者撤稿。

      如何精确查询Linux服务器特定文件夹的详细空间占用情况?

标签:文件夹