Linux中的硬链接与Limux中的软链接
硬链接像原始文件的镜像副本一样。
这些链接共享相同的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