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


    软链接
       ln -s 原文件  目标文件
       特征:1、相当于windows的快捷方式
               2、符号链接,所以链接文件大小都很小
               3、当运行软连接的时候,会根据链接指向找到真正的文件,然后执行
                       4、所有链接文件的权限都是777,而真正的权限是由指向的那个文件决定的
                       5、原文件丢失后,软链接无法访问,会报找不到的错误
                       6、ls -al ,软连接后面箭头执行的时源文件
      
    硬链接
       ln 源文件 目标文件
       特征:1、原文件和链接文件的属性完全一样
          2、链接文件和源文件的关系类似于:复制+同步更新
          3、当原文件丢失,硬链接文件还可以访问
          4、不能跨分区,不能针对目录使用
          5、原理:原文件和硬链接文件的节点相同的,1个文件名只能对应1个节点号。但是1个节点号能对应多个文件名。所以,他们的属性完全相同,并且修改了其中一个的内容另外一个也会跟着修改。
     
    实例如下:
    创建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
    总结:链接文件和源文件的关系类似于:复制+同步更新
     
    综合以上实例,软连接和硬链接的区别总结如下:
    软链接和硬链接的区别:在linux的文件系统中,保存在磁盘分区中的文件不管事什么类型都给它分配一个编号,称为索引节点号inode。具体如下:
     1、软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的。软连接的inode跟原文件的inode是不一致的
     2、硬链接是不会建立inode。他只是在文件原里的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。
     3、硬链接是一个文件别名。
     4、软链接可以跨文件系统,硬链接不可以
     5、软链接可以对一个不存在的文件名进行链接,硬链接不行。
     6、软链接可以对目录进行连接,硬连接不可以
     7、两种链接都可以通过ln来创建,ln默认创建的是硬链接
     8、使用-s开关可以创建软链接。
  • 相关阅读:
    PHP多进程编程
    2013年中国数据库大会PPT
    python学习笔记
    策略分析方法论
    Linux操作系统下定时发送邮件
    PHP初学
    Linux操作下的进程管理利器 Supervise
    Hive中小表与大表关联(join)的性能分析zz
    工作杂记4
    PostgreSQL 13 源码安装【转载】 规格严格
  • 原文地址:https://www.cnblogs.com/qianyuezhan/p/13205048.html
Copyright © 2020-2023  润新知