Każdy, kto był przyzwyczajony do systemu Windows, może sobie wyobrazić, jakie są dowiązania symboliczne i jak są używane. Z drugiej strony koncepcja twardego łącza jest obca dla systemu Windows (czy mam rację?).
Chciałbym wiedzieć, jakie są typowe zastosowania twardych linków w Linuksie. Widziałem już różne posty opisujące różnicę w ich działaniu. Pytam o to, jakie są typowe sytuacje, w których lepiej byłoby użyć twardego łącza zamiast dowiązań symbolicznych?
symbolic-link
hard-link
Do zrobienia
źródło
źródło
Odpowiedzi:
Używam twardego linku, w którym potrzebuję jednego pliku w dwóch lub więcej miejscach, przewiduję, że pewnego dnia będę chciał usunąć jedną z lokalizacji i mogę zapomnieć, że mam link do pliku. To uniemożliwia mi skończenie z dowiązaniem symbolicznym do pliku, który już nie istnieje.
Wyjaśnienie:
Nazwa pliku jest w rzeczywistości twardym linkiem do pliku. Zatem każdy plik ma co najmniej jedno stałe łącze, które zwykle nazywamy „nazwą” pliku. Kiedy usuwasz plik, w rzeczywistości usuwasz jego twardy link (stąd nazwa „usuń”, tzn.
rm
Zamiast „usuń”). Kiedy plik ma ostatni twardy link usunięty, system również go usuwa.źródło
Twarde linki pozwalają ...
pojedynczy plik wykonywalny mający więcej niż jedną nazwę.
Przykład:
ls -l /bin | grep -v ' 1 ' | sort
wyświetli te/bin
dla ciebie. Wynik ...Zamiast 3 plików bunzip2 bzcat i bzip2 używają tego samego pliku, a wewnątrz pliku rozróżnia się, co robić. Zapisuje kod, a mniej kodu oznacza mniej możliwych błędów i łatwiejszą konserwację.
pojedynczy plik, do którego można uzyskać dostęp za pomocą kilku ścieżek.
Weźmy na przykład menedżera pakietów, który tworzy katalog / usr / share / doc / $ nazwa_pakietu dla każdego zainstalowanego pakietu, a wewnątrz tego katalogu plik o nazwie LICENCJA z informacjami o licencji pakietu. Wiele pakietów w typowym systemie Linux jest na licencji GPL, więc zamiast 200 kopii GPL w systemie plików może istnieć tylko jedna kopia i 199 linków. ptman @ Serverfault
Powód, dla którego twarde linki działają tutaj (a miękkie) nie: usunięcie tylko jednego twardego łącza nie powoduje usunięcia samego pliku.
źródło
mv
) to copy (cp
) + remove (rm
).” Jest to prawdą tylko wtedy, gdy źródło i miejsce docelowe znajdują się na różnych wierzchowcach. W przeciwnym raziemv
przesuwa tylko nazwę, a nie plik.mv
zmienia tylko nazwę; i-węzeł pozostaje taki sam.