在 Windows 系统中,快捷方式就是指向原始文件的一个链接文件,可以让用户从不同的位置来访问原始的文件;原文件一旦被删除或剪切到其他地方后,会导致链接文件失效。但是,这个看似简单的东西在 Linux 系统中可不太一样。

在 Linux 系统中存在硬链接和软连接(符号链接)两种文件。

硬链接(hard link):可以将它理解为一个“指向原始文件 inode 的指针”,系统不为它分配独立的 inode 和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的 inode 连接数就会增加 1;而且只有当该文件的 inode 连接数为 0 时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件 inode 的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。

软链接(也称为符号链接[symbolic link]):仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与 Windows 系统中的“快捷方式”具有一样的性质。

ln命令
ln 命令用于创建链接文件,格式为“ln [选项] 目标”,在使用 ln 命令时,是否添加-s 参数,将创建出性质不同的两种“快捷方式”。

参数作用
-s创建“符号链接”(如果不带-s参数,则默认创建硬链接)
-f强制创建文件或目录的链接
-i覆盖前先询问
-v显示创建链接的过程

举例:
1、硬链接(不常用)

ln 源文件 链接文件

在这里插入图片描述可以发现硬链接文件与原始文件其实是同一个文件,都指向同一inode,只是名字不同。我们每添加一个硬链接,该文件的 inode 连接数就会增加 1
注:
(1)对于硬链接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才会被删除。
(2)不论修改源文件还是链接文件,另一个文件的数据都会被改变。
2、软链接(常用)

ln -s 源文件 链接文件

注:
符号链接就是一个实际的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,双方的内容并不相同,是两个完全不同的文件。证明链接文件与源文件是否相同,可以通过查看文件的inode(索引节点编号)号,使用 ln -s 命令创建符号链接时,源文件必须存在,链接文件必须不存在。
在这里插入图片描述如上图使用软链接创建一个快捷方式python,指向python3,当你使用python时,就相当于调用了python3
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐