GNU/Linux >> Znalost Linux >  >> Linux

Co jsou symbolické odkazy v Linuxu? Jak vytvořit symbolické odkazy?

Symbolický odkaz, také známý jako symbolický odkaz nebo měkký odkaz , je speciální typ souboru, který jednoduše ukazuje na jiný soubor nebo adresář stejně jako zástupci ve Windows. Vytvoření symbolického odkazu je jako vytvoření aliasu skutečného souboru.

Pokud se pokusíte získat přístup k symbolickému odkazu, ve skutečnosti přistoupíte k cílovému souboru, na který symbolický odkaz ukazuje. Změny provedené v obsahu souboru odkazu změní obsah skutečného cílového souboru.

Pokud použijete příkaz ls s volbou -l, symbolický odkaz vypadá takto:

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Ve většině distribucí Linuxu jsou odkazy zobrazeny jinou barvou než ostatní položky, takže můžete odlišit odkazy od běžných souborů a adresářů.

Symbolické odkazy nabízejí pohodlný způsob organizace a sdílení souborů. Poskytují rychlý přístup k dlouhým a matoucím adresářovým cestám. V Linuxu se hojně používají při propojování knihoven.

Nyní, když víte něco o symbolických odkazech, pojďme se podívat, jak je vytvořit.

Chcete-li vytvořit symbolický odkaz na cílový soubor z názvu odkazu , můžete použít příkaz ln s volbou -s takto:

ln -s target_file link_name

Důležitá je zde volba -s. Určuje, že odkaz je měkký odkaz. Pokud jej nepoužíváte, vytvoří pevný odkaz. Rozdíl mezi měkkými a pevnými odkazy vysvětlím v jiném článku.

Symbolické odkazy mohou být občas matoucí, proto byste měli mít na paměti několik věcí.

To je ostatně celý účel odkazů. K cílovému souboru se dostanete pomocí odkazu. Pomocí odkazů můžete provést změny v cílovém souboru. Podívejme se na příklad.

Mám soubor prog.py v newdir/test_dir. Má následující atributy:

-rw-r--r-- 1 abhishek abhishek 163 Apr 13 15:07 newdir/test_dir/prog.py

Nyní vytvořím měkký odkaz na tento soubor v mém současném adresáři:

ln -s newdir/test_dir/prog.py link_prog

Zde jsou atributy nově vytvořeného odkazu:

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Všimněte si l (je to L, ne jedno) na začátku řádku? Pokud jste obeznámeni s oprávněními k souborům v Linuxu, měli byste vědět, že „l“ znamená odkaz, a tak vám říká, že tento soubor je ve skutečnosti odkaz. Pro obnovení paměti – znamená soubor a d znamená adresář.

Pokud nyní použiji tento odkaz ke změně obsahu nebo atributů, totéž se projeví v cílovém souboru. Například používám dotykový příkaz na softwarovém odkazu a všimnete si, že změní časové razítko cílového souboru.

touch link_prog 

ls -l newdir/test_dir/prog.py 

-rw-r--r-- 1 abhishek abhishek 163 Jul  2 10:04 newdir/test_dir/prog.py

Jak byste věděli, zda odkaz ukazuje na soubor nebo adresář? Nemůžete to vědět, dokud nebudete sledovat cestu a nezpřístupníte samotný cílový soubor.

Ano, to je zcela možné. To je důvod, proč byste měli být opatrní při vytváření měkkých odkazů v Linuxu. Cílový soubor, na který odkazujete, nemusí existovat. Při vytváření odkazu na soubor/adresář, který neexistuje, neobdržíte žádnou chybu ani varování.

Chyba se zobrazí pouze při pokusu o přístup k cílovému souboru, buď prostřednictvím odkazu, nebo samostatně. Příkaz ls však bude stále fungovat.

ln -s non_existant_dir link_dir
less link_dir
link_dir: No such file or directory

Všimli jste si oprávnění k souboru na symbolickém odkazu? Symbolické odkazy jsou vždy vytvářeny s oprávněním 777 (rwxrwxrwx). U běžného souboru by to znamenalo, že k souboru má přístup kdokoli. To ale neplatí pro odkazy.

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Pokud by se s oprávněními k souborům u odkazů zacházelo tak, jak jsou, mohl by každý uživatel vytvořit symbolický odkaz na zabezpečený soubor a volně k němu přistupovat. To by byl zásadní bezpečnostní problém. Naštěstí se tak neděje. Protože na oprávnění k cílovým souborům záleží, ne na oprávnění k odkazům.

Ke změně oprávnění k odkazu můžete použít příkaz chmod, ale změní se tím oprávnění odkazovaného souboru, nikoli odkazu samotného.

Můžete vytvořit symbolický odkaz, který ukazuje na jiný odkaz a tak dále. Tomu se říká zřetězený symbolický článek. Je lepší se jim vyhnout, protože to vytváří další zmatek.

No, to je vše. Předpokládám, že nyní máte lepší znalosti o měkkých odkazech a víte, jak vytvořit symbolické odkazy v Linuxu. Můžete si přečíst o příkazu symbolické odkazy, který vám může pomoci najít poškozené symbolické odkazy v Linuxu a snadno je spravovat.

Pokud máte dotazy nebo návrhy, zanechte prosím níže komentář.


Linux
  1. Jak vytvořit swap v Linuxu

  2. Jak vytvořit odkládací soubor v Linuxu

  3. Co jsou symbolické odkazy (Soft Links) a jak je vytvořit pod Linuxem

  1. Jak vytvořit pevné a symbolické odkazy v Linuxu

  2. Jak vytvořit soubor ZIP chráněný heslem v systému Linux

  3. Jak vytvořit měkké a pevné odkazy v Linuxu

  1. Příkaz Ln:Jak vytvořit symbolické odkazy v Linuxu

  2. Jak vytvořit symbolické odkazy v Linuxu

  3. Co jsou měkké a pevné odkazy v systému souborů Linux