Prázdné adresáře jsou v souborovém systému Linuxu mnohokrát zahlceny a každý z nich se stává obtížným úkolem ručně vyhledat a odstranit. Příkaz rmdir (odebrat adresář ) se v Linuxu používá k mazání prázdných složek.
Příkaz je poměrně jednoduchý na použití a základní syntaxe je:
$ rmdir <empty folder name1> <empty folder name1> ... <empty folder nameN>
Zde „název prázdné složky1 ‘, ‘název prázdné složky2 ‘ atd. jsou názvy složek včetně úplné cesty. Pokud jsou složky ve stejném adresáři, pak, jak už možná víte, není třeba zapisovat úplné cesty.
Můžete také použít zástupné výrazy k odstranění prázdných adresářů se vzory v jejich názvech. Chcete-li například odstranit prázdné adresáře s podřetězcem ‘test ‘ v jejich jménu spusťte:
$ rmdir *test*
Chcete-li však použít rmdir vždy musíme zadat název (nebo úplnou cestu) každého prázdného adresáře, který má být odstraněn. V rmdir není žádná možnost rekurzivně hledat prázdné adresáře a pak je odstranit.
V takových případech využíváme funkce příkazu find.
Najděte a odstraňte prázdné adresáře v Linuxu
Příkaz Najít se používá k vyhledávání souborů a složek v Linuxu na základě různých parametrů, jako je název souboru, velikost, typ atd. Použijeme najít k rekurzivnímu určení prázdných adresářů a následnému spuštění rmdir pro smazání nalezených adresářů.
Použijte argument '-empty'
hledat prázdné objekty a zadat '-type d'
najít pouze adresáře.
$ find path_of_folder_to_search -type d -empty
Chcete-li rekurzivně najít prázdné adresáře ve stejné složce, spusťte:
$ find . -type d -empty
Nyní, protože již máme rekurzivně nalezený seznam prázdných adresářů, použijeme '-exec'
argument příkazu find ke spuštění rmdir nad nimi.
$ find . -type d -empty -exec rmdir {} \;
Zástupný symbol {}
nahradí každý záznam v seznamu nalezených adresářů a '\;'
znamená konec příkazu, který se má provést.
Nicméně i s tímto provede pouze jedno kolo hledání a odstraní adresáře, které jsou prázdné, ale neodstraní adresáře, které se vyprázdní po prvním kole mazání.
K vyřešení tohoto problému jednoduše použijeme '-delete'
volba, která opakovaně smaže všechny prázdné adresáře až do adresáře nejvyšší úrovně.
$ find . -type d -empty -delete
Takto můžeme v Linuxu rekurzivně odstranit všechny prázdné adresáře.
Závěr
Naučili jsme se používat rmdir příkaz a najít příkaz v Linuxu k rekurzivnímu mazání prázdných adresářů. Další informace o těchto příkazech naleznete v příslušných manuálových stránkách:
$ man rmdir $ man find
Děkujeme za přečtení a níže se podělte o své myšlenky!