当前位置: 首页 > news >正文

【Linux系列】目录大小查看

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一、`du` 命令基础
      • 基本语法
      • 为什么需要 `-h` 选项?
    • 二、`du -h` 命令详解
      • 输出解读
      • 常用选项组合
    • 三、`du` 与其他命令的对比
      • `du` vs `df`
      • `du` vs `ls -l`
    • 四、实际应用场景
      • 1. 查找大目录
      • 2. 监控用户磁盘使用
      • 3. 排除特定目录
      • 4. 比较目录变化
    • 五、高级技巧与注意事项
      • 1. 处理符号链接
      • 2. 显示修改时间
      • 3. 性能优化
      • 4. 跨文件系统统计
    • 六、常见问题解答

在 Linux 系统管理和日常维护中,了解文件和目录占用磁盘空间的情况是一项基本而重要的任务。du(Disk Usage)命令是完成这一任务的强大工具,而 du -h 则是其中最常用的命令形式之一。

一、du 命令基础

du(Disk Usage)命令是 Linux/Unix 系统中用于估算文件和目录磁盘使用情况的实用程序。它通过递归遍历目录结构,计算每个文件和子目录占用的磁盘空间,并以块为单位(默认情况下)显示结果。

基本语法

du [选项] [文件或目录]

如果不指定文件或目录,du 会默认统计当前目录及其所有子目录的磁盘使用情况。

为什么需要 -h 选项?

原始的 du 命令输出以磁盘块为单位(通常 1 块=512 字节或 1KB),这种表示方式对人类阅读不够友好。例如:

du data

可能输出:

123456  data/subdir1
789012  data/subdir2
912468  data

这样的数字难以直观理解。-h(human-readable)选项的出现解决了这个问题,它会自动选择最合适的单位(KB、MB、GB 或 TB)来显示大小:

du -h data

输出变为:

4.0K    data/subdir1
8.2M    data/subdir2
1.2G    data

在这里插入图片描述

二、du -h 命令详解

输出解读

du -h 的典型输出包含多行信息:

  1. 子目录行:显示每个子目录的大小和路径
  2. 总计行(最后一行):显示指定目录的总大小

例如:

4.0K    data/subdir1
8.2M    data/subdir2
1.2G    data

这里:

  • data/subdir1 占用 4.0KB
  • data/subdir2 占用 8.2MB
  • 整个 data 目录占用 1.2GB

常用选项组合

  1. -s(汇总):仅显示总大小,不显示子目录详情

    du -sh data
    

    输出:

    1.2G    data
    
  2. -c(总计):在最后添加一个总计行

    du -hc data
    

    输出:

    4.0K    data/subdir1
    8.2M    data/subdir2
    1.2G    data
    1.2G    总用量
    
  3. --max-depth=N:控制显示的目录深度

    du -h --max-depth=1 data
    

    只显示 data 下第一级子目录的大小

三、du 与其他命令的对比

du vs df

  • du(Disk Usage):从文件系统角度计算文件和目录占用的空间
  • df(Disk Free):显示文件系统的整体磁盘使用情况

du 更适合查找具体目录或文件占用的空间,而 df 更适合查看整个磁盘或分区的使用情况。

du vs ls -l

  • ls -l 显示的是文件的实际大小(逻辑大小)
  • du 显示的是文件占用的磁盘空间(可能因块分配而大于实际大小)

例如,一个 1 字节的文件:

  • ls -l 显示 1 字节
  • du 可能显示 4KB(取决于文件系统的块大小)

四、实际应用场景

1. 查找大目录

du -h / | sort -rh | head -n 20

这条命令组合:

  1. 从根目录开始计算所有目录大小
  2. 按人类可读格式输出
  3. 按大小逆序排序
  4. 显示前 20 个最大的目录

2. 监控用户磁盘使用

du -sh /home/*

快速查看所有用户主目录的磁盘使用情况。

3. 排除特定目录

du -h --exclude='*.log' /var

统计 /var 目录大小,但排除所有 .log 文件。

4. 比较目录变化

du -sh data
# 进行一些操作后
du -sh data

通过两次执行比较目录大小的变化。

五、高级技巧与注意事项

1. 处理符号链接

默认情况下,du 会统计符号链接指向的文件大小。使用 -L 选项可以跟随符号链接:

du -Lh /path

2. 显示修改时间

结合 --time 选项可以显示最后修改时间:

du -h --time data

3. 性能优化

对于大型文件系统,du 可能需要较长时间。可以:

  1. 使用 --apparent-size 显示表观大小而非磁盘使用量(更快但不够准确)
  2. 限制目录深度 --max-depth
  3. 在非高峰时段运行

4. 跨文件系统统计

默认 du 会统计挂载点下的其他文件系统。使用 -x 可以限制在当前文件系统:

du -xh /

六、常见问题解答

Q1:为什么 dudf 显示的总空间不一致?

A1:可能原因包括:

  • 已删除但仍有进程打开的文件
  • 文件系统保留空间
  • 不同的统计方法(df 统计整个文件系统,du 统计具体文件)

Q2:如何统计目录中的文件数量而非大小?

A2:使用 findwc

find data -type f | wc -l

Q3:du 显示的 size 为什么比实际文件总和要大?

A3:du 统计的是磁盘使用量,包括:

  • 文件实际内容
  • 文件系统元数据
  • 由于块分配导致的额外空间

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

相关文章:

  • 《企业级前端部署方案:Jenkins+MinIO+SSH+Gitee+Jenkinsfile自动化实践》
  • 2025年渗透测试面试题总结-某服面试经验分享(附回答)(题目+回答)
  • 用uniapp在微信小程序实现画板(电子签名)功能,使用canvas实现功能
  • 聊一聊接口的压力测试如何进行的?
  • Algolia - Docsearch的申请配置安装【以踩坑解决版】
  • Java线程安全问题深度解析与解决方案
  • Vue2 中 el-dialog 封装组件属性不生效的深度解析(附 $attrs、inheritAttrs 原理)
  • 【记录】HunyuanVideo 文生视频工作流
  • 用于构建安全AI代理的开源防护系统
  • 辰鳗科技朱越洋:紧扣时代契机,全力投身能源转型战略赛道
  • 射频前端模组芯片(PA)三伍微电子GSR2337 兼容替代SKY85337, RTC7646, KCT8247HE
  • 2025年小程序DDoS与CC攻击防御全指南:构建智能安全生态
  • Linux下的c/c++开发之操作Sqlite3数据库
  • 使用 Vite 创建 Vue 3 项目并手动配置路由的完整步骤
  • 蓝桥杯青少 图形化编程(Scratch)每日一练——校门外的树
  • 基于vueflow可拖拽元素的示例(基于官网示例的单文件示例)
  • 面试实践AND面经热点题目总结
  • 探索 C++23 的 views::cartesian_product
  • 基于机器学习的攻击检测与缓解,以及 SDN 环境中的多控制器布局优化
  • 微程序控制器的详细工作过程
  • 比尔·盖茨:未来20年通过盖茨基金会捐出几乎全部财富,2045年底基金会停止运营
  • 万玲、胡春平调任江西省鹰潭市副市长
  • 对话|蓬皮杜策展人布莱昂:抽象风景中的中国审美
  • 美联储主席:不打算先发制人地降息,将继续观望
  • 轿车追尾半挂车致3死1伤,事故调查报告:司机过分依赖巡航系统
  • 央视315晚会曝光“保水虾仁”后,湛江4家涉事企业被罚超800万元