Odkaz v systéme Linux je špeciálny súbor, ktorý odkazuje na iný súbor alebo adresár. Takto môže byť jeden súbor umiestnený na viacerých miestach naraz. Po odstránení pôvodného súboru sa odkaz zachová. To môže mať za následok pády a vo všeobecnosti zahlcuje systém.
Na úvod si vysvetlíme spôsob kontroly, či je súbor skutočne odkazom. To sa pohodlne vykonáva pomocou nástroja ls
. Potom sa pozrime na tri spôsoby odstránenia, z ktorých každý má svoje špecifiká.
Pomocou nástroja ls
je vhodné zobraziť informácie o súbore. Ak chcete použiť tento nástroj, zadajte mu možnosť -l
a zadajte cestu. Ako príklad si zoberme súbor ~/symlinks/link_1
:
$ ls -l ~/symlinks/link_1
Môžete skontrolovať celý katalóg odkazov:
$ ls -l ~/symlin
Súbor, ktorý nie je potrebný, je označený charakteristickou šípkou za svojím názvom.
Príkaz rm
možno použiť na odstránenie akéhokoľvek súboru v súborovom systéme Linux vrátane odkazov. To znamená, že je vhodný pre našu úlohu. Tu je dôležité spomenúť, že pôvodný súbor alebo adresár nebude v dôsledku odstránenia odkazu ovplyvnený.
V termináli spustite príkaz:
$ rm ~/symlinks/link_1
Ak chcete získať aj podrobné informácie o postupe, pridajte do príkazu možnosť -v
:
$ rm -v ~/symlinks/link_1
Okrem toho môžete skontrolovať, či odkaz z adresára zmizol. Na tento účel použite predtým opísaný príkaz ls
.
Teraz už viete, ako odstrániť symbolický odkaz v systéme Linux.
Nástroj unlink
je určený na odstraňovanie súborov zo súborového systému Linux. Stačí mu zadať cestu k odkazu:
$ unlink ~/symlinks/link_1
V rámci tejto úlohy pracujú rm a unlink takmer identicky. Teraz prejdime k poslednej metóde.
Pomocou príkazu find
môžete vyhľadávať a odstraňovať odkazy v danom adresári. To znamená, že nemusíte dodatočne používať príkaz ls
.
Na rozdiel od predchádzajúcich dvoch možností má pomerne pokročilé funkcie, napríklad nastavenie kritérií vyhľadávania. Syntax však ani z tohto dôvodu nie je taká jednoduchá.
Ak chcete vyhľadávať, musíte zadať adresár a niekoľko parametrov:
$ find ~/symlinks/ -type l -print
Parameter -type l
je potrebný na výber len symbolických odkazov, parameter -print
na vypísanie celého názvu. A pomocou parametra -maxdepth
môžete určiť hĺbku vyhľadávania podľa vnorených adresárov. Ak zadáte 1, vyhľadávanie sa vykoná len v samotnom adresári bez príloh:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Akonáhle je v adresári veľa odkazov, môžete zadať vzor vyhľadávania pre príkaz find
. Ako príklad si zoberme situáciu, keď chceme nájsť len skryté odkazy s dátumom poslednej zmeny nie starším ako 30 dní:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Boli pridané dve kritériá:
-name
- vyhľadávanie podľa názvu
.-mtime
- podľa času zmeny.Všetky nájdené odkazy možno odstrániť podľa zadaného vzoru. Na tento účel je príkaz -print
nahradený príkazom -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Na záver návodu sa venujme vyhľadávaniu a mazaniu nefunkčných odkazov, ktoré nikam nevedú, napríklad po vymazaní pôvodného súboru alebo adresára. Na tento účel je vhodný parameter -xtype l
. Parameter -print
sa na výstup nevyžaduje:
$ find ~/broken_links/ -xtype l
Výsledkom bude, že sa v termináli zobrazia všetky nefunkčné odkazy. Ak ich chcete odstrániť, pridajte na koniec príkazu parameter -delete
:
$ find ~/broken_links/ -xtype l -delete
Tým je návod na odstránenie odkazu v Linuxe ukončený.