一:介绍
对于一个文件来说,有唯一的索引结点(inode)与之对应,而对于一个索引结点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。
软连接(symbolic link)又叫符号连接。符号连接相当于windows下的快捷方式。
*************************** 不可以对 文件夹/目录 建立硬连接的,我们通常用的还是软连接比较多。
建立硬链接:
如:ln a b
创建一个新的硬链接,即为路径a标识的文件创建一个路径名为b的硬链接。修改b时,a也被修改了,始终同步。
注意:1,不能给目录创建硬链接
2,只有在同一文件系统类型的存储空间创造硬链接
可见:硬链接有限制,于是引入软链接(符号链接)
建立软链接:
ln -s a c
创建一个路径名为b的新的软链接指向a,任何对b的引用都可以自动转换成对a的引用。
但是如果删除了a,c就无法访问,没用了。而b依然可以,实际存在。
二 两者之间的区别
硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Number)。
在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要
文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个
连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
硬连接必须在同一文件系统中,而软连接可以跨文件系统
三 个人体会
软链接是另一个文件,作用可以理解为一个指针,******作用在这个文件上的操作除了删除都直接转向实际指向文件,由于是一个真实的文件所以占用磁盘空间
硬链接可以认为不是一个文件,它只是实际文件的一个别名,它的作用是防止真实文件被误操作,给一个文件建立硬链接后,他们互为别名,删除其中任意一个,
这样用RM命令只会删除该别名,实际文件并不会被删除。只有链接数为0时,才会删除原始文件。