Symlink olmayan yolun ne olacağını öğrenin?


10

Linux'ta, eğer cd'd ve şimdi bir dizindeysem, oraya ulaşmak için sembolik bir bağlantı kullanmamış olsaydım, o dizine giden gerçek yolun ne olduğunu anlamanın bir yolu var mı?

Düşünmek:

$ 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

Veya:

$ 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'in gerçekten / home / dave / 1/2/3/4/5 olduğunu anlamanın bir yolu var mı?

Yanıtlar:


13

İle kullanmak için cd, kullanın 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

Genel sembolik bağlantılar için şunu kullanın readlink:

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

Veya ls -l( -ddizinler için ile):

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

readlink -f dosyası, bu dosyaya bağlanmayan yolu döndürür, istediğim budur. Teşekkürler!
David Mackintosh

1
hw, her zaman / bin / pwd kullanardım, çünkü pwd kabuk yerleşiminin aksine, nerede olduğunu nasıl bilemez. Açıkçası pwd -P'ye eşdeğerdir.
Peter Cordes

ls -lda nedense gizli sym bağlantıları için
çalışmıyor

2

Ya readlink -fyüklemeniz gereken (varsayılan olarak kurulu coreutils) ya da daha kolay hatırlanan bir dosya istersiniz realpath.


0

Alternatif bir yöntem kullandım,

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

Yeni sekme pwd, sembolik bağ verir. ;)


Üzgünüm, burada hangi kabuğu, pencere yöneticisini veya terminali kullanıyorsunuz?
David Mackintosh

Bence gnome-terminal hakkında konuşuyor
prestomation

Evet, Gnome Terminali'nden bahsediyordum.
Lakshman Prasad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.