Skip to content

第 05 课 · 文件系统与沙盒

仓库怎么编号、隔间为什么删不干净。

作者:曹宇春


先记住这个类比

  • 硬盘 = 大仓库
  • 文件 = 一份档案
  • 文件夹 = 柜门上的分类标签
  • inode = 档案袋里的 目录卡:大小、权限、数据在仓库哪几排
  • 文件名 = 贴在外面的标签(可换名,目录卡还在)

沙盒 / Containers ≈ 部门 只能进自己的私人隔间,翻不了整栋楼。


正式概念(人话版)

名字 → inode → 数据块

删除文件 ≈ 从目录索引划掉名字;若没有其他标签指向同一 inode,总管才回收空间。

常见路径(macOS)

路径类比
/Applications软件安装区
~/Documents你的个人档案柜
~/Library应用私货与缓存(最易「占着茅坑」)
/System核心档案室(受保护)

APFS(你 Mac 常用)

针对 SSD 优化;支持加密、快照等。
改文件常走类似「先复印再改」的路径(利于安全与 Time Machine,细节进阶再学)。

卸载 ≠ 清空

删掉 .app ≈ 只撤 前台工位
~/Library/ContainersApplication Support私人档案柜——人走了柜子可能还在。所以会「App 没了,磁盘还是大」。


在你电脑上看一眼

bash
# 各分区容量
df -h

# 家目录哪些大户(可能较慢)
du -sh ~/Library ~/Documents ~/Downloads 2>/dev/null

# inode 是否用尽(少见但真实)
df -i /

磁盘「满」两种:

  1. 空间满——仓库塞满
  2. inode 满——档案编号用完(小文件海量时)

开发里什么时候用得上

  • 磁盘 >75% 时编译、索引、Docker 镜像会变肉
  • 清理优先:微信 / 下载 / Library 缓存 / 旧 Node 版本,比纠结清不掉的空壳 Containers 更值
  • 权限 rwx:谁拥有档案、部门同事能不能写——部署踩坑常出在这里

练习

  1. df -h 看可用空间;若 <50GB,列一个你愿意删的清理清单。
  2. 找一个已卸载 App,看 ~/Library 里是否还有残留目录名。

小结

  • 文件名是标签,inode 是目录卡,数据在块里
  • 沙盒隔间保护隐私,也造成「删 App 不解耦数据」
  • 空间与 inode 都可能成为仓库瓶颈

下一课:寄合同——网络栈。

© 曹宇春 · 个人学习整理,欢迎交流