Linux中的硬链接与软链接?

时间:2022-07-22
本文章向大家介绍Linux中的硬链接与软链接?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

硬链接:在一个文件里面,对于目录来说,记录着文件的名字和inode号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号,是文件的唯一标识),我们也可以在多个目录里记录相同的inode号,它们的名字不一定相同,但只要inode号一样就行,它们最终都链接到一个文件里,这就是硬链接。也就是说,当文件的硬链接数被目录记录了一次,文件的硬链接数就增加了一次。所以,文件只要在目录里存在,它就至少有一个硬链接。

硬链接     ln 源  新文件        一旦创建成功,则没有源和目的文件关系 (硬链接里面不分主次关系)一个文件,只有硬链接为0时才是彻底删除。

​
[root@Centos6 kobe]# ls
curry  qjc
[root@Centos6 kobe]# ln qjc a
[root@Centos6 kobe]# ln a b
[root@Centos6 kobe]# ls -li
total 0
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 a
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 b
791545 -rw-r--r--. 1 root root 0 Jul 17 15:35 curry
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]# rm -f b
[root@Centos6 kobe]# ls -li
total 0
791533 -rw-r--r--. 2 root root 0 Jul 17 15:28 a
791545 -rw-r--r--. 1 root root 0 Jul 17 15:35 curry
791533 -rw-r--r--. 2 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]# 

​

    硬链接必须在相同的分区下(因为别的分区有自己inode,虽然文件可以在不同的分区下存在,但是inode号一样,并不占用别的分区的inode,只是在目录里加了一个条目,文件还是同一个。)不能跨分区创建

[root@Centos6 kobe]# ln a /boot/qjc
ln: creating hard link `/boot/qjc' => `a': Invalid cross-device link
[root@Centos6 kobe]# 

    硬链接不能对目录创建(因为引入了对目录的硬连接就有可能在目录中引入循环,在目录遍历的时候系统就会陷入无限循环当中,这样导致无法定位到访问目录)     目录的硬链接数包含目录自身的名字,以及.和子目录里的..

791422 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Downloads
786435 -rw-r--r--. 1 root root 50698 Jul 17  2018 install.log
786436 -rw-r--r--. 1 root root 10031 Jul 17  2018 install.log.syslog
791541 drwxr-xr-x. 2 root root  4096 Jul 17 15:35 kobe
791426 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Music
791427 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Pictures
791424 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Public
791423 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Templates
791428 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Videos
[root@Centos6 ~]# 

     所以目录的子目录数=(链接数-2)

软连接(符号链接):软连接是一个文件,只不过文件里存放的是别的文件的路径,软连接是一个单独文件,软连接可以通过路径访问源,如果源没了,软连接开始闪烁,找不到源,

软链接创建方式

 ln -s 源文件 目的文件     快捷方式 (wimdows)     软链接可以跨分区     可以相对路径 ,也可以绝对路径     在创建相对路径时,推荐进入到最终目录,再创建     删除源,软链接不可用

[root@Centos6 kobe]# ln -s curry ali
[root@Centos6 kobe]# ls
a  ali  curry  qjc
[root@Centos6 kobe]# ls -l
total 0
-rw-r--r--. 3 root root 0 Jul 17 15:28 a
lrwxrwxrwx. 1 root root 5 Jul 17 16:21 ali -> curry
-rw-r--r--. 1 root root 0 Jul 17 15:35 curry
-rw-r--r--. 3 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]# 

软硬链接的作用:

硬链接:硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。只删除一个连接并不影响节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接:

软链接又称之为符号连接。软链接文件类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。