Linux软链接与硬链接

Linux软链接与硬链接教程

Linux 文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)。

硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

Linux软链接与硬链接区别详解

硬链接

说明

硬链接是新的目录条目,其引用系统中的现有文件。文件系统中的每一文件默认具有一个硬链接。为节省空间,可以不复制文件,而创建引用同一文件的新硬链接。新硬链接如果在与现有硬链接相同的目录中创建,则需要有不同的文件名,否则需要在不同的目录中。

指向同一文件的所有硬链接具有相同的权限、连接数、用户/组所有权、时间戳以及文件内容。指向同一文件内容的硬链接需要在相同的文件系统中。简单说,硬链接就是一个 inode 号对应多个文件。就是同一个文件使用了多个别名。

特性

  1. 具有相同 inode 节点号的多个文件互为硬链接文件;
  2. 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除;
  3. 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;
  4. 硬链接文件是文件的另一个入口;
  5. 可以通过给文件设置硬链接文件来防止重要文件被误删;
  6. 可以通过 ls -i 看到 Index;
  7. 硬链接文件是普通文件,可以用 rm 删除;
  8. 对于静态文件(没有进程正在调用),当硬链接数为 0 时文件就被删除。注意:如果有进程正在调用,则无法删除或者即使文件名被删除但空间不会释放。

创建命令

ln oldfile hlink

软链接

说明

又称符号链接,即 soft link 或 symbolic link,软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。

软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。

特性

  1. 软链接类似 windows 系统的快捷方式;
  2. 软链接里面存放的是源文件的路径,指向源文件;
  3. 删除源文件,软链接依然存在,但无法访问源文件内容;
  4. 软链接失效时一般是白字红底闪烁;
  5. 创建软链接命令 ln -s 源文件 软链接文件;
  6. 软链接和源文件是不同的文件,文件类型也不同,inode 号也不同;
  7. 软链接的文件类型是 “l”,可以用 rm 删除。

创建命令

ln -s oldfile slink

Linux软链接与硬链接总结

硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。