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/