一文弄懂硬链接、软链接、复制的区别
复制
命令:cp file1 file2
作用:实现对file1
的一个拷贝。
限制:可以跨分区,文件夹有效。
效果:修改file1,对file2无影响;修改file2,对file1无影响。删除file1,对file2无影响;删除file2,对file1无影响。
原理:磁盘存储空间的一个拷贝。
相当于两个完全不一样的文件,inode(索引节点)不一样。对于一个文件操作,完全不影响另一个文件。
硬链接
命令:ln file1 file2
限制:不能跨分区;文件夹无效。
作用:实现对file1的一个硬连接。不同于拷贝(复制)。
效果:修改file1,file2会变;修改file2,file1会变。删除file1后file2任然存在且可用(数据任然为file1的数据)。多个硬连接,也始终只有一个存储区块。
原理:每对file1增加一个硬连接,系统对file1的对应的inode(硬盘数据节点)的连接数加一。当删除file1或file2等其它硬连接时,对磁盘对应的数据节点连接数减一,只有当连接数为0时,才真正的删除数据。
多个文件名对应一个相同的inode节点,就是硬链接
软链接
命令:ln -s file1 file2
作用:实现对file1的一个软连接。
限制:可以跨分区;文件夹有效。
效果:修改file1,file2会变;修改file2,file1会变。删除file1后file2变为不可用。若强行编辑file2并保存,系统会生成文件file1,内容为file2编辑的内容。若对file2再建立软连接file3,实际效果为file3为file1的软连接。
原理:类似于windows的快捷方式。
两个文件的inode节点号不同,比如A链接到B,A和B指向的是两个不同的inode,继而指向两块不同的数据块。**但是A的数据块中存放的只是B的路径名(**可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
参考链接
硬链接和软链接的区别是什么——贴近原理
Linux硬链接、软连接和复制的区别——比较清晰,容易记