Odkaz je odkaz na jiný soubor. Odkazy dávají stejnému souboru více jmen a umožňují mu žít na dvou nebo více místech současně.
Existují dva typy odkazů:
- Soft odkaz nebo symbolický odkaz:Toto je pouze zkratka k původnímu souboru.
- Pevný odkaz:Ukazuje na paměťové umístění původního souboru.
Tento obrázek ukazuje, jak fungují dva typy odkazů:
Příkazem ln se vytvářejí pevné i měkké odkazy.
V tomto tutoriálu vám ukážu, jak používat příkaz ln pro vytváření různých typů odkazů v Linuxu.
Příklady příkazu ln
Syntaxe příkazu ln je jednoduchá:
ln [option] target_file link_name
Dovolte mi ukázat vám několik příkladů použití příkazu ln k vytváření odkazů v Linuxu.
1. Vytvořte pevný odkaz na soubor
Chcete-li vytvořit pevný odkaz na soubor, můžete použít příkaz ln bez jakýchkoli možností, jako je tato:
ln target_file link_name
2. Vytvořit měkký odkaz na soubor
Chcete-li vytvořit symbolický odkaz na soubor, použijte volbu -s
s názvem cílového souboru a názvem odkazu
ln -s target_file link_name
Většina linuxových terminálů zobrazí softwarový odkaz jinou barvou spolu s cílem, na který ukazuje.
Také si všimnete, že odkazy začínají l
místo obvyklého -
pro soubory v zobrazení dlouhého seznamu.
I když váš terminál nezobrazuje měkké odkazy v jiné barvě, můžete odkazy identifikovat tímto způsobem.
3. Vytvořte měkký odkaz na adresář
Vytvoření měkkého odkazu na adresář je stejné jako vytvoření symbolického odkazu na soubor. Stačí pouze nahradit název/cestu cílového souboru názvem/cestou adresáře.
ln -s target_directory link_name
Všimnete si, že barva měkkého odkazu a pevného odkazu se v terminálu Linux obvykle liší. Pevný odkaz na adresář není možný (normálně).
4. Aktualizujte existující měkký odkaz (nebo pevný odkaz)
Existující odkaz můžete přepsat. Ve výchozím nastavení, pokud se pokusíte použít existující odkaz k odkazu na nový soubor, zobrazí se chyba:
ln: failed to create symbolic link 'soft-link-to-file': File exists
Příkaz ln má pro tento účel dvě možnosti:
-i
:Interaktivní režim se vás zeptá, zda chcete přepsat existující odkaz.-f
:Vynucený režim pouze aktualizuje stávající odkaz bez jakéhokoli potvrzení.
Předpokládejme, že chcete vynutit aktualizaci symbolického odkazu. Zde je to, co můžete udělat:
ln -sf new_file existing_soft_link
Nezapomeňte přidat s
pro měkký odkaz, jinak převedete měkký odkaz na pevný odkaz.
Bonusový tip:Získání původního souboru po řetězci odkazů
Normálně, když použijete příkaz ls s -l
možnost, zobrazí soubor, na který ukazuje.
Ale pokud existuje řetězec odkazů, nezobrazí původní soubor. Například vytvoříte odkaz na soubor a poté vytvoříte další odkaz na první odkaz. V dlouhém seznamu bude druhý odkaz ukazovat na první odkaz.
Chcete-li najít původní soubor z řetězce odkazů, můžete použít readlink -f
následujícím způsobem:
readlink -f soft_link
-f
options znamená 'follow' jako v 'follow the chain'.
Tento obrázek lépe vysvětluje příklad:
Proč potřebujeme odkazy?
Nyní, když víte, jak vytvářet odkazy, pojďme stručně, proč potřebujeme odkazy? K jakému praktickému účelu slouží?
Případů použití může být několik. Řekněme, že jste si stáhli software, který je dodáván s jeho kódem a spustitelným souborem. Celou věc ponecháte v /opt
adresář. Chcete-li však program spustit odkudkoli, musíte jeho spustitelný soubor umístit do /usr/bin
adresář.
Pokud přesunete spustitelný soubor do tohoto adresáře, nemusí fungovat, protože potřebuje přístup k některému kódu a nenajde cestu k těmto souborům z /usr/bin
adresář. Zde můžete vytvořit odkaz na tento spustitelný soubor v /usr/bin
adresář.
Tímto způsobem lze program spustit odkudkoli v systému a spustitelný soubor programu zůstane v původní složce programu.
Odkazy jsou nezbytnou součástí Linuxu. Najdete je na mnoha místech ve vašich systémech. Stačí se podívat do /lib
adresář a uvidíte spoustu měkkých odkazů.
Co dál?
Vřele doporučuji přečíst si následující články, které se týkají konceptu odkazů v Linuxu:
- Co jsou měkké odkazy?
- Podrobné vysvětlení pevných odkazů
- Nalezení nefunkčních symbolických odkazů
- Koncept inode v Linuxu
Doufám, že jste se v tomto tutoriálu naučili efektivně používat příkaz ln. Otázky a návrhy jsou vždy vítány.