Jak tworzyć dowiązania symboliczne (dowiązania symboliczne) w systemie Linux


Linuksa nie ma skrótów, ale ma łącza symboliczne – lub dowiązania symboliczne, jak się je zwykle nazywa. Ale czym właściwie są dowiązania symboliczne? A jak go stworzyć? Przekonajmy się.

Będziemy wypróbowywać polecenia na instalację Ubuntu, chociaż składnia działa tak samo na wszystkie dystrybucje Linuksa. Co ciekawe, dowiązania symboliczne można również tworzyć na komputerze Mac.

Co to są łącza symboliczne?

Jeśli chcesz mieć dostęp do pliku z wielu lokalizacji, zwykłe skopiowanie go nie jest dobrym rozwiązaniem. Marnujesz miejsce na dysku, nie wspominając o tym, że utrudniasz śledzenie zmian ze względu na dużą liczbę plików.

W systemie operacyjnym opartym na graficznym interfejsie użytkownika można temu zaradzić, tworząc skróty. W przypadku systemu operacyjnego opartego na CUI (takiego jak dowolną dystrybucję Linuksa ) odpowiedzią jest dowiązanie symboliczne. Nawet Microsoft Windows może wykorzystywać dowiązania symboliczne w niektóre sytuacje.

Dowiązanie symboliczne lub dowiązanie symboliczne to po prostu plik wskazujący inny plik lub katalog – nawet w zupełnie innym systemie plików lub partycji. Otwarcie dowiązania symbolicznego daje dostęp do tego samego oryginalnego pliku, a wszelkie zmiany są również odzwierciedlone w pliku głównym.

To dotyczy także uprawnień – użycie chmod do zmiany uprawnień do pliku dowiązania symbolicznego w rzeczywistości spowoduje modyfikację uprawnień pliku docelowego.

Typy dowiązań symbolicznych

Łącza symboliczne nazywane są także łączami miękkimi. Jak sama nazwa może sugerować, nie jest to jedyny typ systemu łączenia plików w systemie Linux. W niektórych scenariuszach dowiązania twarde mogą być alternatywą dla dowiązań symbolicznych, choć wiążą się z wieloma ograniczeniami.

Na początek twarde linkito po prostu nazwy plików wskazujące na to samo i-węzeł. Chociaż czyni to je bardzo wydajnymi pod względem przechowywania i szybkości dostępu, ogranicza je również do plików w tym samym systemie plików lub partycji. Ze względu na dziwactwo how folder access works in Linuksa nie można również używać twardych linków do katalogów.

Z drugiej strony

Linki miękkie lub linki symbolicznebardziej przypominają skróty na pulpicie. Każde miękkie łącze to w zasadzie mały plik wskazujący oryginalne dane, bez bezpośredniego połączenia z nimi. Oznacza to, że miękkie łącza mogą z łatwością wskazywać pliki i katalogi na innych partycjach i systemach plików, bez żadnych ograniczeń.

Łącza twarde a linki miękkie – jakiego typu użyć?.

Dowiązania miękkie to najbardziej wszechstronna forma łączy, ponieważ można ich używać bez żadnych ograniczeń zarówno w plikach, jak i katalogach w wielu systemach plików. Ale dlaczego w takim razie mamy w ogóle twarde linki? Czy zapewniają one jakąkolwiek przewagę nad dowiązaniami symbolicznymi?

Na papierze twarde linki są bardziej wydajne. Ponieważ używają tych samych i-węzłów, nie zajmują dodatkowego miejsca na dysku i można uzyskać do nich dostęp znacznie szybciej niż miękkie łącza. Dlatego wielu administratorów systemów będzie zalecać używanie twardych linków, kiedy tylko będzie to możliwe.

Biorąc to pod uwagę, wady używania dowiązań symbolicznych są minimalne. Szczególnie nowoczesne komputery nie przejmują się kilkoma kilobajtami dodatkowej pamięci i jeśli nie wypełniasz systemu milionami miękkich łączy, dodatkowy rozmiar pliku rzadko ma znaczenie.

Tworzenie dowiązań symbolicznych

Dowiązania symboliczne – a raczej łącza do plików w ogóle – tworzone są za pomocą polecenia ln. Domyślnie polecenie tworzy twarde łącza. Aby utworzyć dowiązanie symboliczne, musisz dodać flagę -s do polecenia ln.

Składnia jest dość prosta. Polecenie ln przyjmuje dwa parametry – ścieżkę pliku (lub folderu), do którego ma zostać utworzone łącze, oraz ścieżkę pliku łącza, który ma zostać utworzony.

W ten sposób:

ln -s nazwy_użytkowników.txt nazwy

Spowoduje to utworzenie dowiązania symbolicznego zwanego nazwami połączonego z plikiem tekstowym nazwy_użytkownika. Aby sprawdzić, czy dowiązanie symboliczne rzeczywiście zostało utworzone, po prostu użyj polecenia ls.

Jak widać, Ubuntu wyświetla różne kolory dla różnych kategorii plików, z katalogami oznaczonymi kolorem ciemnoniebieskim, a dowiązania symboliczne jaśniejszym niebieskim kolorem (właściwie cyjan).

Możemy użyć tej samej składni, aby utworzyć dowiązanie symboliczne również dla folderu:

ln -s przykłady przykładowy folder

Aby utworzyć dowiązania symboliczne do plików i folderów w innych katalogach, po prostu użyj ich pełnej ścieżki. Na przykład:

ln -s przykłady/przykład3.txt odległy_przykład

Ograniczenia dowiązań symbolicznych

Dowiązania symboliczne to świetny sposób łączenia plików w systemie bez konieczności tworzenia kopii, ale mają one swoje własne ograniczenia. Tak, mimo że miękkie łącza są mniej restrykcyjne niż twarde, nadal należy pamiętać o kilku kwestiach..

Po pierwsze, polecenie ln tak naprawdę nie weryfikuje utworzonych łączy. Oznacza to, że możliwe jest wprowadzenie nazwy pliku, która w rzeczywistości nie istnieje i nie wystąpią żadne błędy. Jedynym sposobem potwierdzenia linku jest próba jego użycia i sprawdzenie, czy prowadzi do właściwego pliku.

Po drugie, dostęp lub zmiana uprawnień dowiązania symbolicznego powoduje zmianę właściwości oryginalnego pliku, to samo nie dotyczy usunięcia pliku. Możesz bezpiecznie usuń dowiązanie symboliczne bez wpływu na połączony plik lub katalog.

Tworzenie dowiązań symbolicznych w systemie Linux

Największym problemem związanym z używaniem terminala do tworzenia dowiązań symbolicznych są trudności w dostępie do ważnych plików rozmieszczonych w różnych katalogach. Inteligentnym rozwiązaniem jest utworzenie dowiązań symbolicznych do takich plików z samego katalogu domowego, np. skrótów na pulpicie.

W przeciwieństwie do dowiązań twardych, dowiązania symboliczne można łatwo tworzyć bez żadnych ograniczeń, nawet w celu łączenia się z katalogami lub plikami na różnych partycjach i systemach plików. Pamiętaj, że oznacza to również, że dowiązanie symboliczne może wskazywać na nieistniejący plik – będziesz musiał spróbować uzyskać dostęp do łącza, aby sprawdzić, czy plik istnieje.

.

Powiązane posty:


10.05.2023