为学习pnpm了解一点基础:软链接和硬链接

简介: 硬链接(hard link)对一个文件进行修改,可能会影响到其他文件的内容,但是删除一个文件名,并不会影响其他文件名的访问。

image.png


大家好,我是 那个曾经的少年回来了。10年前我也曾经年轻过,如今已步入被淘汰的年龄,但如下幡然醒悟,所以活在当下,每天努力一点点,来看看2024年的时候自己会是什么样子吧,2024年的前端又会是什么样子,而2024年的中国乃至全球又会变成什么样子,如果你也有想法,那还不赶紧行动起来。期待是美好的,但是更重要的是要为美好而为之奋斗付诸于行动。


关于Inode详细解释我昨天整理了一点,有兴趣的可以了解一下:juejin.cn/post/713172…


1、硬链接与软链接的定义


硬链接(hard link)对一个文件进行修改,可能会影响到其他文件的内容,但是删除一个文件名,并不会影响其他文件名的访问。


软链接又可以说成是符号连接,它有点类似于Windows的快捷方式,实际上它是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。


以下操作:我都是在linux系统上进行操作的。


2、创建一个文件,并写入字符串


touch aehyok
echo "hello world"> aehyok
cat aehyok


image.png


通过截图可以发现,文件生成成功,内容字符串也写入了。


3、创建硬链接


创建一个指向aehyok文件的 硬链接hard-aehyok


ln aehyok aehyok-hard
cat aehyok-hard
ls -li


image.png


两个文件除了名字不一样,其他都是一样的


4、修改文件内容


echo "hard hello world" >>aehyok-hard
cat aehyok-hard
cat aehyok


image.png


修改硬链接文件中的内容之后,源文件中的内容也发生了变更


echo "aehyok hello world">> aehyok
cat aehyok
cat aehyok-hard


image.png


修改源文件之后,硬链接中的文件内容也同时发生了变更


原文件与硬链接文件互为硬链接


可以通过 stat xxx 命令来查看文件的inode信息


image.png


可以发现Inode为2502924,他的硬连接数为2。你也可以发现Inode信息中不包含文件名。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。


5、创建软链接


ln -s aehyok aehyok-soft  
cat aehyok-soft
ls -li


image.png


可以发现软链接文件属性跟源文件和硬链接属性有区别的。而且有一个明显的指向,指向了原文件aehyok。


6、删除原文件


image.png


删除原文件之后,硬链接文件可以正常访问,但是访问软链接文件报错了。这里与我们开头总结的定义正好吻合了。


7、写入数据到软链接


echo "delete hello world" >> aehyok-soft
cat aehyok-soft
cat aehyok
ls -li


image.png


可以发现,写入软链接数据之后,原文件竟然出现了,但是里面的数据块inode是新的了,因为软链接文件中保存的是有引用原文件路径的,但是原文件已经不存在了。现在相当于根据路径重新生成并写入原文件。


8、总结


image.png


  • 硬链接不会创建额外 inode,它和源文件共用同一个 inode


  • 软链接会创建新的文件和 inode,但是软链接文件inode指向源文件的 inode


  • 建立硬链接时,源必须存在且只能是文件


  • 建立软链接时,源可以不存在而且可以是目录


  • 删除源文件不会影响硬链接文件的访问(因为inode还在)


  • 删除源文件会影响软链接文件的访问(因为指向的inode已经不存在了)
目录
相关文章
|
1月前
|
索引 Linux Windows
ln -s 软链接和硬链接区别和总结
ln -s 软链接和硬链接区别和总结
ln -s 软链接和硬链接区别和总结
|
24天前
|
Linux
15. 【Linux教程】文件和目录重命名
15. 【Linux教程】文件和目录重命名
14 0
|
27天前
|
存储 Windows
windows系统的符号链接和硬链接的区别
【5月更文挑战第27天】windows系统的符号链接和硬链接的区别
22 0
|
1月前
|
存储 算法 Linux
Linux中的硬链接与软链接:原理、应用与最佳实践
Linux中的硬链接与软链接:原理、应用与最佳实践
144 0
|
1月前
|
Linux Windows
linux(十七)文件和目录相关命令-软连接、硬链接 ln命令
linux(十七)文件和目录相关命令-软连接、硬链接 ln命令
49 0
|
9月前
|
Windows
软连接和硬连接的区别详解?
软连接和硬连接的区别详解?
|
10月前
|
Linux 索引 Windows
三分钟了解学会软链接和硬链接
符号链接又叫软链接,和原文件不是一个文件 例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。
87 0
|
算法 Linux Windows
硬链接和软链接有什么区别
硬链接和软链接有什么区别
|
Linux 开发者 Windows
软链接和硬链接 | 学习笔记
快速学习软链接和硬链接。
153 0