给定两个绝对路径,如何找到相对路径?

刚果

给定两个绝对路径,例如

  • /a/path/to/a
  • /a/path/to/somewhere/else

如何获得一条相对的路径../a

从某种意义上说,与之相反realpath

托马斯·迪基

我在这里回答了类似的问题:在Windows下解析相对路径而不引用当前目录

没有为此的标准功能。为此,vi-like-emacs中有一个功能。快速检查一下,apropos relative我发现了其他一些可能实现此功能的程序:例如revpath)。

可以作为字符串操作来完成(无需计算工作目录):

  • 首先找到最长的公共前缀,以路径分隔符结尾。
  • 如果没有通用前缀,就完成了
  • 从当前字符串和目标字符串中删除通用前缀(...的副本)
  • 将当前字符串中的每个目录名称替换为“ ..”
  • 在目标字符串前面添加(带有路径分隔符)
  • 返回那个组合的字符串

第二步中的“完成”假定您要使用相对路径来缩短结果。另一方面,无论长度如何,您都可能要使用相对路径名。在这种情况下,只需跳过该步骤(结果将更长,但相对)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章