概念:

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

主要区别、限制:

硬链接:

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

  b:不能对不同的文件系统创建硬链接,即两个文件名要在相同的文件系统下。

  c:不能对不存在的文件创建硬链接,由原理即可知原因。

软链接:

  a.可以对目录创建软链接,遍历操作会忽略目录的软链接。

  b:可以跨文件系统

  c:可以对不存在的文件创建软链接,因为放的只是一个字符串,至于这个字符串是不是对于一个实际的文件,就是另外一回事了

ln 语法格式 

硬链接:ln 源文件 链接名

软链接:ln -s 源文件 链接名

注意:  链接的源文件路径要写绝对路径)

否则会报错(no such file or diretory)

示例:

如果觉得不错的话可以点赞关注哦!  谢谢

最新文章

  1. 【Java学习系列】第3课--Java 高级教程
  2. unity渲染层级关系小结(转存)
  3. jsp_Scriptlet
  4. python 线性回归示例
  5. LeetCode Ugly Number (简单题)
  6. 类成员函数指针 ->*语法剖析
  7. 解决Intellij IDEA 通过archetype创建Maven项目缓慢的问题
  8. 对现有Hive的大表进行动态分区
  9. [转贴]怎样在LINQ实现 LEFT JOIN 或者RIGHT JOIN
  10. android-配置虚拟机Virtual device
  11. jq實現網頁個性title
  12. CEBX格式的文档如何转换为PDF格式文档、DOCX文档?
  13. 1003 Emergency Dijkstra
  14. 【原创】岁月如歌 一款网易歌单生成pdf的软件
  15. henrylee2cn简单的rpc服务
  16. TrID文件类型识别linux版
  17. C# CSGL
  18. C/C++ -- Gui编程 -- Qt库的使用 -- Qt窗体的类型状态布局
  19. 关于redux
  20. NSArray的排序方法

热门文章

  1. CSS学习笔记_1
  2. rdd里的foreach无法对外界产生影响
  3. Ride to Office
  4. maven配置本地和远程仓库
  5. linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux
  6. rabbit mq 手动重试机制
  7. python执行cmd命令
  8. AJAX 实现form表单提交
  9. Please make sure you have the correct access rights and the repository exists.
  10. luogu5823 课表的排列