硬/软链接

102 阅读2分钟

文件系统

每个文件(真正的文件数据)都有一个 inode 值,指向物理硬盘的一个区块,同时文件系统会维护一个引用计数,只要有文件(引用)指向这个区块,它就不会从磁盘上消失;

可以理解为 区块是存储文件内容的地方,我们所说的文件其实是对这个区块的引用,删除其中一个引用并不会对区块和另一个引用造成影响,当这个区块没有引用的时候就会被回收,平时所说的删除文件其实删除的是对区块的引用.

文件系统.png

命令行
# 输出当前目录下的文件及子目录列表, 包含磁盘区块的inode 
ls -li
文件系统-commond.png

硬链接

硬链接相当于拷贝磁盘区块的引用;

硬链接的文件和原文件的 inode 值一样,所以指向同一个区块,所以修改其中一个另一个同步改变(类似js的对象引用一样),但删除其中一个文件,并不会对这个区块有影响,所以还可以访问;

copy 文件的区别就是会复制磁盘区块, inode 是不同的.

硬链接.png

硬链接

复制.png

复制

命令行
# 硬链接
ln source_file target_file

# 复制
cp source_file target_file
硬链接-command.png

硬链接

复制-command.png

复制

yin ### 软链接 软链接相当于分配一个新的磁盘区块存储源文件的绝对路径;

软链接的 inode 值和原文件是不同的,说明指向的是不同的区块,当访问软链接的时候系统自动替换为所指的文件路径,如果删掉源文件,当访问软链接的时候,因为以原路径访问文件,当此文件已删除,所以就显示无法找到该文件.

软链接.png

命令行
# 软链接
ln -s source_file target_file
软链接-command.png