Miękkie (symboliczne) łącze a twarde łącze

Soft Link Vs Hard Link



Dowiązania symboliczne (nazywane również dowiązaniami miękkimi) i dowiązania twarde to zasoby umożliwiające dostęp do plików lub katalogów z dowolnej lokalizacji. W tym artykule opisano różnice między dowiązaniami symbolicznymi a dowiązaniami twardymi.

Twarde linki

Dowiązania twarde nie są plikiem zawierającym ścieżkę do oryginalnego pliku, ale kopiami lustrzanymi oryginalnego pliku, na który wskazują. Plik i jego twarde linki nie są powiązane nazwą lub ścieżką, ale przez i-węzeł, który przechowuje informacje o pliku, takie jak jego lokalizacja, data utworzenia, uprawnienia i inne atrybuty. Każdy numer i-węzła jest unikalny w systemie plików, co uniemożliwia pracę dowiązań twardych między różnymi partycjami lub systemami. Twardych linków nie można używać do łączenia katalogów.







W przeciwieństwie do miękkich linków, twarde linki zawierają informacje, z którymi się łączą, więc jeśli oryginalny plik zostanie usunięty, nadal będziesz mieć dostęp do jego danych.



We wszystkich systemach Linux zarówno dowiązania twarde, jak i symboliczne są tworzone za pomocą polecenia ja . Aby rozpocząć, najpierw utwórz plik o nazwie LinuxHintFile i katalog o nazwie LinuxHintDirectory jak pokazano na obrazku poniżej:



dotykaćLinuxHintFile
rmkdir LinuxHintDirectory
ls
źródło@LinuxWskazówka:/Dom/linuxhint#





Aby utworzyć twardy link o nazwie Link2LHFile do pliku LinuxHintFile uruchom w terminalu:

jaLinuxHintFile Link2LHFile



Po sprawdzeniu z ls widzimy twardy link, który właśnie utworzyliśmy, jeśli wpiszesz ls -i zobaczysz i-węzły plików, możesz potwierdzić, że link, który właśnie utworzyliśmy, ma ten sam numer i-węzła co oryginalny plik, wpisz:

ls -i

Jak powiedzieliśmy powyżej, nie możemy używać twardych dowiązań do katalogów ani dowiązań do innych woluminów lub systemów plików, połączymy LinuxHintDirectory z miękkim dowiązaniem.

Możesz znaleźć twarde linki w katalogu roboczym, uruchamiając:

odnaleźć -rodzajF-spinki do mankietów+1

Możesz także znaleźć pliki według i-węzłów, dla tego uruchomienia:

odnaleźć.-inum <Numer I-węzła>

Jak widać, znalazł zarówno oryginalny plik, jak i twardy link, które mają ten sam numer i-węzła.

Miękkie linki

W przeciwieństwie do dowiązań twardych, dowiązania miękkie nie są kopiami oryginalnego pliku, zawierają ścieżkę do oryginalnego pliku, z tego powodu, jeśli oryginalny plik zostanie usunięty, dowiązanie miękkie lub symboliczne wskaże, że żaden plik nie stanie się uszkodzonym dowiązaniem, lub osierocony link, co oznacza, że ​​jeśli utracisz plik źródłowy, jeśli go usuniesz lub przeniesiesz, dowiązanie symboliczne utraci dostęp do informacji, podczas gdy przy twardym linku informacja pozostanie pomimo usunięcia pliku źródłowego, ponieważ jest pełna i dokładna kopię tego pliku.

Również w przeciwieństwie do twardych dowiązań dowiązania symboliczne nie współdzielą tego samego węzła z oryginalnym plikiem, dlatego dowiązanie symboliczne może przecinać woluminy i systemy plików, podczas gdy dowiązania twarde nie mogą. Dowiązania symboliczne mogą być używane do łączenia katalogów, podczas gdy z dowiązaniami twardymi nie jest to możliwe.

W programie tworzone są również dowiązania symboliczne ja , ale aby link był symboliczny/miękki, musimy określić parametr -s , aby utworzyć dowiązanie symboliczne do katalogu LinuxHintDirectory o nazwie LHDLink run:

ja -sLinuxHintDirectory LHDLink

A potem biegnij ls-i ’ aby sprawdzić, czy został poprawnie utworzony:

Jak widzimy w tym przypadku dowiązanie symboliczne zostało utworzone, ale ma inny numer i-węzła niż oryginalny plik.

Możemy wyświetlić dowiązania symboliczne w katalogu za pomocą polecenia ls-l

Na powyższym obrazku widzimy w uprawnieniach pierwszego pliku prefiks ten w przypadku dowiązań symbolicznych koniec linii pokazuje również, do którego pliku wskazuje dowiązanie symboliczne.

Mam nadzieję, że ten artykuł okazał się przydatny do zrozumienia różnic między dowiązaniami twardymi i dowiązaniami symbolicznymi oraz sposobu ich tworzenia. Śledź LinuxHint, aby uzyskać więcej wskazówek i aktualizacji dotyczących systemu Linux.