用Linux命令创建符号链接和硬链接
评论 0
浏览 0
2019-09-12
1.概述
在Linux机器上,我们可以创建指向现有文件的链接。Unix中的链接可以被认为是一个指针或对一个文件的引用。换句话说,它们更像是访问一个文件的快捷方式。我们可以创建任意多的链接。
在本教程中,我们将快速探讨两种类型的链接:硬链接和符号链接。我们将进一步讨论它们之间的区别。
2.硬链接
在任何基于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。有了这个,即使我们后来删除了原始文件,我们仍然能够使用创建的硬链接访问它的内容。
但是,请注意我们不能为目录创建硬链接。 此外,硬链接不能跨越文件系统边界,例如网络映射磁盘之间。
3.软链接
一个符号或软链接是一个新的文件,它只存储原始文件的路径,而不是它的内容。如果原始文件被移动或删除,那么软链接就无法工作。
现在让我们创建一个软链接或象征性链接。
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的操作系统中使用的硬链接和符号/软链接。
0 个评论