Linux 符号连接

符号连接

符号连接也叫软连接

  • 用特殊文件“符号连接文件”来实现
  • 文件中仅包括了一个路径名
  • 命令ln -s和ls -l
1
2
3
ln -s users_on sym.link
ls -l sym.link
lrwxrwxrwx 1 guest other 8 Jul 26 16:57 sym.link->users_on
  • 类型为l,大小为8字节,文件中只存放users_on字符串
  • 文件的最后一次写时间以后不再变化
  • 一旦建立了符号连接,删除操作删除的是符号连接文件,其它所有操作都将访问符号连接所引用的文件

符号连接的实现

符号连接中的相对路径

若符号连接包含绝对路径名,引用绝对路径名
若符号连接包含相对路径名,是相对于符号链接文件的位置(不是相对于调用进程的当前工作目录)

设当前目录(bash进程的当前目录)为d

1
ln -s  d1/dlb d1/dx

在d1下新建文件dx
访问d1/dx实际访问d1/d1/d1b

硬连接与符号连接的比较

硬连接

  • 在数据结构层次上实现
  • 只适用于文件,不适用于目录
  • 不同文件系统之间也不行
  • 硬连接能够完成的功能软连接可以做到

符号连接

  • 在算法软件上实现
  • 硬连接能够完成的功能软连接都可以做到
  • 适用于目录,也适用于不同的文件系统
  • 同硬连接相比要占用操作系统内核的一部分开销
  • 循环式符号连接,以及处理方法(解析路径时设置符号链接解析计数器)