Linux系列之链接
2023-02-18 16:41:38 时间
前言
在类Unix系统中,一个文件有可能被多个名字引用。我们使用链接来实现这一点,链接共有两种类型:硬链接和软链接,本文分别来介绍它们。
硬链接
硬链接也允许指向文件,但与符号链接的方式不同。它们是Unix创建链接的原始方式。默认情况下,每个文件都有一个单独的硬链接,该链接给出了文件的名称,当我们创建一个硬链接时,我们是为一个文件创建一个额外的目录条目。其中有两个限制:
- 硬链接不能引用自己文件系统以外的文件。它所引用的文件必须在同一磁盘分区上。
- 硬链接不能引用目录。
硬链接与文件本身是没有区别的。我在下面列出了一个包含硬链接和符号链接的目录,我们可以看到,硬链接没有特殊的指示,表明它是一个硬链接,而符号链接则有明显的指示(权限中的l
和显示它链接到什么的->
)。
当硬链接被删除时,链接是被删除了,但是文件本身的内容却仍旧存在,直到删除所有指向该文件的链接。你可能会时不时地碰到这种情况,但现代化的实践更倾向于符号链接。
我们可以使用下面的命令来创建硬链接:
ln file link
符号链接
符号链接是一种特殊类型的文件。它们也被称为软链接或符号链接,它们被用来指向任意计算机上的任何文件或目录,类似于Windows中的快捷方式和Mac OS中的别名。
我们可以使用下面的命令来创建符号链接:
ln -s item link
item
既可以是文件,也可以是目录。
符号链接克服了硬链接的局限性,因为它们通过创建一种特殊类型的文件来工作,其中包含一个指向被引用文件或目录的文本指针。
如果你向符号链接写东西,被引用的文件就会被写入,当你删除符号链接时,只有链接会被删除而文件本身不会被删除。如果文件被删除,该链接将继续存在,但将不指向任何东西,并被称为中断。
相关文章
- [git] 打标签命令
- [git] git clone指定分支代码
- [git]git中分支的概念
- [Go] gin 解决: accept4: too many open files
- [Linux] 网络抓包工具tshark
- [Git[ 解决 git branch -M main error: refname refs/heads/master not found
- [Linux] ps+awk +while 实时查看进程内存占用情况
- 【架构师(第四十五篇)】 服务端开发之认识 Github actions
- 为Linux手动安装Mcsmanager
- git 常用命令小记
- Go语言逆向技术:恢复函数名称算法
- 嵌入式:ARM处理器的工作状态
- MySQL基础知识(二)-超详细 Linux安装MySQL5.7完整版教程及遇到的坑
- 从Linux零拷贝深入了解Linux-I/O
- [PHP] linux下安装PHP8的小问题
- [PHP] windows或者linux安装composer2
- Linux服务器下启动和关闭node
- [Go] 理解(*interface{})(nil) 赋值的变量是否为nil
- [Linux] 理解CPU缓存的伪共享问题
- [Go]理解golang项目性能分析工具trace