Dowiązania w Uniksie są zasadniczo wskaźnikami, które kojarzą się z plikami i katalogami. Główna różnica między twardym łączem a miękkim łączem jest taka, że twarde łącze jest bezpośrednim odniesieniem do pliku, podczas gdy miękkie łącze jest odniesieniem przez nazwę, co oznacza, że wskazuje na plik przez nazwę pliku.
Twarde łącze łączy pliki i katalogi w tym samym systemie plików, ale miękkie łącze może przekraczać granice systemu plików.
Przed zrozumieniem linków powinniśmy najpierw zrozumieć inode, inode jest strukturą danych składającą się z metadanych o pliku, takich jak data utworzenia pliku, uprawnienia do pliku, właściciel pliku i więcej.
Zawartość: Hard link Vs Soft link
- Comparison Chart
- Definition
- Key Differences
- Conclusion
Comparison Chart
Podstawa porównania | Łącze twarde | Łącze miękkie |
---|---|---|
Podstawa | Do pliku można uzyskać dostęp za pomocą wielu różnych nazw zwanych łączami twardymi. | Plik może być dostępny poprzez różne odniesienia wskazujące na ten plik jest znany jako miękki link. |
Weryfikacja linku, gdy oryginalny plik jest usuwany | Wciąż ważny i plik może być dostępny. | Invalid |
Komenda użyta do utworzenia | ln | ln -.s |
numer węzła | Ten sam | Różny |
Może być połączony | z własną partycją. | Do każdego innego systemu plików, nawet sieciowego. |
Zużycie pamięci | Mniej | Więcej |
Ścieżka relacyjna | Nie dotyczy | Dozwolone |
Definicja twardego łącza
Twarde łącza bezpośrednio łączą dwa pliki w tym samym systemie plików i do identyfikacji używa numeru inode pliku. Hard links nie mogą być zaimplementowane na katalogach (ponieważ wskazują one na inode). Kiedy komenda „ln” jest użyta do wygenerowania twardego dowiązania, tworzy ona kolejny plik w linii poleceń, który może być użyty do odwołania się do oryginalnego pliku. Zarówno oryginalny jak i wygenerowany plik mają ten sam inode i zawartość; stąd będą miały te same uprawnienia i tego samego właściciela.
Usunięcie oryginalnego pliku nie ma wpływu na plik z twardym łączem, a plik z twardym łączem pozostanie. Inode posiada licznik, aby obliczyć liczbę twardych linków do siebie. Kiedy licznik wskazuje wartość 0, wtedy inode jest opróżniany. Kiedykolwiek dokonasz jakichkolwiek zmian w twardym łączu, będzie ono imitować w oryginalnym pliku.
Definicja miękkiego łącza
Miękkie łącza są zazwyczaj alternatywną ścieżką (lub aliasem) dla oryginalnego pliku; są one również określane jako dowiązania symboliczne. Zawiera nazwę „pliku docelowego” łącza, flagę, która określa, że jest to miękki link. Kiedy plik jest dostępny, miękki link przekierowuje go do pliku docelowego poprzez ścieżkę zapisaną w temacie miękkiego linku.
Są one bardzo przydatne w przypadku systemu operacyjnego Windows, gdzie miękki link zachowuje się jak skróty. Tworzenie i usuwanie miękkich linków nie ma wpływu na oryginalny plik. Jeśli plik docelowy zostanie usunięty, miękki link zawiesza się, co oznacza, że wskazuje donikąd i generuje komunikat o błędzie, gdy plik docelowy jest dostępny. Soft linki nie używają numeru inode, w przeciwieństwie do hard linków. Absolutna lub względna ścieżka może być częścią symbolicznych linków.
Kluczowe różnice między twardym linkiem a miękkim linkiem
- Twardy link jest dodatkową nazwą oryginalnego pliku, który odnosi się do węzła, aby uzyskać dostęp do pliku docelowego. W przeciwieństwie do tego, miękki link jest różny od oryginalnego pliku i jest aliasem do oryginalnego pliku ale nie używa inode.
- Gdy oryginalny plik zostaje usunięty miękki link staje się nieważny podczas gdy, twardy link jest ważny nawet jeśli plik docelowy jest usunięty.
- W Linuksie, polecenie używane do tworzenia twardego linku to „ln”. Przeciwnie, polecenie używane do miękkiego linku to „ln -s”.
- Twardy link ma ten sam numer inode w przeciwieństwie do miękkiego linku, gdzie plik docelowy i jego miękki link mają różne numery inode.
- Twarde linki są ograniczone do własnych partycji, ale miękkie linki mogą obejmować różne systemy plików.
- Wydajność twardego linku jest lepsza niż miękkiego linku w niektórych przypadkach.
- Ścieżka względna i ścieżka bezwzględna są dozwolone w miękkich linkach. Wręcz przeciwnie, ścieżka względna nie jest dozwolona w twardym łączu.
Wniosek
Twarde łącze nie wymaga dodatkowego miejsca i rozwiązuje się szybciej, ale zmiany zastosowane do twardego łącza odbijają się w oryginalnym pliku. Z drugiej strony, miękki link wymaga dodatkowej przestrzeni, ale jakakolwiek zmiana w miękkim linku nie wpływa na oryginalny plik. Miękkie linki są dozwolone do katalogów w przeciwieństwie do twardego linku.