Linux shell 硬链接问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 10:44:55
硬链接文件、或被硬链接的文件修改后,磁盘空间怎么变化?
我只是弄了个小文件做试验,结果发现改变其中一个后,占用磁盘空间就跟两个文件一样的了,也就是和用cp命令后修改其中一个一样的了。
难道如果修改其中一个的话,真的和cp命令一样?

硬链接文件和原文件指向同样的数据,两者就像克隆一样,inode号也相同,当删除原文件时,硬链接文件仍然存在有效。但硬链接文件不同于文件的复制。应该说硬链接文件的产生只是原文件所在目录文件的内容发生改变,原文件的数据并没有得到复制,而复制文件,磁盘上有两份数据。简单说,硬链接就是一个类似于别名的概念。当原来的名字没有了,别名照样可以使用。

另外硬链接有2个限制 从这里也能看出许多特点

1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接。

这么说你明白了没

还有一点 删除原来的文件后 硬链接为什么可用, 回到开始, 原始文件和硬链接相当于同一个文件的2个文件名, 如果一个文件存在硬链接 删除以后只是删除了2个文件名中的一个, 而硬链接仍然指向这个文件的inode ,也就指向了这个文件, 所以 从根本上和cp是不同的, 无论创建多少硬链接 文件数目永远只有一个

你可以试试看 一个目录下对一个文件创建3次硬链接 比较du输出

硬链接就是两个相同的文件,改变一个就要变另一个

而软链接就像win中的快捷方式