symlink

Symlink nie raz potrafi uratować nas przed kopiowaniem plików, gdyż zdarzają się sytuacje, gdzie chcemy coś mieć w kilku miejscach na raz w ramach naszej przestrzeni dyskowej. Zrobić to można na kilka sposobów, jedna to przykładowo posiadać kopie w kilku miejscach, a inne – wykorzystać symlinki. Czym one są?

Ostatnio miałem okazję tłumaczyć czym są symlinki w systemie Linux, ale są też obecne pod systemem Windows, MacOS i pewnie każdym innym, który istnieje.

Symlink – co to jest?

Symlinki, czyli po polsku dowiązania symboliczne to skrót – jednak z bardziej zaawansowanymi opcjami. Dzięki nim będziemy mogli udawać w systemie, że nasz plik lub katalog istnieje i jest dostępny w określonym miejscu. Fizycznie będzie całkowicie w innym miejscu, w innej lokalizacji.

Teoretyczna sytuacja: jakiś program potrzebuje pliku w danej lokalizacji, ale dla wygody/potrzeb trzymasz plik w innej lokalizacji. Tworzysz dowiązanie symboliczne i program dostanie się do pliku, mimo jego obecności w innym miejscu.

Opisałem to w cudowny sposób, nie dziękujcie!

Dzięki tej sztuczce, możemy pliki synchronizować np.: do serwera NAS lub do chmury (gdzie synchronizujemy zazwyczaj konkretną lokalizację).

Istnieją dwa rodzaje tych dowiązań – miękkie i twarde. Miękkie działają na zasadzie standardowego skrótu. Po wejściu do takiego dowiązanego katalogu, przenosi nas do innej lokalizacji. Inaczej i dużo ciekawiej działa twardy link – on będzie „udawał” istnienie pliku lub katalogu w innej lokalizacji.

Jedno zastrzeżenie – w Linux/Unix mamy twardy i miękki link (hard link i soft link), ale Windows musi być inny – ma twardy link (hard link) oraz symboliczny (symbolic link).

Symlink w Windows – jak utworzyć?

Stworzenie symlinka w Windows jest dosyć proste i wykorzystamy do tego polecenie mklink. Ta komenda pozwoli nam na utworzenie zarówno twardego jak i miękkiego linku.

Na początek uruchamiamy cmd.exe lub powershell.exe w trybie administratora. Chcąc stworzyć miękki link (symboliczny) możemy zrobić go według dwóch wzorów:

mklink link lokalizacja
mklink /D link lokalizacja
<#
mklink to komenda.
/D - informacja dla mklink, że chcemy miękki link
link - nazwa naszego "folderu" lub "pliku".
lokalizacja - miejsce, gdzie jest oryginalny plik/folder
#>

W celu zrobienia twardego linku, wykonujemy podobnie – ale zamiast /D podajemy /H:

mklink /H link lokalizacja

Możemy również wykorzystać przełącznik /J – który tworzy twardy link do katalogu:

mkdir /J link lokalizacja

W ten sposób można stworzyć symlinki pod Windows.

Usunięcie wykonujemy tak samo jak każdy inny plik i nie musimy się obawiać, że nasze oryginalne pliki i katalogi zostaną usunięte.

Symlinki pod Linux/Unix – jak stworzyć?

W przypadku systemów bazujących na Unix lub Linux jest nieco wygodniej moim zdaniem.

Wykorzystujemy tutaj polecenie „ln”:

ln nazwa_linku oryginalna_lokalizacja
# W ten sposób tworzymy twardy link
ln -s nazwa_linku oryginalna_lokalizacja
# W ten sposób tworzymy miękki link

Możemy też zweryfikować swój link – czy został poprawnie utworzony:

ln -l nazwa_linku

Jak usunąć link? Wpisujemy jedną z dwóch komend:

unlink nazwa_linku
rm nazwa_linku

Oba sposoby możesz przetestować, zarówno na Windows jak i Linux poprzez Windows Subsystem Linux.

Źródła:
https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/
https://linuxize.com/post/how-to-create-symbolic-links-in-linux-using-the-ln-command/

Dołącz do newslettera, by być na bieżąco!

Jeśli chcesz być na bieżąco z blogiem, otrzymywać świetne porady dot. programowania i administracji serwerami, opinie w temacie gier - dołącz do newslettera!

Raz na jakiś czas wyślę Ci informację nt. bloga, a także będę wysyłać ekskluzywne materiały techniczne!

Nie czekaj i dołącz!

Dołączając do newslettera, akceptujesz naszą politykę prywatności!