前面把目录项、inode、dentry、fd、page cache 这条主线先理了一遍之后,我发现文件系统里还有一组概念特别容易混在一起:
- 硬链接
- 软链接
- unlink
- rename
它们看起来都是在“改文件”,但实际上很多时候改的并不是文件内容,而是名字和目录项这一层的关系。把这部分看清之后,很多现象就会顺起来,比如:
- 为什么一个文件可以有多个名字
- 为什么删掉一个名字,文件不一定立刻消失
- 为什么改名通常很快
- 为什么软链接断了,但它自己还在
2026/4/6...大约 8 分钟
前面把目录项、inode、dentry、fd、page cache 这条主线先理了一遍之后,我发现文件系统里还有一组概念特别容易混在一起:
它们看起来都是在“改文件”,但实际上很多时候改的并不是文件内容,而是名字和目录项这一层的关系。把这部分看清之后,很多现象就会顺起来,比如: