Symbolický odkaz se běžně nazývá soft link nebo symlink , což je speciální typ souboru, který odkazuje na jiný soubor nebo adresář.
V této příručce se naučíte, jak vytvořit symbolický odkaz v Linuxu pomocí příkazu ln k vytvoření propojení mezi soubory.
Typy odkazů
V Linuxu máme 2 typy odkazů:měkké odkazy a pevné odkazy.
Pevné odkazy: Pevný odkaz je replikou původního souboru. Umožňuje přístup k datům v cílovém souboru. Uživatel nemůže vytvořit pevný odkaz pro adresář, pouze pro soubor. Pevně propojené soubory mají navíc společné číslo inodu. Když je původní soubor odstraněn nebo odstraněn, pevný odkaz bude nadále fungovat a bude obsahovat obsah odstraněného souboru. Je také důležité poznamenat, že pevné odkazy se netýkají různých systémů souborů.
Soft odkazy: Na rozdíl od pevného odkazu je měkký odkaz pouze ukazatelem na název souboru a neobsahuje obsah jiného souboru nebo cílového souboru, na který se odkazuje. Pokud je cílový soubor odstraněn nebo smazán, měkký odkaz přestane existovat. Dobrou stránkou měkkých odkazů je to, že je lze použít k propojení se souborem nebo adresářem a mohou zahrnovat různé systémy souborů.
Jak používat příkaz ln
Příkaz ln se používá k vytváření odkazů mezi soubory. Příkaz ve výchozím nastavení vytvoří pevný odkaz. Chcete-li vytvořit měkký odkaz, jednoduše připojte -s možnost ( --symbolic ).
Syntaxe:
ln [OPTION] TARGET LINK_NAME
Abyste předešli nejasnostem, použijte při vytváření symbolického odkazu absolutní cestu (relativní cestu) ke zdrojovému a cílovému souboru.
Jak vytvořit symbolický odkaz na soubor
Chcete-li vytvořit symbolický odkaz na soubor, spusťte následující příkaz:
$ ln -s { OPTIONS } file symlink
Když jsou definovány soubor i symbolický odkaz, příkaz ln vytvoří odkaz ze souboru což je první argument souboru definovaného ve druhém argumentu symlink .
Chcete-li například vytvořit symbolický odkaz na soubor, použijte syntaxi
$ ln -s original_file symlink
Poznámka:ln při úspěchu nevrací žádný výstup.
V příkazu nahraďte originální_soubor s existujícím souborem, pro který chcete vytvořit symbolický odkaz a symlink se symbolickým odkazem.
Uveďme skutečný příklad:
$ ln -s file1.txt sample_link.txt
Výše uvedený příkaz vytvoří symbolický odkaz s názvem 'sample_link.txt' na existující soubor 'file1.txt' v aktuálním adresáři.
Chcete-li ověřit vytvoření odkazu, jednoduše použijte příkaz ls, jak je znázorněno:
$ ls -l sample_link.txt
Váš výstup by se měl podobat tomu, co mám níže:
lrwxrwxrwx 1 winnie winnie 9 Jul 12 23:43 sample_link.txt -> file1.txt
V oprávněních l
příznak označuje, že se jedná o symbolický odkaz, a znak - >
označuje, že symbolický odkaz ukazuje na soubor file1.txt
.
Někdy symbolické odkazy nefungují kvůli problémům s cestou, navrhněte použít úplnou cestu:
# absolute (full path)
ln -s /path/to/originals/originalfile1.txt backup/copy.txt
# relative
cd backup
ln -s ../originals/originalfile1.txt copy.txt
Jak vytvořit symbolické odkazy na adresář
Vytvoření symbolického odkazu na adresář je stejně snadné jako vytvoření odkazu na soubor. Syntaxe zůstává do značné míry stejná. První argument přebírá název adresáře, zatímco symbolický odkaz je specifikován jako druhý argument.
Níže uvedená syntaxe je příkladem toho, jak byste postupovali takto:
$ ln -s /path/to/directory ~/directory
Chcete-li například vytvořit symbolický odkaz z adresáře /Downloads/music/ do ~/my_music spusťte příkaz:
$ ln -s /Downloads/music ~/my_music
Jak přepsat symbolický odkaz
Přepsání symbolických odkazů pouhým vyvoláním příkazu ln bez jakýchkoli dalších argumentů vám vždy zobrazí chybu, jak je uvedeno:
Pokud se například pokusíte znovu spustit následující příkaz:
$ ln -s file1.txt sample_link.txt
Zobrazí se chyba:
ln: failed to create symbolic link 'sample_link.txt': File exists
Řešením tohoto problému je zavedení další možnosti -f nebo --force pro přepsání cílové cesty symbolického odkazu, jak je znázorněno:
$ ln -sf file1.txt sample_link.txt
Tentokrát přepsání softwarového odkazu nezpůsobí žádnou chybu.
Jak odstranit symbolické odkazy
Chcete-li se zbavit symbolických odkazů Linux nebo symbolických odkazů, můžete použít buď příkaz rm, nebo unlink příkaz. A je to docela snadné. Pro odpojení k odstranění symbolických odkazů použijte níže uvedenou syntaxi:
$ unlink symlink_to_be_removed
Odstranění softwarového odkazu pomocí příkazu rm je stejné, jako když odstraňujete nebo odstraňujete běžný soubor:
$ rm symlink_to_be_removed
Jsou symbolické odkazy důležité?
Obecně je dobré vytvořit symbolický odkaz na soubor, pokud chcete dosáhnout některého z následujících:
- Mějte přístup k souboru (souborům) z více umístění bez vytváření duplicitních kopií, které mohou nutně zabírat mnoho místa na disku.
- Pokud chcete zachovat původní verze souboru a zajistit, aby odkaz ukazoval na nejnovější verzi souboru. Funguje to, protože symbolický odkaz zůstane aktivní i poté, co soubor nahradíte jiným souborem se stejným názvem.
Linuxové programy používají symbolické odkazy jako alias, takže uživatelé nemusí vědět, jakou verzi kódu použili.
# which python
/usr/bin/python
# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7 Feb 21 13:38 /usr/bin/python -> python2
Závěr
Symbolické odkazy a standardní zkratky jsou podobné, ale existuje mezi nimi několik rozdílů.
Standardní zkratka, jako je ta, kterou byste našli ve Windows, je jednoduše běžný soubor, který ukazuje na určitý adresář, soubor nebo aplikaci. Tato zkratka se obvykle zobrazuje jako ikona, kterou lze vytvořit v libovolném umístění, a po kliknutí na ni se otevře původní soubor, adresář nebo aplikace.
Symbolický odkaz ve skutečnosti představuje původní soubor ve funkčním smyslu. Je to přímá náhrada za objekt, jako je soubor. Váš systém Linux přečte symbolický odkaz Linux, jako by to byl cílový objekt. Obyčejná zkratka jednoduše odkazuje na soubor nebo adresář a nedělá nic jiného.
To je vše o tom, jak vytvořit symbolický odkaz v Linuxu a pro více informací se obraťte na člověka. Doufám, že se vám čtení líbilo a zanechte prosím své komentáře a návrhy.