关于linux中使用ln为不同目录建立相同软连接的疑问?

首先如果我创建了两个不同的目录,如下:
创建的两个文件

然后为这两个目录创建相同的软连接

ln -s a c
ln -s b c

按照上面顺序创建软连接,为什么会在 a 目录下面创建一个 b 的软链接文件,且指向 b 目录?

并且使用cd命令,进入 a 目录下的链接文件 b 时,为什么会出现下面的错误?
image.png

阅读 2.5k
1 个回答

这个其实包括了几个问题

  1. 对于第2个 ln -s b c,展开来说,就就是创建一个 指向 b 的符号链接,放置到 c 路径(下),因为这里 c 指向一个目录,所以相当于 在 c 路径下,创建一个指向 b 的符号链接,符号链接的文件名还是 b,如果 a 原来是一个普遍文件,则 ln -s b c 会报错。
  2. 至于进入 c 或者 a 发现 b 的指向是无效的,则是因为这里 b 是以相对路径指向了./b 这个具体的文件,但实际上在 c 或者 a下是没有 b的。如果 这里 ln -s b c 改为 ln -s <b的全路径> c, 则会一直能访问。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题