Należy tutaj uważać: gdy ls lub stat nie wyświetlają żadnej ścieżki bezwzględnej - link nie ma ścieżki bezwzględnej! To jest esp. ważne, gdy urządzenie jest zamontowane np. w innym kontekście (np. jeśli masz coś na płycie CD lub pendrive albo próbujesz odzyskać uszkodzony dysk twardy). Wszystkie wymienione rozwiązania (realpath, readlink,…) pokazują tylko ścieżkę bezwzględną w zamontowanym kontekście.
flolo
Odpowiedzi:
225
realpathnie jest dostępny we wszystkich wersjach Linuksa, ale readlinkpowinien.
readlink -f symlinkName
Powyższe powinno załatwić sprawę.
Alternatywnie, jeśli nie masz zainstalowanego żadnego z powyższych, możesz wykonać następujące czynności, jeśli masz zainstalowany Python 2.6 (lub nowszy)
man realpathpokazuje na dole, że jest częścią „GNU coreutils”, co, jestem prawie pewien, zawsze pojawia się na Ubuntu, więc nawet jeśli @IanStapletonCordasco mówi „ realpathnie jest dostępne we wszystkich wersjach Linuksa”, powinno być przynajmniej dostępne na wszystkich Uważam, że wersje Ubuntu i pochodnych Ubuntu.
Gabriel Staples
10
smaki unix -> ll symLinkName
OSX -> readlink symLinkName
Różnica polega na tym, że pierwszy sposób wyświetla ścieżkę dowiązania symbolicznego w migający sposób, a drugi sposób po prostu odbija go na konsoli.
może to zrobić bez readlink; po prostu użyj ls -l. To również w ogóle nie działa, próbuje to zrobić na wszystkim w katalogu (bez dowiązań) i jeśli twój ls jest skonfigurowany do używania kolorów, awk całkowicie się zepsuje. po prostu użyjfind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'
Odpowiedzi:
realpath
nie jest dostępny we wszystkich wersjach Linuksa, alereadlink
powinien.Powyższe powinno załatwić sprawę.
Alternatywnie, jeśli nie masz zainstalowanego żadnego z powyższych, możesz wykonać następujące czynności, jeśli masz zainstalowany Python 2.6 (lub nowszy)
źródło
-f
flagę, a to zadziała. tj.readlink symlinkName
realpath <path to the symlink file>
powinien załatwić sprawę.źródło
man realpath
pokazuje na dole, że jest częścią „GNU coreutils”, co, jestem prawie pewien, zawsze pojawia się na Ubuntu, więc nawet jeśli @IanStapletonCordasco mówi „realpath
nie jest dostępne we wszystkich wersjach Linuksa”, powinno być przynajmniej dostępne na wszystkich Uważam, że wersje Ubuntu i pochodnych Ubuntu.smaki unix ->
ll symLinkName
OSX ->
readlink symLinkName
Różnica polega na tym, że pierwszy sposób wyświetla ścieżkę dowiązania symbolicznego w migający sposób, a drugi sposób po prostu odbija go na konsoli.
źródło
Innym sposobem na wyświetlenie informacji jest
stat
polecenie, które pokaże więcej informacji. Poleceniestat ~/.ssh
na wyświetlaczu mojego komputeraMam nadzieję, że to może komuś pomóc.
źródło
Możesz użyć
awk
zsystem
wywołaniem,readlink
aby uzyskać odpowiednikls
wyniku z pełnymi ścieżkami dowiązań symbolicznych. Na przykład:Wyświetli np
źródło
ls -l
. To również w ogóle nie działa, próbuje to zrobić na wszystkim w katalogu (bez dowiązań) i jeśli twój ls jest skonfigurowany do używania kolorów, awk całkowicie się zepsuje. po prostu użyjfind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'