Způsoby platby Abuse

Odstranění odkazů v systému Linux

10.04.2022, 01:05

Odkaz v systému Linux je speciální soubor, který odkazuje na jiný soubor nebo adresář. Jeden soubor tak může být umístěn na několika místech najednou. Když je původní soubor odstraněn, odkaz zůstane zachován. To může mít za následek pády a obecně zahlcení systému.

Jak odstranit odkaz

Na úvod si vysvětlíme způsob kontroly, zda je soubor skutečně odkazem. To se pohodlně provádí pomocí nástroje ls. Poté se podíváme na tři způsoby odstranění, z nichž každý má svá specifika.

Ověření, že se jedná o odkaz

Pomocí nástroje ls je vhodné zobrazit informace o souboru. Chcete-li nástroj použít, zadejte mu parametr -l a určete cestu. Jako příklad si vezměme soubor ~/symlinks/link_1:

$ ls -l ~/symlinks/link_1

Odstranění odkazů v systému Linux

Můžete zkontrolovat celý katalog odkazů:

$ ls -l ~/symlin

Odstranění odkazů v systému Linux

Soubor, který není potřeba, je označen charakteristickou šipkou za svým názvem.

Použití Rm

Příkaz rm lze použít k odstranění libovolného souboru v souborovém systému Linux, včetně odkazů. To znamená, že je vhodný pro náš úkol. Zde je důležité zmínit, že původní soubor nebo adresář nebude v důsledku odstranění odkazu nijak ovlivněn.

V terminálu spusťte příkaz:

$ rm ~/symlinks/link_1

Odstranění odkazů v systému Linux

Chcete-li také získat podrobné informace o postupu, přidejte do příkazu parametr -v:

$ rm -v ~/symlinks/link_1

Odstranění odkazů v systému Linux

Kromě toho můžete zkontrolovat, zda odkaz z adresáře zmizel. K tomu použijte dříve popsaný příkaz ls.

Odstranění odkazů v systému Linux

Nyní víte, jak odstranit symbolický odkaz v systému Linux.

Použití příkazu UNLINK

Nástroj unlink je určen k odstraňování souborů ze souborového systému Linux. Stačí mu zadat pouze cestu k odkazu:

$ unlink ~/symlinks/link_1

Odstranění odkazů v systému Linux

V rámci daného úkolu pracují rm a unlink téměř identicky. Nyní přejděme k poslední metodě.

Použití funkce Find

Pomocí příkazu find můžete vyhledávat a odstraňovat odkazy v daném adresáři. To znamená, že nemusíte dodatečně používat příkaz ls.

Odstranění odkazů v systému Linux

Na rozdíl od předchozích dvou možností má poměrně pokročilé funkce, například nastavení kritérií vyhledávání. Ani z tohoto důvodu však není syntaxe tak jednoduchá.

Pro vyhledávání je třeba zadat adresář a několik parametrů:

$ find ~/symlinks/ -type l -print

Odstranění odkazů v systému Linux

Parametr -type l je potřeba pro výběr pouze symbolických odkazů, parametr -print pro vypsání celého názvu. A pomocí parametru -maxdepth můžete určit hloubku vyhledávání podle vnořených adresářů. Pokud zadáte hodnotu 1, bude vyhledávání probíhat pouze v samotném adresáři, bez příloh:

$ find ~/symlinks/ -maxdepth 1 -type l -print

Odstranění odkazů v systému Linux

Jakmile je v adresáři mnoho odkazů, můžete zadat vyhledávací vzor pro příkaz find. Jako příklad uveďme situaci, kdy chceme najít pouze skryté odkazy s datem poslední změny ne starším než 30 dní:

$ find ~/data/ -type l -name ".*" -mtime -30 -print

Odstranění odkazů v systému Linux

Byla přidána dvě kritéria:

  • -name - vyhledávání podle názvu.
  • -mtime - podle času změny.

Všechny nalezené odkazy lze odstranit podle zadaného vzoru. Pro tento účel je parametr -print nahrazen parametrem -delete:

$ find ~/data/ -type l -name ".*" -mtime -30 -delete

Odstranění odkazů v systému Linux

Na závěr návodu se věnujme vyhledávání a mazání nefunkčních odkazů, které nikam nevedou, například po smazání původního souboru nebo adresáře. K tomuto účelu je vhodný parametr -xtype l. Pro výstup není vyžadován parametr -print:

$ find ~/broken_links/ -xtype l

Odstranění odkazů v systému Linux

Výsledkem bude zobrazení všech nefunkčních odkazů v terminálu. Chcete-li je odstranit, přidejte na konec příkazu parametr -delete:

$ find ~/broken_links/ -xtype l -delete

Odstranění odkazů v systému Linux

Tím je návod na odstranění odkazu v Linuxu kompletní.