非シンボリックパスが何であるかを理解しますか?


10

Linuxでcdを実行してディレクトリに移動した場合、そこに到達するためにシンボリックリンクを使用していなかった場合に、そのディレクトリへの実際のパスを確認する方法はありますか?

検討してください:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5

または:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4 4
$ cd 4/5
$ pwd 
/home/dave/tmp/4/5

/ home / dave / tmp / 5が本当に/ home / dave / 1/2/3/4/5であることを理解する方法はありますか?

回答:


13

で使用するにはcd、次を使用しますpwd -P

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5
$ pwd -P
/home/dave/tmp/1/2/3/4/5

一般的なシンボリックリンクの場合は、次を使用しますreadlink

$ cd ..
$ readlink 5
1/2/3/4/5

またはls -l-dディレクトリの場合):

$ ls -ld 5
lrwxr-xr-x  1 dave  staff  9 Jul 24 10:10 5 -> 1/2/3/4/5

readlink -f fileは、そのファイルへのシンボリックリンクされていないパスを返します。ありがとう!
デビッドマッキントッシュ

1
ええと、私は常に/ bin / pwdを使用していました。これは、組み込みのpwdシェルとは異なり、どこにあるのかがわからないためです。明らかにpwd -Pと同等です。
Peter Cordes、

ls -ldaが何らかの理由で非表示のsymリンクに対して機能しない
Casebash

2

readlink -f(coreutilsで、デフォルトでインストールされます)またはより簡単に覚えられるのいずれかrealpathをインストールする必要があります。


0

私が使用した代替方法、

cd to the symlink
Ctrl+Shift+T #To open a new tab
pwd

新しいタブpwdは、シンボリックリンクを提供します。;)


申し訳ありませんが、ここで使用しているシェル、ウィンドウマネージャー、またはターミナルは何ですか。
デビッドマッキントッシュ

私は彼がgnome-terminalについて話していると思います
prestomation 09年

はい、私はGnomeターミナルについて話していました。
ラクシュマンプラサード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.