免责声明:我不能百分之百确定这一点,现在也没有访问*nix系统的权限来检查。你可能需要检查一下,或者等到评论者告诉我我是对还是错;-)
话虽如此,这是我的答案:
在给定的例子中A/foo/../B
-> A/B
。如果没有符号链接,一切都很好。
使用相同的例子,假设:
所以:
A/foo/../B
意味着“目录B,在A/foo的父目录中”。A/foo/../B
实际上指的是/X/B
。在这种情况下,将A/foo/../B
规范化为/A/B
是不正确的,它应该规范化为/X/B
。
cd A/foo/../B
命令会将当前工作目录设为/A/B
(这是已经记录的shell行为);然而,Python 的os.chdir('A/foo/../B')
会像你预料的那样改变当前工作目录为/X/B
。 - r.v