1.软链接、硬链接的概念

硬链接(hard link):A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

软链接(soft link):A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

2.软硬链接的使用方法

软链接:

    ①可以跨分区

    ②可以对目录创建软链接

    ③软链接文件和源文件使用不同的inode号码

    ④删除源文件、目录会导致软链接失效

硬链接:

    ①不可以跨分区创建硬链接

    ②不可以对目录创建硬链接

    ③硬链接文件和源文件使用相同的inode号码

    ④删除硬链接或源文件不对对方产生任何影响,直至删除使用该inode号码的最后一个文件

例子:

创建软链接和硬链接文件,并使用ls命令查看相关信息:

[root@test_01 ~]# ln /tmp/test01/1.txt /tmp/test01/hardlink_1.txt[root@test_01 ~]# ln -s /tmp/test01/1.txt /tmp/test01/softlink_1.txt[root@test_01 ~]# ls -li /tmp/test01总用量 033595420 -rwxrwxrwx. 2 wennan root        0 10月 25 00:23 1.txt33595420 -rwxrwxrwx. 2 wennan root        0 10月 25 00:23 hardlink_1.txt33594903 lrwxrwxrwx. 1 root   test_group 17 10月 27 00:31 softlink_1.txt -> /tmp/test01/1.txt33594901 -rw-r--r--. 1 root   root        0 10月 26 22:52 test01.txt33594902 -rw-r--r--. 1 root   test_group  0 10月 26 22:53 test02.txt

对目录创建软链接:

[root@test_01 ~]# ln -s /tmp/test01 /tmp/test03[root@test_01 ~]# ls -li /tmp总用量 12016910521 -rwx------. 1 root root          836 10月 17 06:09 ks-script-PoF3VE16783950 -rwxr-xr-x. 1 root root       117656 10月 24 23:50 ls2   21147 drwx------. 3 root root           17 10月 19 23:53 systemd-private-0e607d21d6df4bef8c3e9def8b2627ef-systemd-hostnamed.service-Lghzcd   21141 drwx------. 3 root root           17 10月 19 23:53 systemd-private-0e607d21d6df4bef8c3e9def8b2627ef-vmtoolsd.service-dU7kCR   21148 drwx------. 3 root root           17 10月 26 20:58 systemd-private-82851d3ae5974739860de1c7210f9d12-vmtoolsd.service-9uOwCU33595419 dr-x--S--x. 2 root test_group     77 10月 27 00:17 test01   21165 drwxr-xr-x. 3 root root           51 10月 27 00:14 test0216783959 lrwxrwxrwx. 1 root root           11 10月 27 00:27 test03 -> /tmp/test0116777289 -rw-------. 1 root root            0 10月 17 06:05 yum.log