Otázka: Jak mohu odstranit prázdný adresář, adresář se soubory a podadresáře v Linux / Unix? Jak mohu také efektivně použít alias pro příkazy rm a rmdir?
Odpověď: Prázdný adresář můžete odstranit příkazem rmdir nebo adresář s obsahem příkazem rm. Odstranění lze provést interaktivně, rekurzivně, násilně nebo prostřednictvím aliasu. V tomto článku si projdeme 5 praktických příkladů, které ukazují, jak odstranit adresáře v systémech podobných Linuxu.
1. Jak odstranit prázdné adresáře v Unixu?
Příkaz rmdir odstraní prázdné adresáře. tj. adresář bez jakýchkoli podadresářů nebo souborů.
rmdir DIRNAME
Abyste se ujistili, že mažete prázdný adresář, měli byste použít příkaz rmdir. Pokud jsou v tomto adresáři nějaké
soubory / adresáře, zobrazí se následující chyba.
$ rmdir test rmdir: failed to remove `test': Directory not empty
2. Jak odstranit vnořené prázdné adresáře v Linuxu?
Použijte volbu -p k odstranění vnořených adresářů, jak je ukázáno níže.
$ rmdir -p dir1/dir2/dir3
Poznámka:Nepropadejte panice, jak může být adresář vnořen a také prázdný. Je vnořený, když vyvoláváte příkaz, ale nejprve odstraní nejvnitřnější adresář a vytvoří prázdný adresář další úrovně a poté tento adresář odstraní. A pokračuje v tom.
rmdir -p dir1/dir2/dir3 je ekvivalentní
$ rmdir dir1/dir2/dir3 dir1/dir2 dir1
3. Smazat adresář, který má obsah (tj. adresář se soubory a podadresáři)
Někdy můžete chtít smazat adresář, který obsahuje obsah. Můžete to udělat pomocí příkazu rm, jak je ukázáno níže.
$ rm -rf DIRNAME
Tímto smažete adresář včetně všech souborů a podadresářů. To je velmi nebezpečné, když jej použijete náhodně, protože tyto soubory nelze snadno obnovit. Proto důrazně doporučujeme, abyste byli opatrní a dvakrát si to rozmysleli, než spustíte příkaz rm -rf.
4. Interaktivně mazat:Vyhněte se použití -f v rm v raných fázích.
Pokud jste někdy omylem spustili rm -rf, možná budete chtít vážně zvážit použití volby -i k interaktivnímu odstranění souborů a složek, jak je uvedeno níže (zejména pod rootem).
Odstranění adresáře rekurzivně a interaktivně.
# rm -ir DIRNAME
Interaktivní mazání souboru.
# rm -i FILENAME
Pokud jste nováček v Linuxu, nepoužívejte volbu -f v rootu, dokud se s příkazovým řádkem moc nezorientujete. Místo toho zkuste použít volbu -i, jak je uvedeno výše.
5. Užitečné aliasy rm a rmdir
Interaktivní možnost rm můžete nastavit jako výchozí příkaz rm pomocí aliasu, jak je uvedeno níže.
Alias, aby byl rm interaktivní
# alias rm="rm -i"
Při použití příkazu rm bude vždy proveden příkaz rm -i a před smazáním jakýchkoli souborů bude požádán o potvrzení. Ale buďte opatrní, že když zadáte volbu -f, nedostanete interaktivní výzvu, i když v ní máte volbu -i.
Například v následujícím příkazu -i nemá žádný účinek.
$ rm -irf DIRNAME
V tomto případě je výše uvedený příkaz (s aliasem rm) ekvivalentní následujícímu příkazu.
$ rm -rf DIRNAME
Všechny následující možnosti rm jsou platné a mají stejnou funkci. tj. rekurzivní a vynucené odstranění.
- rm -fr
- rm -rf
- rm -r -f
- rm -f -r
Alias, aby byl rm podrobný
Pokud chcete, aby rm nebo rmdir vytiskl, co dělá, můžete použít tradiční podrobnou volbu.
alias rm="rm -v" alias rmdir="rmdir -v"
Poznámka:Toto nastavení nastavte jako trvalé přidáním příkazu alias buď do souboru ~/.bash_profile (nebo) ~/.bashrc.
Můžete odstranit soubory nebo adresáře, prázdné nebo neprázdné, vnořené nebo jednotlivé pomocí příkazů rm a rmdir. Před vyvoláním příkazu si však smazání dvakrát rozmyslete, protože bude obtížné obnovit soubor, jakmile jej omylem smažete.
Už jste někdy omylem smazali soubory pomocí příkazu rm nebo rm -r? Jak jste tu situaci řešili? Podělte se s námi o svůj příběh v sekci komentářů níže.