原理上:

硬链接(hard link):文件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仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

使用限制上:

硬链接

  1. 不能对目录创建硬链接,原因有几种,最重要的是:文件系统不能存在链接环(目录创建时的”..”除外,这个系统可以识别出来),存在环的后果会导致例如文件遍历等操作的混乱(du,pwd等命令的运作原理就是基于文件硬链接,顺便一提,ls -l结果的第二列也是文件的硬链接数,即inode节点的链接数)
  2. 不能对不同的文件系统创建硬链接,即两个文件名要在相同的文件系统下。
  3. 不能对不存在的文件创建硬链接,由原理即可知原因。

软链接:

  1. 可以对目录创建软链接,遍历操作会忽略目录的软链接。
  2. 可以跨文件系统
  3. 可以对不存在的文件创建软链接,因为放的只是一个字符串,至于这个字符串是不是对于一个实际的文件,就是另外一回事了

硬链接和软链接的作用

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

还有如果把链接名创建为一个以.开头的隐藏文件,还能很好的隐藏自己的隐私

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

硬链接和软链接的区别相关推荐

  1. Linux 硬链接和软链接的区别

    硬链接和软链接的区别 Linux 与其他类 UNIX 系统一样并不区分文件与目录:目录是记录了其他文件名的文件.我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user ...

  2. 硬链接与软链接的区别

    1.1 硬链接与软链接的总结 01:硬链接文件的创建:ln 源文件 硬链接文件(不能事先存在) 02:软链接文件的创建:ln -s 源文件 软链接文件(不能事先存在) 03:目录不能创建硬链接文件,但 ...

  3. 硬链接与软链接的区别有哪些?

    首先,大家要理解如下的概念: 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号. 文件属性保存在索引结点里,在访问文件时,索引结点被复制到 ...

  4. LINUX 硬链接与软链接的区别

    对于一个文件来说,有唯一的索引接点(inode)与之对应,而对于一个索引接点号,却可以有多个文件名与之对应.因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件.注意在Linux下是一切皆文件的啊 ...

  5. 【Linux原理】Linux中硬链接和软链接的区别和联系

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的 ...

  6. LInux软硬链接概念,03硬链接和软链接的区别和联系

    首先我们需要了解linux下硬链接以及软连接的基本概念. 硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用. 软链接:也称为符号链接,新建的文件以"路径& ...

  7. 硬链接、软链接的区别

    硬链接: (1)硬链接以文件副本的形式存在,但不占用实际空间 (2)不允许给目录创建硬链接 (3)硬链接只有在同一个文件系统中才能创建 软链接: (1)软链接以路径的形式存在(类似于Windows系统 ...

  8. Linux - 操作系统查找文件的过程以及硬链接与软链接的区别

    例:系统查找文件/var/log/messages的过程 内核知道 / 的inode号,根据这个inode号可以查找到inode表内 / 对应的的磁盘块,磁盘块内存放有 / 下面的目录以及对应的ino ...

  9. php 删除硬链接,RHCE系列之文件管理----硬链接和软链接

    Linux 文件系统最重要的特点之一是它的文件链接. 链接是对文件的引用,这样你可以让文件在文件系统中多处被看到. 在 Linux 中,链接可以如同原始文件一样来对待.链接可以与普通的文件一样被执行. ...

最新文章

  1. Python机器学习:训练Tesseract
  2. 《Python编程初学者指南》——1.6 回到Game Over程序
  3. 开发日记-20190905 关键词 Linux (Ubuntu) 下的Android模拟器:Genymotion
  4. [转]深入理解G1垃圾收集器
  5. MySQL now()函数
  6. javaweb和ajax使用查询出来的数据做下拉菜单_区块链浏览器实用指南篇:利用链上数据把握减半行情...
  7. [css] 说说sass有哪些你认为很棒的特性
  8. 存储引擎 boltdb 的设计奥秘?
  9. 新手 php连接数据库大概。简单过程浅析以及遇到的问题分析
  10. wifi 频段表_wifi频段如何设置为5ghz
  11. radam+lookahead optimizer
  12. 班级网站java,ssm班级网站
  13. c 语言count函数什么意思,在C ++ STL中设置count()函数
  14. 家用计算机如何关机,win7如何快速关机_win7快速关机的方法
  15. git add .添加文件时报错 error: ‘fileName/‘ does not have a commit checked out 解决方法
  16. ccf170902-公共钥匙盒
  17. VB.net项目源码
  18. 95后女数据分析师的千字经验,都在这了
  19. 语义Web简单综述(XML、RDF、OWL、知识库、知识图谱)
  20. vs2015启动网站调试提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。 解决方法

热门文章

  1. 电阻测试仪都有哪些种类呢?
  2. mysql忽略列_mysql – 使用SQL语句更改忽略表添加列(如果不存在)
  3. 检测 tomcat 挂掉,发送邮件
  4. 智能DNS服务器搭建
  5. java IO流进阶 模拟上传头像系统详解
  6. iwatch真的要来了!苹果iwatch传言汇总
  7. TCP/IP——网络层
  8. nginx工程师,需要上承天命,下召九幽
  9. java excel报表文件_JAVA导出excel报表
  10. 漫谈linux文件io,Linux文件IO与通用块层的请求合并