用Linux命令创建符号链接和硬链接

评论 0 浏览 0 2019-09-12

1.概述

在Linux机器上,我们可以创建指向现有文件的链接。Unix中的链接可以被认为是一个指针或对一个文件的引用。换句话说,它们更像是访问一个文件的快捷方式。我们可以创建任意多的链接。

在本教程中,我们将快速探讨两种类型的链接:硬链接和符号链接。我们将进一步讨论它们之间的区别。

在任何基于Unix的操作系统中,一个文件由数据块和inode组成。数据块存储实际的文件内容。另一方面,inode存储文件属性(除了文件名)和磁盘块位置。

一个硬链接只是另一个文件,它指向与原文件相同的底层inode因此,它引用的是相同的物理文件位置。

我们可以使用 ln命令来创建一个硬链接。

ls -l
-rw-rw-r-- 2 runner3 ubuntu 0 Sep 29 11:22 originalFile

ln originalFile sampleHardLink

ls -l
-rw-rw-r-- 2 runner3 ubuntu 0 Sep 29 11:22 originalFile
-rw-rw-r-- 2 runner3 ubuntu 0 Sep 29 11:22 sampleHardLink

让我们快速看看他们的映射节点号码。

ls -i
2835126 originalFile
2835126 sampleHardLink

这两个文件都指向同一个inode。有了这个,即使我们后来删除了原始文件,我们仍然能够使用创建的硬链接访问它的内容

但是,请注意我们不能为目录创建硬链接。 此外,硬链接不能跨越文件系统边界,例如网络映射磁盘之间。

一个符号或软链接是一个新的文件,它只存储原始文件的路径,而不是它的内容。如果原始文件被移动或删除,那么软链接就无法工作。

现在让我们创建一个软链接或象征性链接。

ln -s originalFile sampleSoftLink

ls -l
-rw-rw-r-- 1 runner1 ubuntu  0 Sep 29 12:16 originalFile
lrwxrwxrwx 1 runner1 ubuntu 12 Sep 29 12:16 sampleSoftLink -> originalFile

与硬链接不同,软链接或符号链接是一个文件,其节点号与原文件不同。

ls -i
2835126 originalFile
2835217 sampleSoftLink

我们被允许为一个目录创建一个软链接。此外,通过软链接,我们可以在不同的文件系统中链接文件。

4.差异

现在我们了解了什么是软链接或硬链接,让我们快速总结一下关键的区别。

  • 硬链接具有与原文件相同的节点号,因此可以认为是其副本。另一方面,软链接是一个新文件,它只存储原始文件的位置。
  • 如果原始文件被移动或删除,我们仍然可以使用其任何硬链接访问其内容。然而,该文件的所有软链接将变得无效。
  • 与硬链接不同,我们可以为目录创建软链接。软链接也可以跨越文件系统

5.总结

在这个快速教程中,我们了解了在所有基于Unix的操作系统中使用的硬链接和符号/软链接。

最后更新2022-11-29
0 个评论
标签