Ako používatelia Linuxu komunikujeme so súbormi a adresármi pravidelne. Jednou z bežných operácií, ktoré používatelia vykonávajú, je odstránenie adresárov zo systému súborov. Pri odstraňovaní adresárov však musíme byť mimoriadne opatrní. Pretože neopatrne vykonané operácie odstránenia môžu viesť k strate údajov.
V tomto článku pre začiatočníkov sa dozvieme o príkaze rmdir. Budeme tiež diskutovať o niektorých praktických príkladoch, ktoré sa dajú použiť na dennej báze.
Syntax súboru rmdir príkaz je podobný ostatným príkazom Linuxu. Na vysokej úrovni sa delí na dve časti – možnosti a argumenty:
$ rmdir [MOŽNOSTI]......
Tu sú hranaté zátvorky ([])
predstavujú voliteľné argumenty, zatiaľ čo hranaté zátvorky (<>)
predstavujú povinné argumenty.
Ako už názov napovedá, rmdir príkaz sa používa na odstránenie adresára. Je však dôležité poznamenať, že môže odstrániť iba prázdne adresáre. V tejto časti uvidíme základné použitie rmdir príkaz.
Najprv vytvorte niekoľko prázdnych adresárov:
$ mkdir dir1 dir2 dir3 dir4.
Overme si, či boli vytvorené požadované adresáre:
$ ls -l.
Teraz odstránime dir1 adresár a overte, či bol odstránený:
$ rmdir dir1. $ ls -l.
Podobným spôsobom môžeme použiť rmdir príkaz na odstránenie viacerých prázdnych adresárov naraz.
Odstránime zvyšné adresáre:
$ rmdir dir2 dir3 dir4.
Nakoniec skontrolujte, či boli odstránené všetky adresáre:
$ ls -l.
Tu môžeme vidieť, že ls príkaz nezobrazuje žiadny adresár.
V predchádzajúcej časti sme použili ls príkaz na overenie odstránenia adresára. Nemá však zmysel vykonávať ešte jeden príkaz len na overenie akcií predchádzajúcich príkazov.
V takýchto prípadoch môžeme povoliť podrobný režim pomocou -v
možnosť, ktorá poskytuje diagnostiku pre každý spracovávaný adresár.
Vytvorme rovnakú adresárovú štruktúru, akú sme vytvorili predtým:
$ mkdir dir1 dir2 dir3 dir4.
Teraz odstránime adresáre so zapnutým podrobným režimom:
$ rmdir -v dir1 dir2 dir3 dir4. $ ls -l.
Z vyššie uvedeného výstupu môžeme konštatovať, že všetky adresáre boli odstránené.
Často vytvárame podadresáre v súborovom systéme, čo nám umožňuje organizovať naše údaje správnym spôsobom. Pozrime sa, ako pracovať s prázdnymi podadresármi.
Ako je uvedené v prvom príklade, môžeme odstrániť viacero adresárov pomocou rmdir príkaz. Situácia sa však stáva zložitejšou, keď sú počet podadresárov veľké.
V takýchto prípadoch môžeme použiť -p
možnosť, ktorá odstráni adresár a všetkých jeho predkov. Pochopme to na príklade.
Najprv vytvorte štruktúru podadresárov:
$ mkdir -p dir1/dir2/dir3/dir4/dir5.
V tomto príklade sme použili -p
možnosť s príkaz mkdir na vytvorenie podadresárovej štruktúry.
Odstránime všetky tieto adresáre naraz:
$ rmdir -p -v dir1/dir2/dir3/dir4/dir5rmdir: odstránenie adresára, 'dir1/dir2/dir3/dir4/dir5' rmdir: odstránenie adresára, 'dir1/dir2/dir3/dir4' rmdir: odstránenie adresára, 'dir1/dir2/dir3' rmdir: odstránenie adresára, 'dir1/dir2' rmdir: odstránenie adresára, 'dir1'
Tu podrobný režim odstráni dir5 adresár a všetky jeho predchodcovské adresáre.
Už vieme, že rmdir môže odstrániť iba prázdne adresáre. Akýkoľvek pokus o odstránenie neprázdneho adresára bude mať za následok chybu. Hoci to poskytuje ochranu pred stratou údajov, v niektorých zriedkavých prípadoch to môže spôsobiť problém.
Napríklad, ak sa pokúsime odstrániť neprázdny adresár zo skriptu, ktorý sa spúšťa Jenkins potom úloha ohlási zlyhanie.
Aby sme to simulovali, skúsme odstrániť neprázdny adresár:
$ mkdir -p dir1/dir2/dir3/dir4/dir5. $ rmdir dir1 rmdir: nepodarilo sa odstrániť 'dir1': Adresár nie je prázdny.
Pre takéto chybové prípady môžeme použiť --ignore-fail-on-non-empty
možnosť, ktorá ignoruje všetky zlyhania, ku ktorým došlo v dôsledku neprázdneho adresára.
Použime túto možnosť s príkazom a skontrolujte návratovú hodnotu:
$ rmdir --ignore-fail-on-non-empty dir1. $ echo $? 0.
V tomto príklade vidíme, že príkaz nehlásil žiadnu chybu a nulová návratová hodnota označuje úspešné vykonanie príkazu. Je však dôležité poznamenať, že táto možnosť iba potlačí chybu a neodstráni neprázdny adresár.
Podobne ako pri iných príkazoch Linuxu môžeme použiť regulárne výrazy s rmdir príkaz. Pozrime sa na použitie nasledujúcich dvoch regulárnych výrazov:
?
– Zodpovedá presne jednému znaku.*
– Zhoduje sa s nulovým alebo viacerými výskytmi predchádzajúcich znakov.Najprv vytvorte niekoľko prázdnych adresárov:
$ mkdir dir1 dir2 dir-01 dir-02.
Teraz poďme použiť '?'
regulárny výraz s reťazcom "dir" na odstránenie dir1 a dir2 adresáre:
$ rmdir -v dir?rmdir: odstránenie adresára, 'dir1' rmdir: odstránenie adresára, 'dir2'
Tu vidíme, že príkaz odstránil správne adresáre.
Ďalej použite '*'
regulárny výraz na odstránenie ďalších dvoch adresárov:
$ rmdir -v dir-*rmdir: odstránenie adresára, 'dir-01' rmdir: odstránenie adresára, 'dir-02'
V tomto príklade vidíme, že ďalšie dva adresáre boli odstránené.
V tejto časti sme diskutovali o použití iba dvoch regulárnych výrazov. Môžeme však použiť aj ďalšie pokročilé regulárne výrazy s rmdir príkaz.
V tomto článku sme najprv videli základné použitie rmdir príkaz. Potom sme diskutovali o podrobnom režime a odstránení podadresárov. Ďalej sme videli, ako zvládnuť zlyhania, keď adresár nie je prázdny. Nakoniec sme diskutovali o tom, ako používať regulárne výrazy.