前言

在类Unix系统中,一个文件有可能被多个名字引用。我们使用链接来实现这一点,链接共有两种类型:硬链接和软链接,本文分别来介绍它们。

硬链接

硬链接也允许指向文件,但与符号链接的方式不同。它们是Unix创建链接的原始方式。默认情况下,每个文件都有一个单独的硬链接,该链接给出了文件的名称,当我们创建一个硬链接时,我们是为一个文件创建一个额外的目录条目。其中有两个限制:

  • 硬链接不能引用自己文件系统以外的文件。它所引用的文件必须在同一磁盘分区上。
  • 硬链接不能引用目录。

硬链接与文件本身是没有区别的。我在下面列出了一个包含硬链接和符号链接的目录,我们可以看到,硬链接没有特殊的指示,表明它是一个硬链接,而符号链接则有明显的指示(权限中的l和显示它链接到什么的->)。

当硬链接被删除时,链接是被删除了,但是文件本身的内容却仍旧存在,直到删除所有指向该文件的链接。你可能会时不时地碰到这种情况,但现代化的实践更倾向于符号链接。

我们可以使用下面的命令来创建硬链接:

ln file link

符号链接

符号链接是一种特殊类型的文件。它们也被称为软链接或符号链接,它们被用来指向任意计算机上的任何文件或目录,类似于Windows中的快捷方式和Mac OS中的别名。

我们可以使用下面的命令来创建符号链接:

ln -s item link

item既可以是文件,也可以是目录。

符号链接克服了硬链接的局限性,因为它们通过创建一种特殊类型的文件来工作,其中包含一个指向被引用文件或目录的文本指针。

如果你向符号链接写东西,被引用的文件就会被写入,当你删除符号链接时,只有链接会被删除而文件本身不会被删除。如果文件被删除,该链接将继续存在,但将不指向任何东西,并被称为中断。

最新文章

  1. 存在即合理,重复轮子orm java版本
  2. 廖雪峰JavaScript学习摘录
  3. a标签,img标签,表格
  4. Java并发编程核心方法与框架-Semaphore的使用
  5. .net程序员工作两年总结
  6. Struts2 Convention插件的使用
  7. linux上改变mysql数据文件的位置
  8. 355. Design Twitter
  9. C#编写的序列化通用类代码
  10. java 面试
  11. Csharp 高级编程 C7.1.2(2)
  12. SpringMVC:学习笔记(8)——文件上传
  13. AngularJS路由跳转
  14. 《安卓网络编程》之第四篇 处理URL地址
  15. 一步一个坑 - WinDbg调试.NET程序
  16. Redis 初次见面
  17. xml和对象 转换
  18. 怎样打开U盘最安全
  19. 用webstorm开发前端项目前的一些配置
  20. [数据结构]迪杰斯特拉(Dijkstra)算法

热门文章

  1. 钉钉登录二维码嵌套在vue页面中
  2. 剖析虚幻渲染体系(15)- XR专题
  3. hyperlpr centos 使用记录
  4. 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》
  5. bat-注册表修改win11右键风格
  6. cmd命令与bat编程
  7. 拉取服务器上的项目,svn认证失败
  8. 6. RDD综合练习:更丰富的操作
  9. 爬虫(6) - 网页数据解析(2) | BeautifulSoup4在爬虫中的使用
  10. Unsupervised Person Re-identification by Soft Multilabel Learning