Stworzyłem wiele dowiązań symbolicznych na różnych ścieżkach dla konkretnego pliku lub katalogu. Chcę całą listę utworzonych ścieżek dowiązań symbolicznych (lokalizacji).
Przykład:
Stworzyłem dowiązania symboliczne do ~/Pictures
katalogu w wielu katalogach. Jak wyświetlić wszystkie dowiązania symboliczne do tego ~/Pictures
katalogu?
Czy to jest możliwe? Jeśli tak, to jak?
command-line
symbolic-link
Avinash Raj
źródło
źródło
Odpowiedzi:
Oto przykład:
lub może lepiej:
pozbyć się niektórych błędów, takich jak
Permission denied
,Too many levels of symbolic links
lubFile system loop detected
którefind
je wyrzucają, gdy nie mają odpowiednich uprawnień lub innych sytuacji.-L
- Śledź linki symboliczne.-xtype l
- Plik jest dowiązaniem symbolicznym-samefile name
- Plik odnosi się do tego samego i-węzła, coname
. Gdy-L
jest włączony, może to obejmować dowiązania symboliczne.Uwagi:
-xtype l
, a nie cyfry 1.-xtype
jest-type
.źródło
Bardzo prosta, użyj opcji
-lname
:Od
man find
:Uwaga : pamiętaj, że dowiązania symboliczne mogą znajdować się w dowolnym miejscu, w tym w systemie zdalnym (jeśli udostępniasz pliki), więc możesz nie być w stanie zlokalizować ich wszystkich.
źródło
../dir
to znaczy nie znajdzie absolutu/path/to/original/dir
, możesz zamiast tego użyć wzorca i wyeliminować fałszywe alarmy-lname \*dir
Spróbuj tego :
find . -follow -inum 277566
(znajdź katalogi o tym samym numerze i- węzła )Wyświetli wszystkie ścieżki dowiązań symbolicznych.
źródło
Najbardziej podoba mi się ten jednowarstwowy:
find . -maxdepth 1 -type l -exec readlink -f '{}' \;
referencje:
https://unix.stackexchange.com/questions/22128/how-to-get-full-path-of-original-file-of-a-soft-symbolic-link
https://unix.stackexchange.com/questions/21984/list-symlinks-in-current-directory
źródło