Linux中的硬链接与Limux中的软链接

时间:2020-03-05 15:26:31  来源:igfitidea点击:

硬链接像原始文件的镜像副本一样。
这些链接共享相同的inode。
对原始或者硬链接文件所做的更改将反映另一个。
当我们删除硬链接时,其他文件不会发生任何内容。
硬链接不能跨文件系统。

软链接是原始文件的实际链接,也知道符号链接或者符号链接。
这些链接将具有不同的Inode值。
软链接指向原始文件,因此如果删除原始文件,则软链接失败。
如果删除软链接,则不会发生任何内容。
原因是,实际文件或者目录的inode与"软链接"创建的文件的inode不同。
软链接可以跨文件系统。

什么是硬链接

1.硬链接具有相同的inode号。
2. ls -l命令显示显示链接数量的链接列的所有链接。
3.链接具有实际文件内容4.删除任何链接,只需减少链接计数,而不会影响其他链接。
5.我们无法为目录创建硬链接。
6.即使删除原始文件,链接仍将显示文件的内容。

什么是软链接

1.软链接具有不同的inode号。
2. LS -L命令显示具有第二列值1的所有链接,链接指向原始文件。
3.软链接包含原始文件的路径而不是内容。
4.删除软链接不会影响任何内容,但在删除原始文件时,链接将成为指向不存在文件的"悬挂"链接。
5.软链接可以链接到目录。

示例 - 硬链接

允许首先创建"测试"目录,然后在我们创建一个新文件"sample1"。

$mkdir Test
$cd Test
$touch sample1

现在,创建一个硬链接到示例1.
命名硬链接示例2.

$ln sample1 sample2

使用ls命令的i参数显示两个文件的inode。

$ls -il sample1 sample2

这就是你将作为输出的结果

1482256 -rw-r--r-- 2 bruno bruno 21 Jan 5 15:55 sample1
1482256 -rw-r--r-- 2 bruno bruno 21 Jan 5 15:55 sample2

从输出中,我们可以注意到Sample1和Sample2都具有相同的inode号码(1482256)。
此外,这两个文件都具有相同的文件权限和相同的大小。

现在删除原始示例1

$rm sample1

删除硬链接后立即查看"链接"示例2的内容。

$cat sample2

我们仍然可以看到文件的内容。

示例 - 软链接(符号链接)

让我们使用LN命令为文件'Sample2'创建一个软链接。

$ln -s sample2 sample3

使用LS命令的"i"参数"显示inode。

$ls -il sample2 sample3

这就是你会得到的:

1482256 -rw-r--r-- 1 bruno bruno 21 Jan 5 15:55 FileB
1482226 lrwxrwxrwx 1 bruno bruno 5 Jan 5 16:22 FileC -> FileB

从输出中,我们可以注意到inode是不同的,符号链接在RWXRWXRWX之前具有"L"。
链接和原始文件的权限是不同的,因为它只是一个符号链接。

现在列出内容:

$cat sample2
$cat sample3

现在删除原始文件

$rm sample2

然后检查测试目录:

$ls

它仍将显示符号链接示例
但如果我们尝试列出内容,它会告诉我们没有这样的文件或者目录。

$cat sample3