ln -s 1 2
ディレクトリ内のディレクトリを指すソフトリンク()を作成し、test
()を使用してソフトリンクを開き、cd 2
現在のパスを表示しましたpwd
。表示されたパスは~/test/2
、ではありません~/test/1
。
ショートカットを使用すると、物理ディレクトリに移動するWindowsなどのオペレーティングシステムではそうではありません。このソフトリンクがLinuxでどのように機能するかは少し混乱しています。これは、のようなショートカットではありませんかWindows
?なぜパスではないのですか~/test/1
?
$ mkdir test
$ cd test
$ mkdir 1
$ ln -s 1 2
$ cd 2
$ pwd
/home/dazz/test/2
ベストアンサー1
これは、現在の場所にどのように到達したかを覚えるシェルの機能です。
すでにrealpath
インストールされている場合は、次のことができます。
$ realpath
/home/dazz/test/1
Pythonがある場合はありません。
$ python -c "import os; print(os.path.realpath('.'))"
/home/dazz/test/1
またはreadlink(coreutilsから):
$ readlink -f .
/home/dazz/test/1
または/bin/pwd
(シェル組み込みではありませんpwd
):
$ /bin/pwd
/home/dazz/test/1