原创首发于CSDN,转载请注明出处,谢谢!
https://blog.csdn.net/weixin_46959681/article/details/115351150
创建链接的现实需求
不论是哪类操作系统下进行操作,系统里的文件都是分散于各个不同的盘内不同目录内。当在不同的文件目录下用到相同的文件时,我们没必要在每一个所处的文件目录下放置相同的文件, 只需要在所处的文件目录下创建一个“快捷方式(Link)”指向真正需要的文件即可(使用命令 ln -s 源文件 生成的链接文件,-s 意为代号(symbolic)。) , 如:ln -s libwiringPi.so.2.5 libwiringPi
。
注意:
- ln 的链接又分软链接和硬链接两种;
- ln 命令会保持每一处链接文件的同步性 —— 不论你改动了哪一处,其它的文件都会发生相同的变化;
软链接
如图片所示,蓝色字体的文件 libwiringPi.so 就是指令 ln 生成的软链接文件。我们在交叉编译树莓派ARM代码文件时链上库 -lwiringPi,看似使用的是库 libwiringPi.so
,但实际上他指向的是另一个库 libwiringPi.so.2.50
。生成的库文件 libwiringPi.so
只是一个包含了 libwiringPi.so.2.5
位置信息的文本文件。
|软链接的特点
- 软链接文件类似于 Windows 的快捷方式;
- 软链接就是
ln -s 源文件 生成的软链接文件
,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间; - 在软连接的符号链接中,文件实际上就是一个文本文件,包含着源文件的位置信息。
硬链接
硬链接就是 ln 源文件 生成的硬链接文件
。在没有参数 -s 的情况下, 会在你选定的位置上生成一个和源文件大小相同的文件。
|硬链接的特点
- 硬链接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,允许多个文件名指向同一索引节点;
- 硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能;
- 因对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有所有链接被删除后,文件的数据块及目录的连接才会被释放。故文件真正删除的条件是与之相关的所有硬连接文件均被删除。
思绪
笔者在以往使用 Windows 系统的过程中习惯于图形化的窗口界面,仅止于打开一个又一个窗口创建、删除文件,这就造成了一个后果:Windows 系统的图形化窗口是经过高度封装的,等于将整个操作系统的文件系统和使用者之间加了一层隔离墙,相当大程序上隔绝了我们对于操作系统的感知。
但在高度自由的 Linux 系统环境中一切都迎刃而解了,没有诡异又别扭的分盘,只有按功能划分的系统文件区块 block
、arch
、fs
、ipc
、tools
、kernel
等等。通过强大又优雅的编辑器 vim 来操作指令,我们可以自由地驰骋。 相信没有一个程序员可以拒绝一双几乎不需要移动的双手。
vim 书籍阅读列表
- 《Vim 8 文本处理实战》
- 《Vim 实用技巧》
- 《学习 Vi 和 Vim 编辑器》(影印版)
文章更新记录
- “创建链接的现实需求” 一节完成。 「2021.4.2 10:04」
- 文章初次完成。 「2021.4.2 11:56」
- 增加“思绪”一节。 「2021.4.2 18:39」
- 增加“Vim 书籍阅读列表”一节。 「2021.4.3 11:16」