硬链接(Hard Link)和 软链接(Symbolic Link,也叫符号链接)是计算机文件系统中的两种链接方式,用于在文件系统中创建文件或目录之间的关联。
0 操作和行为上的区别
0.1 硬链接(Hard Link)
- 硬链接是文件系统中一个文件的多个副本,它们都指向相同的数据块,即相同的inode(索引节点)。
- 硬链接只能在同一文件系统中创建,不能跨文件系统创建。
- 删除原始文件并不会影响硬链接的可用性,只有当所有链接都被删除后,文件的数据块才会被释放。
- 硬链接不包含文件的路径信息,它们只是不同的文件名指向相同的数据。
0.2 软链接(Symbolic Link,或称符号链接)
- 软链接是一个指向另一个文件或目录的符号,类似于一个快捷方式或别名。
- 软链接可以跨越文件系统边界,它们可以链接到其他文件系统中的文件或目录。
- 如果原始文件被删除或移动,软链接可能会失效或指向一个不存在的目标。
- 软链接包含原始文件或目录的路径信息,因此可以链接到不同位置的文件。
总结一下,硬链接是多个文件名指向同一份数据,而软链接是一个文件名指向另一个文件或目录的路径。硬链接在文件删除后仍然可以访问,而软链接则可能失效。选择使用哪种链接方式取决于你的需求和文件系统的支持。通常,软链接更灵活,但硬链接可以节省磁盘空间。
1 ln - make links between files
1.1 硬链接
//创建的硬链接,两个文件的内容相同,节点索引号相同
//修改一个文件的内容,另一个文件也会修改
//删除一个文件————硬链接数减少1
ln oldFile newFile
1.2 软连接
// 软链接相当于创建的是快捷方式
// 软链接文件与源文件的索引节点不同,文件类型不同,文件的大小也不同
ln -s oldFile newFile
Q:为何软链接文件与源文件的文件大小不同?
A:软链接文件(符号链接)包含的信息仅仅是源文件的路径,它只包含目标路径的字符串,而不是文件的实际内容。因此,软链接文件的大小取决于目标文件路径的长度,而与源文件的内容大小无关。
软链接的作用是创建一个文件系统级别的引用,让你可以通过软链接文件的路径找到目标文件或目录。当你访问软链接时,实际上是在查找并打开目标文件或目录,所以软链接的内容只是一个路径字符串,而不是文件的内容。软链接的目的是提供一种更灵活的方式来引用文件或目录,而不会占用额外的磁盘空间,因为它们只是路径的别名。