# 链接命令

链接命令可以在文件之间创建链接,通常链接分为硬链接和软链接两种。

# 背景知识

格式化是在物理驱动器(磁盘)的所有数据区上写零的操作过程,简单来讲磁盘在格式化的时候,就像就是把一张空白的盘划分成一个个小区域并编号,供计算机储存,读取数据。

格式化的过程通常会导致现有的磁盘或分区中所有的文件被清除,但清空文件并不是格式化真正的目的。

格式化的目的在于对磁盘进行格式化,划分磁道和扇区;同时检查出整个磁盘上有无带缺陷的磁道,对坏道加注标记;建立目录区和文件分配表(记录文件所在位置的表格),使磁盘作好接收 DOS 的准备。

数据被清空的情况,只是附带执行的。

# 硬连接

硬连接的实质就是将指向文件分配表中的内容(文件的相关信息:时间,储存位置等)的指针复制给新的文件。

硬连接具备如下特征:

  • 以文件副本的形式存在,但不占用实际空间。
  • 拥有相同的 i 结点和存储 block 块,可以看作是同一个文件。
  • 不能跨分区。
  • 不能针对目录使用。

注意:如果删除其中一个文件,另一个文件仍然可以访问。

# 软链接

软连接的工作方式相对于硬连接来说更加复杂。首先,新的文件会执行文件分配表中一个新的位置,其中记录的不再是所链接对象的相关信息,而是表示一块新的存储位置的信息。

存储信息中的内容,表示了源文件在文件分配表中的块,然后再根据此块读取源文件的内容。

显然,现在如果源文件被删除,那么软文件将不可用。

软连接的特征:

  • 跨文件系统。
  • 以路径的形式存在,类似 Windows 的快捷方式。
  • 拥有自己的 i 结点。
  • 可以对目录或一个不存在的文件名进行链接。

# 语法

ln [参数][源文件或目录][目标文件或目录]

# 参数

名称 描述
-s 软链接(符号链接)
-b 删除,覆盖以前建立的链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-d 允许超级用户制作目录的硬链接
-n 把符号链接视为一般目录
-v 显示详细的处理过程

# 实例

给文件创建硬链接,为 log2019.log 创建硬链接 ln2019log2019.logln2019 的各项属性相同。

ln log2019.log ln2019

给文件创建软链接,为 log2019.log 文件创建软链接 link2019,如果 log2019.log 丢失,link2019 将失效。

ln -s log2019.log link2019

# 总结

硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。

  • 两种链接,修改任一个文件,另一个文件都会随之改变。
  • 删除源文件硬连接依然可用,而软连接不再可用。