Jakie są zalety dowiązań symbolicznych nad dowiązaniami twardymi i odwrotnie?

10

Rozumiem różnice między dowiązaniami symbolicznymi a twardymi, ale nigdy nie rozumiałem, dlaczego wybrać jedno lub drugie.

Javier
źródło
2
Zobacz odpowiedzi na pytanie „Jaka jest różnica między łączem symbolicznym a łączem twardym?” na StackOverflow: stackoverflow.com/questions/185899/...
pelms

Odpowiedzi:

10

Zostało to szczegółowo omówione na ServerFault.

Łącze twarde tradycyjnie dzieli te same struktury systemu plików (i-węzeł w unixspeak), podczas gdy łącze miękkie to przekierowanie nazwy ścieżki.

  • Dowiązania twarde muszą znajdować się w tym samym systemie plików, dowiązania miękkie mogą przechodzić między systemami plików.
  • Pliki dowiązane pozostają połączone, nawet jeśli przenosisz któryś z nich (chyba że przenosisz jeden do drugiego systemu plików uruchamiającego mechanizm kopiowania i usuwania). Pliki z linkami miękkimi ulegają awarii, jeśli przenosisz cel (oryginał), a czasem po przeniesieniu linku (Czy użyłeś ścieżki bezwzględnej czy względnej?
  • Pliki dowiązane są równe, podczas gdy oryginał jest wyjątkowy w przypadku dowiązań miękkich, a usunięcie oryginału usuwa dane. Dane nie znikają, dopóki nie zostaną usunięte wszystkie dowiązania twarde.
  • Softlinks może wskazywać na dowolny cel, ale większość systemów operacyjnych / plików nie zezwala na katalogowanie dowiązania twardego, aby zapobiec cyklom na grafie systemu plików (z wyjątkiem pozycji .i ..w katalogach unix, które są dowiązaniami twardymi).
  • Softlink może wymagać specjalnego wsparcia ze strony narzędzi do chodzenia po systemie plików. Czytaj na readlink (2) .

(Niektóre szczegóły przypomniały mi mat1t . Dzięki.)

dmckee --- były kot moderator
źródło
10

Ronald napisał, że twardy link może mieć różne uprawnienia w dwóch miejscach. To nie jest w porządku. Oba miejsca mają ten sam i-węzeł. Uprawnienia są powiązane z i-węzłem, a nie z nazwą pliku. Tak więc hardlinks w dwóch miejscach mają dokładnie takie same uprawnienia, czasy dostępu, ...

hurikhan77
źródło
1

dowiązania symboliczne mogą przechodzić przez systemy plików, twarde łącza nie mogą. Jeśli usuniesz oryginalny plik, twardy link nadal go utrzyma, a dowiązanie symboliczne nie.

Bobmcn
źródło
0

Twardy link zasadniczo oznacza, że ​​plik znajduje się w dwóch miejscach, może mieć różne uprawnienia, możesz go usunąć na miejscu, ale nie w drugim.

Miękki link jest tylko wskaźnikiem do prawdziwej rzeczy.

Dowiązanie twarde to dwie (lub więcej) pozycje katalogu wskazujące na ten sam plik. Miękki link to pozycja katalogu wskazująca na inną pozycję katalogu.

Ronald Pottol
źródło