linux软链接与硬链接
换言之,由于硬链接实际上是指向原文件 inode 的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。软链接(也称为符号链接[symbolic link]):仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与 Windows 系统中的“快捷方式”具有一样的性质。在 Windows 系统中,快捷方式就是指
在 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
更多推荐
所有评论(0)