linux硬链接和软链接的详细说明


一:介绍


对于一个文件来说,有唯一的索引结点(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时,才会删除原始文件。

发布了33 篇原创文章 · 获赞 10 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章