总结软连接和硬连接区别,并用实例操作

软链接
   ln -s 原文件  目标文件
   特征:1、相当于windows的快捷方式
       2、符号链接,所以链接文件大小都很小
       3、当运行软连接的时候,会根据链接指向找到真正的文件,然后执行
         4、所有链接文件的权限都是777,而真正的权限是由指向的那个文件决定的
         5、原文件丢失后,软链接无法访问,会报找不到的错误
         6、ls -al ,软连接后面箭头执行的时源文件
  
硬链接
   ln 源文件 目标文件
   特征:1、原文件和链接文件的属性完全一样
      2、链接文件和源文件的关系类似于:复制+同步更新
      3、当原文件丢失,硬链接文件还可以访问
      4、不能跨分区,不能针对目录使用
      5、原理:原文件和硬链接文件的节点相同的,1个文件名只能对应1个节点号。但是1个节点号能对应多个文件名。所以,他们的属性完全相同,并且修改了其中一个的内容另外一个也会跟着修改。

所以:

  1、硬链接是同一个文件多个名字,软链接不是同一个文件
  2、硬链接不能跨分区、设备,软链接可以
  3、硬链接的连接数增长,软链接不增长
  4、节点编号:硬链接的节点编号相同,软链接不一样
  5、原始文件删掉,硬链接的文件可以访问,软链接的原始文件删掉,访问失效
  6、软连接的指向文件大小是路径的大小,硬链接的大小就是文件的大小
  7、硬链接不支持目录、软链接支持目录
  8、相对路径写法不一样,硬链接不能用相对路径,写相对路径就会找不到文件路径,而软链接可以使用相对路径

 

实例:
创建a文件的软连接b,并查看a和软链接文件a.link的inodes、权限、大小,如下:
[root@centos6 ~]# ln -s a a.link
[root@centos6 ~]# ll -i
total 6728
394681 -rw-r--r-- 1 root root 6888896 Nov 10 21:42 a
394522 lrwxrwxrwx 1 root root       1 Nov 10 21:45 a.link -> a
从命令的执行结果上看,结论如下:
1、a文件的inode号为394681,a.link文件inode为394522,inode号不一致。
2、符号链接,所以链接文件大小都很小。a.link大小为1bit,而a文件的大小为6.6M。
3、所有a.link文件的权限都是777,而真正的权限是由指向的那个文件决定的

删除文件a,访问a.link链接文件
[root@centos6 ~]# mv a a.bak
[root@centos6 ~]# cat a.link
cat: a.link: No such file or directory
总结:原文件丢失后,软链接无法访问,会报找不到文件的错误
 
创建a文件的硬链接a.hard,查看a和软链接文件a.link的inodes、权限、大小等元数据。
[root@centos6 ~]# ln a a.hard
[root@centos6 ~]# ll -i
total 13456
394681 -rw-r--r-- 3 root root 6888896 Nov 10 21:42 a
394681 -rw-r--r-- 3 root root 6888896 Nov 10 21:42 a.hard
394522 lrwxrwxrwx 1 root root       1 Nov 10 21:45 a.link -> a
总结:原文件和链接文件的属性完全一样,元数据完全一样。
 
删除a文件后,硬链接文件a.hard的情况
[root@centos6 ~]# mv a a.bak
[root@centos6 ~]# ll -i
total 13456
394699 -rw-r--r-- 2 root root 6888896 Nov 10 22:39 a.bak
394699 -rw-r--r-- 2 root root 6888896 Nov 10 22:39 a.hard
394522 lrwxrwxrwx 1 root root       1 Nov 10 21:45 a.link -> a
[root@centos6 ~]# tail a.hard
999991
999992
999993
999994
999995
999996
999997
999998
999999
1000000
总结:当原文件丢失,硬链接文件还可以访问。
[root@centos6 ~]# echo "1">>a.bak
[root@centos6 ~]# tail -1 a.hard
1
总结:链接文件和源文件的关系类似于:复制+同步更新


posted @ 2020-12-06 19:51  DemonLI  阅读(517)  评论(0编辑  收藏  举报