文件系统
每个文件(真正的文件数据)都有一个 inode 值,指向物理硬盘的一个区块,同时文件系统会维护一个引用计数,只要有文件(引用)指向这个区块,它就不会从磁盘上消失;
可以理解为 区块是存储文件内容的地方,我们所说的文件其实是对这个区块的引用,删除其中一个引用并不会对区块和另一个引用造成影响,当这个区块没有引用的时候就会被回收,平时所说的删除文件其实删除的是对区块的引用.
命令行
# 输出当前目录下的文件及子目录列表, 包含磁盘区块的inode
ls -li
硬链接
硬链接相当于拷贝磁盘区块的引用;
硬链接的文件和原文件的 inode 值一样,所以指向同一个区块,所以修改其中一个另一个同步改变(类似js的对象引用一样),但删除其中一个文件,并不会对这个区块有影响,所以还可以访问;
与 copy 文件的区别就是会复制磁盘区块, inode 是不同的.
硬链接
复制
命令行
# 硬链接
ln source_file target_file
# 复制
cp source_file target_file
硬链接
复制
yin ### 软链接 软链接相当于分配一个新的磁盘区块存储源文件的绝对路径;软链接的 inode 值和原文件是不同的,说明指向的是不同的区块,当访问软链接的时候系统自动替换为所指的文件路径,如果删掉源文件,当访问软链接的时候,因为以原路径访问文件,当此文件已删除,所以就显示无法找到该文件.
命令行
# 软链接
ln -s source_file target_file