软硬链接区别

1、本质
  硬链接:本质是同一个文件
  软链接:本质还是同一个文件

[root@CentOS8 data]# ln a.txt test/b.txt
[root@CentOS8 data]# ll -i a.txt test/b.txt
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 a.txt
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 test/b.txt

[root@CentOS8 data]# ll -id /bin /usr/bin
83566 lrwxrwxrwx. 1 root root     7 May 11  2019 /bin -> usr/bin
  142 dr-xr-xr-x. 2 root root 40960 Feb 19 11:21 /usr/bin

  

2、跨设备
  硬链接:不支持
  软链接:支持

[root@CentOS8 data]# ln a.txt test/b.txt
[root@CentOS8 data]# ll -i a.txt test/b.txt
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 a.txt
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 test/b.txt

[root@CentOS8 data]# ln a.txt /b.txt
ln: failed to create hard link '/b.txt' => 'a.txt': Invalid cross-device link

  

3、inode
  硬链接:相同
  软链接:不同

[root@CentOS8 data]# ll -i a.txt test/b.txt
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 a.txt
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 test/b.txt

[root@CentOS8 data]# ll -id /bin /usr/bin
83566 lrwxrwxrwx. 1 root root     7 May 11  2019 /bin -> usr/bin
  142 dr-xr-xr-x. 2 root root 40960 Feb 19 11:21 /usr/bin

  

4、链接数
  硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数会减少。
  软链接:创建或删除软链接,链接数不会变化。

 

[root@CentOS8 data]# ln a.txt test2/c.txt
[root@CentOS8 data]# ll -i a.txt test/b.txt test2/c.txt 
131 -rw-r--r--. 3 root root 0 Feb 25 11:14 a.txt
131 -rw-r--r--. 3 root root 0 Feb 25 11:14 test2/c.txt
131 -rw-r--r--. 3 root root 0 Feb 25 11:14 test/b.txt
[root@CentOS8 data]# rm -f test/b.txt test2/c.txt
[root@CentOS8 data]# ll -i a.txt 
131 -rw-r--r--. 1 root root 0 Feb 25 11:14 a.txt

[root@CentOS8 ~]# ln -s /usr/bin/ ../../root/binbak
[root@CentOS8 ~]# ll -id /usr/bin /bin ~/binbak
    83566 lrwxrwxrwx. 1 root root     7 May 11  2019 /bin -> usr/bin
201752138 lrwxrwxrwx. 1 root root     9 Feb 25 12:56 /root/binbak -> /usr/bin/
      142 dr-xr-xr-x. 2 root root 40960 Feb 19 11:21 /usr/bin
[root@CentOS8 ~]# rm -rf binbak
[root@CentOS8 ~]# ll -id /usr/bin /bin 
83566 lrwxrwxrwx. 1 root root     7 May 11  2019 /bin -> usr/bin
  142 dr-xr-xr-x. 2 root root 40960 Feb 19 11:21 /usr/bin

  

5、文件夹  
  硬链接:不支持
  软链接:支持

[root@CentOS8 ~]# ln /usr/bin/ binbak
ln: /usr/bin/: hard link not allowed for directory

[root@CentOS8 ~]# ln -s /usr/bin/ ../../root/binbak
[root@CentOS8 ~]# ll -id ~/binbak
201752138 lrwxrwxrwx. 1 root root     9 Feb 25 12:56 /root/binbak -> /usr/bin/

  

6、相对路径
  硬链接:原始文件相对路径是相对于当前工作目录
  软链接:原始文件的相对路径是相对于链接文件的相对路径

[root@CentOS8 data]# ln a.txt ../data/test/b.txt
[root@CentOS8 data]# ll -i test/b.txt 
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 test/b.txt

[root@CentOS8 ~]# ln -s /usr/bin/ ../../root/binbak
[root@CentOS8 ~]# ll -id ~/binbak
201752138 lrwxrwxrwx. 1 root root     9 Feb 25 12:56 /root/binbak -> /usr/bin/

  

7、删除源文件
  硬链接:只是链接数减一,但链接文件的访问不受影响
  软链接:链接文件将无法访问

 

[root@CentOS8 data]# ll -i a.txt test/b.txt 
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 a.txt
131 -rw-r--r--. 2 root root 0 Feb 25 11:14 test/b.txt
[root@CentOS8 data]# rm -f a.txt 
[root@CentOS8 data]# ll -i a.txt test/b.txt 
ls: cannot access 'a.txt': No such file or directory
131 -rw-r--r--. 1 root root 0 Feb 25 11:14 test/b.txt

[root@CentOS8 data]# ln -s test/ ../../../data/testbak
[root@CentOS8 data]# ll -i testbak
133 lrwxrwxrwx. 1 root root 5 Feb 25 13:14 testbak -> test/
[root@CentOS8 data]# rm -rf test
[root@CentOS8 data]# ll -i testbak
133 lrwxrwxrwx. 1 root root 5 Feb 25 13:14 testbak -> test/
[root@CentOS8 data]# cd testbak
-bash: cd: testbak: No such file or directory

  

8、文件类型
  硬链接:和源文件相同
  软链接:链接文件,和源文件无关

[root@CentOS8 data]# ln a.txt test2/c.txt
[root@CentOS8 data]# ll !*
ll a.txt test2/c.txt
-rw-r--r--. 2 root root 0 Feb 25 13:22 a.txt
-rw-r--r--. 2 root root 0 Feb 25 13:22 test2/c.txt
[root@CentOS8 data]# ll -id /usr/bin/ /bin 83566 lrwxrwxrwx. 1 root root 7 May 11 2019 /bin -> usr/bin 142 dr-xr-xr-x. 2 root root 40960 Feb 19 11:21 /usr/bin/

  

上一篇:重新认识 @Autowired


下一篇:linux-硬链接与软连接