Yanıtlar:
link=/var/opt/foo
target=$(readlink "$link")
$target
artık bağlantının hedefi, tıpkı dosya sisteminde saklandığı gibi.
Symlinks göreceli olabilir, bu yüzden normal kullanım için daha iyi olurdu:
target=$(readlink -f "$link")
Bunun readlink
BSD ve diğer sistemlerde bulunmayan GNU Coreutils tarafından kullanıldığını unutmayın .
Düzenle: readlink -f
bağlantı hedefi olduğu sürece BSD'lerde çalışır. realpath
benzer şekilde çalışan başka bir BSD'ye özgü araçtır.
-f
ve aynı şekilde readlink -f
çalışıyor (bağlantı hedefinin var olduğu varsayılarak). BSD'de, realpath
başka bir alternatif gibi görünüyor readlink -m
.
readlink()
BSD'ler 4.2BSD günlerinden beri bir sistem çağrısı yaptı. Mevcut BSD'lerinreadlink
programı FreeBSD 4.10 ile piyasaya sürüldü.stat
Komut için sabit bir bağlantı olarak (yeniden) uygulandı ( MacOS X kılavuz sayfası FreeBSD 9 kılavuz sayfası ). Bir-m
seçeneği olmadığına dikkat edin .