linux硬连接和软连接

硬连接

Linux 下的文件是通过索引节点(inode)识别文件,硬链接可以认为为一个指针指向文件索引节点,系统并不分配inode,文件链接数加一。

  • 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除;
  • 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;
  • 硬链接文件是文件的另一个入口;
  • 可以通过给文件设置硬链接文件来防止重要文件被误删;

不足:

1、不可以在不同文件系统的文件间建立链接

2、只有超级用户才可以为目录创建硬链接

软链接

没有任何文件系统的限制,任何用户可以创建指向目录的符号链接,有更大灵活性,可以跨越不同机器

  • 软链接里面存放的是源文件的路径,指向源文件;
  • 删除源文件,软链接依然存在,但无法访问源文件内容;
  • 软链接失效时一般是白字红底闪烁;
  • 创建软链接命令 ln -s 源文件 软链接文件;
  • 软链接和源文件是不同的文件,文件类型也不同,inode号也不同

缺点:

1、链接文件包含有源文件的路径信息,需要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

硬链接和软链接的区别

​ 原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。 使用限制上,不能对目录创建硬链接,不能对不同文件系统创建硬链接,不能对不存在的文件创建硬链接;可以对目录创建软连接,可以跨文件系统创建软连接,可以对不存在的文件创建软连接。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!