Portál AbcLinuxu, 7. května 2025 19:58
3) A posledni vec - rad bych vyrabel symlinky s relativni cestou. tzn ln -s ~/Dokumenty/E-BOOK/ E-BOOK Tohle mi ale asi jenom vezme cestu z aktualniho home adresare a dosadi ji jako absolutni cestu pro symlink, ze? Musel bych doplnit parametr pro relativni cestu.Daji se vyrobit i relativni:
~/tmp $ ln -s ../Desktop ./plocha ~/tmp $ ls -l plocha lrwxrwxrwx … plocha -> ../DesktopAle taky se daji snadno rozbit:
~/tmp $ mkdir bla ~/tmp $ mv plocha bla/ ~/tmp $ cd bla ~/tmp $ ls -l lrwxrwxrwx … plocha -> ../Desktop # vede na neexistujici ~/tmp/Desktop
4) Da se nejak EDITOVAT symlink? pres ls -l vidim, kam vede, ale nepoznam, zda ta cesta ke zdroji je relativni, nebo absolutni. A pokud ji chci zmenit, musim smazat cely symlink a vyrobit novy, ze? Neda se nejak zeditovat jako konfigurak v textovem editoru?Da se prepsat:
ln -sf prvni druhy
. Udela to asi to same, jako smazani a znovuvytvoreni, ale je s tim min prace.
Absolutní symlink rozbiješ jedině přesunutím cíle [target], nikoliv přesunutím linku.
Relativní symlink rozbiješ jak přesunutím cíle, tak přesunutím linku. (Jediná (zjevná) výjimka je, když přesuneš zdroj i link společně tak, aby relativní cesta dál dávala smysl.)
s/přesuneš zdroj i link/přesuneš cíl i link/
Moc chlastám.
Když máš mountování podle labelu filesystému nebo něčeho, co se nemění, a necháš si přimountovat disk vždy stejnou utilitou, aby se objevil na stejném mountpointu, pak tam budou klidně fungovat absolutní symlinky ukazující někam na ten disk. Ale právě u odpojitelných disků bych na to nespoléhal, protože jiné distro/prostředí nebo manuální mount je může připojit jinam.
Relativní symlink je skutečně relativní vůči svému umístění, nikoliv vůči ~
adresáři majitele.
Ba dokonce se dá vytvořit udev pravidlo, které ten symlink na disk vyrobí automaticky.
ln -f
).
Cesta, kam symlink ukazuje, se interpretuje v aktuálním namespace procesu, tedy pokud uděláš chroot, spustíš kontejner, nebo připojíš fs po NFS, tak to bude ukazovat jinam. Relativní cesty ukazují relativně k symlinku. Všelijaké speciální znaky interpretuje shell, u symlinku už se nic neinterpretuje, krom začíná/nezačíná lomítkem.
Existuje na ne nejaky vtipny filtrTreba
find
:
$ ln -s /tmp bla $ find . -maxdepth 1 -type l ./blaAle je docela pravdepodobne, ze ten zalohovaci nastroj bude symlinkum „rozumet“ sam od sebe. Treba rsync ma parametr
--no-links
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.