GNU/Linux >> Znalost Linux >  >> Linux

Vysvětlení Soft Link a Hard Link v Linuxu s příklady

Symbolický nebo soft link je skutečný odkaz na původní soubor, zatímco pevný odkaz je zrcadlová kopie původního souboru. Pokud smažete původní soubor, soft link nemá žádnou hodnotu, protože ukazuje na neexistující soubor.

Ale v případě pevného odkazu je to úplně naopak. I když odstraníte původní soubor, pevný odkaz bude stále obsahovat data původního souboru. Protože pevný odkaz funguje jako zrcadlová kopie původního souboru.

Stručně řečeno, měkký odkaz

  • může procházet systémem souborů,
  • umožňuje propojení mezi adresáři,
  • má jiné číslo inodu a oprávnění k souboru než původní soubor,
  • oprávnění nebudou aktualizována,
  • má pouze cestu k původnímu souboru, nikoli obsah.

Pevný odkaz

  • nemůže překročit hranice systému souborů (tj. pevný odkaz může fungovat pouze na stejném systému souborů),
  • nelze propojit adresáře,
  • má stejné číslo inodu a oprávnění jako původní soubor,
  • oprávnění budou aktualizována, pokud změníme oprávnění zdrojového souboru,
  • má skutečný obsah původního souboru, takže obsah můžete stále zobrazit, i když byl původní soubor přesunut nebo odstraněn.

Stále to nechápete? Dovolte mi, abych vám ukázal několik praktických příkladů.

Jak vytvořit měkký odkaz nebo symbolický odkaz

Vytvořme prázdný adresář s názvem "test" .

$ mkdir test

Změňte na "test" adresář:

$ cd test

Nyní vytvořte nový soubor s názvem source.file s některými údaji, jak je uvedeno níže.

$ echo "Welcome to OSTechNix" >source.file

Podívejme se na data souboru source.file.

$ cat source.file
Welcome to OSTechNix

Tedy source.file byl vytvořen.

Nyní vytvořte symbolický nebo měkký odkaz na source.file .

Chcete-li to provést, spusťte:

$ ln -s source.file softlink.file

Porovnejme data obou source.file a softlink.file .

$ cat source.file
Welcome to OSTechNix
$ cat softlink.file 
Welcome to OSTechNix

Jak vidíte ve výše uvedeném výstupu, softlink.file zobrazí stejná data jako source.file .

Pojďme zkontrolovat inody a oprávnění softlink.file a source.file .

$ ls -lia

Ukázkový výstup:

total 12
11665675 drwxrwxr-x  2 sk sk 4096 Oct 17 11:39 .
 4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..
11665731 lrwxrwxrwx  1 sk sk   11 Oct 17 11:39 softlink.file -> source.file
11665692 -rw-rw-r--  1 sk sk   21 Oct 17 11:39 source.file

Jak vidíme na výše uvedeném snímku obrazovky, číslo inodu (11665731 vs 11665692 ) a oprávnění k souboru (lrwxrwxrwx vs -rw-r--r-- ) jsou různé , i když softlink.file má stejný obsah jako source.file . Je tedy dokázáno, že soft link nesdílí stejné číslo inodu a oprávnění jako původní soubor.

Nyní odstraňte původní soubor (tj. source.file ) a uvidíte, co se stane.

$ rm source.file

Zkontrolujte obsah softlink.file pomocí příkazu:

$ cat softlink.file

Ukázkový výstup:

cat: softlink.file: No such file or directory

Jak vidíte výše, neexistuje žádný takový soubor nebo adresář s názvem softlink.file poté, co jsme odstranili původní soubor (tj. source.file ).

Nyní tedy chápeme, že měkký odkaz je pouze odkaz, který ukazuje na původní soubor. Softlink je jako zástupce souboru. Pokud soubor odstraníte, zástupce je k ničemu.

Jak již víte, pokud soft odkaz odstraníte, původní soubor bude stále dostupný.

Doporučené čtení:

  • Jak vypsat symbolické odkazy v systému Linux
  • Jak najít poškozené symbolické odkazy a odstranit je v systému Linux

Vytvořte soubor s názvem source.file s určitým obsahem, jak je uvedeno níže.

$ echo "Welcome to OSTechNix" >source.file

Pojďme ověřit obsah souboru.

$ cat source.file
Welcome to OSTechNix

source.file byl nyní vytvořen.

Nyní vytvoříme pevný odkaz na source.file jak je uvedeno níže.

$ ln source.file hardlink.file

Zkontrolujte obsah souboru hardlink.file :

$ cat hardlink.file
Welcome to OSTechNix

Zobrazí se hardlink.file zobrazí stejná data jako source.file.

Pojďme zkontrolovat inode a oprávnění hardlink.file a source.file .

$ ls -lia

Ukázkový výstup:

total 16
11665675 drwxrwxr-x 2 sk sk 4096 Oct 17 11:58 .
4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..
11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 hardlink.file
11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 source.file

Nyní vidíme, že oba hardlink.file a source.file mají stejné číslo inodů (11665692 ) a oprávnění k souboru (-rw-r--r-- ) . Je tedy prokázáno, že soubor s pevným odkazem sdílí stejný počet inodů a oprávnění jako původní soubor.

Pozor: Pokud změníme oprávnění k source.file , stejné oprávnění bude použito pro hardlink.file také.

Nyní odstraňte původní soubor (tj. source.file ) a uvidíte, co se stane.

$ rm source.file

Zkontrolujte obsah hardlink.file pomocí příkazu:

$ cat hardlink.file

Ukázkový výstup:

Jak vidíte výše, i když jsem smazal zdrojový soubor, mohu zobrazit obsah hardlink.file . Je tedy prokázáno, že pevný odkaz sdílí stejné číslo inodu, oprávnění a data původního souboru.

Jaký je tedy rozdíl mezi pevným odkazem a normálním zkopírovaným souborem?

Možná se ptáte, proč bychom vytvořili pevný odkaz, když můžeme snadno zkopírovat/vložit původní soubor? Vytvoření pevného odkazu na soubor je něco jiného než jeho kopírování.

Pokud zkopírujete soubor, bude pouze duplikovat obsah. Pokud tedy upravíte obsah jednoho souboru (ať už původního nebo pevného odkazu), nebude to mít žádný vliv na druhý.

Pokud však vytvoříte pevný odkaz na soubor a změníte obsah kteréhokoli ze souborů, změna se projeví na obou.

Pojďme se podívat na source.file.

$ cat source.file 
Welcome to OSTechNix

Zdrojový soubor má jeden řádek, který říká - Vítejte v OSTechNix.

Přidejte nový řádek, například "Vítejte v Linuxu" v source.file nebo hardlink.file .

$ echo "Welcome to Linux" >>source.file

Nyní zkontrolujte obsah obou souborů.

$ cat hardlink.file 
Welcome to OSTechNix
Welcome to Linux
$ cat source.file 
Welcome to OSTechNix
Welcome to Linux

Vidět? Změny, které jsme právě provedli na source.file jsou aktualizovány v obou souborech. Význam - oba soubory (zdrojový i pevný odkaz) se synchronizují.

Jakékoli změny, které provedete v libovolném souboru, se projeví v jiném souboru. Pokud normálně zkopírujete/vložíte soubor, neuvidíte žádné nové změny v jiném souboru.

Další podrobnosti najdete na manuálových stránkách.

$ man ln

Závěr

V této příručce jsme diskutovali o tom, co je měkký odkaz a pevný odkaz v Linuxu, jak vytvořit měkký a pevný odkaz pomocí příkladů příkazů a nakonec jsme vysvětlili rozdíl mezi pevným odkazem a normálním zkopírovaným souborem.

Doufám, že máte základní představu o tom, jak používat symbolický nebo měkký odkaz a pevný odkaz v Linuxu.


Linux
  1. Třídit příkaz v Linuxu s příklady

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

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

  1. Jak používat příkaz IP v Linuxu s příklady

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

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

  1. 10 Quick Linux Tail Command s příklady

  2. Jak vytvořit pevné a měkké (symlink) odkazy na systémech Linux

  3. Linux Zip a Unzip Command s příklady