UNIX では、ターゲットの親ディレクトリを参照します。Windows でシンボリックリンクとジャンクションを試しているときに、はターゲットの親ディレクトリではなく、シンボリックリンク自体の親ディレクトリを参照しているsymlink/..
ことがわかりました。symlink/..
それで:
A
|--Link_To_C [ symlink to B/C ]
|--B
|--C
Unixの場合:A/Link_To_C/..
は に解決されますA/B
。Windows
の場合:A/Link_To_C/..
は に解決されます。A
最初の質問:いつもそうなのでしょうか?
もしそうなら、例えば、Windowsの任意の(ローカル)パスを正規化できますか?os.path.normpathPython では、シンボリックリンクの問題は発生しませんか? ドキュメントには次のように書かれています:
冗長な区切り文字と上位レベルの参照を縮小してパス名を正規化し、A//B、A/B/、A/./B、A/foo/../B をすべて A/B にします。この文字列操作により、シンボリック リンクを含むパスの意味が変わる場合があります。
(読む価値がありますhttps://stackoverflow.com/questions/34865153/os-path-normpath-and-symbolic-links)
これは Windows には適用されないと言ってもよいでしょうか?