Odpowiedzi:
Aby użyć analogii z dostarczaniem poczty, dowiązanie symboliczne jest czymś w rodzaju adresu przekierowującego ... kiedy coś próbuje otworzyć dowiązanie symboliczne, otwiera przechowywany tam „plik” (choć nie dosłownie plik) i widzi, że powinien zamiast tego spojrzeć na plik o innej nazwie, więc zamiast tego otwiera inny plik.
Twardy link przypomina raczej posiadanie dwóch adresów dla tego samego miejsca. (Oczywiście nie jest to możliwe w świecie fizycznym). Gdy coś próbuje odczytać nazwę pliku (adres), otrzymuje ten sam plik fizyczny (lokalizację).
Tak więc twardy link nie jest kopią, ponieważ plik jest przechowywany tylko raz (ale z wieloma nazwami). Ale zachowuje się bardzo podobnie do kopii, ponieważ można uzyskać dostęp do tych samych informacji z dwóch nazw plików.
/foo
i /bar
, zmieniając /foo
również zmienić /bar
, jeśli są hardlinki (bo są dwie nazwy dla tego samego pliku), ale nie, jeśli są kopie (ponieważ są to dwa całkowicie niezależne pliki).
Nie. A (drugie i wszystkie kolejne) twarde łącze do pliku jest wskaźnikiem do tych samych i-węzłów na dysku.
Utworzenie twardego łącza oznacza, że ten sam plik pojawia się w dwóch różnych miejscach. Plik jest tak naprawdę tylko odniesieniem do zestawu bloków danych na dyskach, więc twardy link dodaje kolejne odniesienie. Pliki rzadko są naprawdę usuwane; odniesienia zostały właśnie usunięte, więc nie można uzyskać dostępu do danych. Dlatego po usunięciu pliku utworzonego jako twardy link drugi oryginalny plik pozostaje i na odwrót.
Z drugiej strony dowiązanie symboliczne to kierunek dostępu do pliku o określonej nazwie. Mówi wszystkim programom: „Jeśli chcesz użyć tego pliku, jest tam”. Dlatego jeśli usuniesz cel dowiązania symbolicznego, dowiązanie symboliczne zostanie zerwane. A jeśli usuniesz link, cel nie zostanie zmieniony.
Plik w systemie * nix składa się z dwóch części. jedna część danych, a druga to i-węzeł. i-węzeł przechowuje meta (informacje istotne dla danych, takie jak lokalizacja, w której są przechowywane na HDD) informacje. Twarde łącze tworzy dokładną kopię tego i-węzła. Podczas gdy sym link tworzy i-węzeł, który wskazuje na i-węzeł rzeczywistego i-węzła. Zatem dane i-węzłów w dowiązaniu twardym są takie same jak dane docelowe, ale różne dane w dowiązaniu sym. Krótko mówiąc, linki sym i twarde linki różnią się zawartością danych i-węzłów, a nie danych pliku. Tak rozumiem różnicę między łączem sym a twardym. Początkowo miałem trudności ze zrozumieniem tego, ponieważ jest to coś bardziej twórczego i nie jestem programistą. Och, kompetentni, proszę mnie poprawić, jeśli się mylę.