指令 ln -s 创建软链接、硬链接

原创首发于CSDN,转载请注明出处,谢谢!
https://blog.csdn.net/weixin_46959681/article/details/115351150



创建链接的现实需求

不论是哪类操作系统下进行操作,系统里的文件都是分散于各个不同的盘内不同目录内。当在不同的文件目录下用到相同的文件时,我们没必要在每一个所处的文件目录下放置相同的文件, 只需要在所处的文件目录下创建一个“快捷方式(Link)”指向真正需要的文件即可(使用命令 ln -s 源文件 生成的链接文件,-s 意为代号(symbolic)。) , 如:ln -s libwiringPi.so.2.5 libwiringPi

注意:

  1. ln 的链接又分软链接和硬链接两种;
  2. ln 命令会保持每一处链接文件的同步性 —— 不论你改动了哪一处,其它的文件都会发生相同的变化;

软链接

软连接

如图片所示,蓝色字体的文件 libwiringPi.so 就是指令 ln 生成的软链接文件。我们在交叉编译树莓派ARM代码文件时链上库 -lwiringPi,看似使用的是库 libwiringPi.so ,但实际上他指向的是另一个库 libwiringPi.so.2.50 。生成的库文件 libwiringPi.so 只是一个包含了 libwiringPi.so.2.5 位置信息的文本文件。

|软链接的特点

  1. 软链接文件类似于 Windows 的快捷方式;
  2. 软链接就是ln -s 源文件 生成的软链接文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间;
  3. 在软连接的符号链接中,文件实际上就是一个文本文件,包含着源文件的位置信息。

硬链接

硬链接就是 ln 源文件 生成的硬链接文件。在没有参数 -s 的情况下, 会在你选定的位置上生成一个和源文件大小相同的文件。

|硬链接的特点

  1. 硬链接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,允许多个文件名指向同一索引节点;
  2. 硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能;
  3. 因对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有所有链接被删除后,文件的数据块及目录的连接才会被释放。故文件真正删除的条件是与之相关的所有硬连接文件均被删除。

思绪

笔者在以往使用 Windows 系统的过程中习惯于图形化的窗口界面,仅止于打开一个又一个窗口创建、删除文件,这就造成了一个后果:Windows 系统的图形化窗口是经过高度封装的,等于将整个操作系统的文件系统和使用者之间加了一层隔离墙,相当大程序上隔绝了我们对于操作系统的感知。

但在高度自由的 Linux 系统环境中一切都迎刃而解了,没有诡异又别扭的分盘,只有按功能划分的系统文件区块 blockarchfsipctoolskernel 等等。通过强大又优雅的编辑器 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」

猜你喜欢

转载自blog.csdn.net/weixin_46959681/article/details/115351150