GNU/Linux >> Znalost Linux >  >> Linux

Vysvětlení pevných odkazů a měkkých odkazů v Linuxu

Stalo se vám někdy, že jste něco znali, pracovali s tím, ale plně jste nepochopili jeho koncepty? Mám pocit, že se mi to stává víc než většině lidí. Je to frustrující pocit, ale je to také pocit, který lze často snadno napravit. Někdy stačí, aby někdo vysvětloval tento koncept „prostou angličtinou“, neboli laickými termíny. To je cílem tohoto článku. Chci mluvit o pevných odkazech a měkké (symbolické) odkazy v těch nejzákladnějších možných termínech. Možná si uvědomíte, že tento koncept, který je pro systémové správce často bojem, je docela jednoduchý. Když nic jiného, ​​provedu vás syntaxí k vytvoření těchto odkazů (které si mnoho lidí těžko pamatuje). Tak pojďme na to.

Pevné odkazy

Koncept pevného odkazu je tím nejzákladnějším, o kterém dnes budeme diskutovat. Každý soubor v souborovém systému Linux začíná jediným pevným odkazem. odkaz je mezi názvem souboru a skutečnými daty uloženými v souborovém systému. Vytvoření dalšího pevného odkazu na soubor znamená několik různých věcí. Pojďme o tom diskutovat.

Nejprve vytvoříte nový název souboru ukazující na přesně stejná data jako starý název souboru. To znamená, že dva názvy souborů, i když se liší, ukazují na identická data. Pokud například vytvořím soubor /home/tcarrigan/demo/link_test a napište ahoj světe v souboru mám jeden pevný odkaz mezi názvem souboru link_test a obsah souboru ahoj světe .

[tcarrigan@server demo]$ ls -l
total 4
-rw-rw-r--. 1 tcarrigan tcarrigan 12 Aug 29 14:27 link_test

Zde si poznamenejte počet odkazů (1 ).

Dále vytvořím nový pevný odkaz v /tmp na přesně stejný soubor pomocí následujícího příkazu:

[tcarrigan@server demo]$ ln link_test /tmp/link_new

Syntaxe je ln (original file path) (new file path) .

Nyní, když se podívám na svůj souborový systém, vidím oba pevné odkazy.

[tcarrigan@server demo]$ ls -l link_test /tmp/link_new 
-rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
-rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

Hlavním rozdílem je zde název souboru. Počet odkazů byl také změněn (2 ). Nejvýrazněji, když cat obsah nového souboru zobrazí původní data.

[tcarrigan@server demo]$ cat /tmp/link_new 
hello world

Když jsou provedeny změny v jednom souboru, druhý odráží tyto změny. Oprávnění, počet odkazů, vlastnictví, časová razítka a obsah souboru jsou naprosto stejné. Pokud je původní soubor odstraněn, data stále existují pod sekundárním pevným odkazem. Data jsou z vašeho disku odstraněna až po odstranění všech odkazů na data. Pokud najdete dva soubory se stejnými vlastnostmi, ale nejste si jisti, zda jsou pevně propojeny, použijte ls -i příkaz k zobrazení inode číslo. Soubory, které jsou spolu pevně propojeny, sdílejí stejné číslo inodu.

[tcarrigan@server demo]$ ls -li link_test /tmp/link_new 
2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

Číslo sdíleného inodu je 2730074 , což znamená, že tyto soubory jsou identická data.

Pokud chcete více informací o inodech, přečtěte si celý můj článek zde.

Tvrdé limity

I když je to užitečné, existují určitá omezení toho, co pevné odkazy mohou dělat. Pro začátek je lze vytvořit pouze pro běžné soubory (nikoli adresáře nebo speciální soubory). Pevný odkaz také nemůže zahrnovat více souborových systémů. Fungují pouze tehdy, když nový pevný odkaz existuje na stejném souborovém systému jako původní.

Měkké odkazy

Běžně označované jako symbolické odkazy , měkké odkazy spojují dohromady nepravidelné a běžné soubory. Mohou také zahrnovat více souborových systémů. Podle definice není měkký odkaz standardní soubor, ale speciální soubor, který ukazuje na existující soubor. Podívejme se, jak vytvořit měkký odkaz. Používám ln -s příkaz a následující syntaxi:

ln -s (file path you want to point to) (new file path)

V níže uvedeném příkladu vytvořím nový soubor na adrese /home/tcarrigan/demo/soft_link_test s obsahem souboru soft Hello world . Poté vytvořím měkký odkaz na tento soubor v /tmp/soft_link_new :

[tcarrigan@server demo]$ ln -s /home/tcarrigan/demo/soft_link_test /tmp/soft_link_new
[tcarrigan@server demo]$ ls -l soft_link_test /tmp/soft_link_new 
-rw-rw-r--. 1 tcarrigan tcarrigan 17 Aug 30 11:59 soft_link_test
lrwxrwxrwx. 1 tcarrigan tcarrigan 35 Aug 30 12:09 /tmp/soft_link_new -> /home/tcarrigan/demo/soft_link_test

Všimněte si, že /tmp/soft_link_new je pouze symbolický odkaz, ukazující na původní /home/tcarrigan/demo/soft_link_test . Pokud cat obsah /tmp/soft_link_new , měl bych vidět jemný svět Hello text.

[tcarrigan@server demo]$ cat /tmp/soft_link_new 
soft Hello world

To vše zní skvěle, ale použití měkkého odkazu má určité nevýhody. Největším problémem je ztráta dat a záměna dat. Pokud je původní soubor odstraněn, funkční odkaz se přeruší. Tato situace se nazývá visící měkký odkaz . Pokud byste vytvořili nový soubor se stejným názvem jako původní, váš visící softwarový odkaz již nebude viset vůbec. Ukazuje na nově vytvořený soubor, ať už to byl váš záměr nebo ne, takže to mějte na paměti.

Tvrdé nebo měkké?

Zde neexistuje jednoznačná odpověď. Nejlepší odkaz je typ, který odpovídá vaší konkrétní situaci. I když může být obtížné si tyto pojmy zapamatovat, syntaxe je docela přímočará, takže to je plus! Aby bylo možné tyto dva snadno oddělit ve vaší mysli, nechávám vám toto:

  • Pevný odkaz vždy ukazuje název souboru na data v úložném zařízení.
  • Softvérový odkaz vždy ukazuje název souboru na jiný název souboru, který pak ukazuje na informace na úložném zařízení.

Doufejme, že vám to pomůže udržet je oddělené, když si budete procházet typy odkazů, které potřebujete k dosažení svých každodenních cílů!

[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]


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

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

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

  1. Pipes a přesměrování v Linuxu – vysvětleno!

  2. Git a pevné odkazy

  3. Přesuňte soubor a nechte za sebou měkký odkaz

  1. RHEL 7 – RHCSA Poznámky:Vytvářejte pevné a měkké vazby.

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

  3. Rozdíl mezi měkkými a pevnými odkazy v Linuxu