Ako odstrániť súbory a adresáre v termináli Linux

rm A   rmdir príkazy mazať súbory a adresáre v systéme Linux, MacOS a iných Unix-like operačné systémy. Sú podobné príkazom del a   deltree v systéme Windows a DOS. Tieto príkazy sú veľmi výkonné a majú pomerne veľa možností.

Je dôležité si uvedomiť, že súbory a adresáre vymazané pomocou rma rmdirnebudú presunuté do koša. Okamžite sa odstránia z vášho počítača. Ak súbory omylom odstránite pomocou týchto príkazov, budete ich môcť obnoviť iba zo zálohy.

Ako odstrániť súbory pomocou rm

Najjednoduchším prípadom je odstránenie jedného súboru z aktuálneho adresára. Zadajte rmpríkaz, medzeru a potom názov súboru, ktorý chcete odstrániť.

rm súbor_1.txt

Ak sa súbor nenachádza v aktuálnom pracovnom adresári, zadajte cestu k umiestneniu súboru.

rm ./path/to/the/file/file_1.txt

Môžete vložiť viac ako jeden názov súboru rm. Týmto spôsobom odstránite všetky zadané súbory.

rm súbor_2.txt súbor_3.txt

Zástupné znaky je možné použiť na výber skupín súborov, ktoré sa majú vymazať. Znak *predstavuje viac znakov a znak ?predstavuje jeden znak. Tento príkaz by vymazal všetky obrazové súbory png v aktuálnom pracovnom adresári.

rm * .png

Tento príkaz by vymazal všetky súbory, ktoré majú príponu jedného znaku. Týmto by sa napríklad odstránili súbory 1 a 2, ale nie súbor 12.

rm *.?

Ak je súbor chránený proti zápisu, pred odstránením súboru sa zobrazí výzva. Musíte odpovedať pomocou yalebo na stlačiť kláves „Enter“.

Na zníženie rizika použitia rmso zástupnými znakmi použite -i(interaktívnu) možnosť. To vyžaduje potvrdenie odstránenia každého súboru.

rm -i * .dat

Možnosť -f (sila) je opakom interaktívnej. Nezobrazuje výzvu na potvrdenie, aj keď sú súbory chránené proti zápisu.

rm -f nazov souboru

Ako odstrániť adresáre pomocou rm

Ak chcete odstrániť prázdny adresár, použite -d voľbu (adresár). Zástupné znaky ( *a ?) v názvoch adresárov môžete používať rovnako ako v prípade názvov súborov.

adresár rm -d

Ak zadáte viac ako jeden názov adresára, odstránia sa všetky zadané prázdne adresáre.

rm -d adresár1 adresár2 / cesta / do / adresár3

Ak chcete vymazať adresáre, ktoré nie sú prázdne, použite možnosť -r(rekurzívne). Aby bolo jasné, týmto sa odstránia adresáre a všetky súbory a podadresáre v nich obsiahnuté.

rm -r adresár1 adresár2 adresár3

Ak je adresár alebo súbor chránený proti zápisu, zobrazí sa výzva na potvrdenie odstránenia. Ak chcete vymazať adresáre, ktoré nie sú prázdne, a potlačiť tieto výzvy, použite možnosti -r(rekurzívne) a -f(vynútené) súčasne.

adresár rm -rf

Tu je potrebná opatrnosť. Urobiť chybu s rm -rfpríkazom by mohlo spôsobiť stratu údajov alebo poruchu systému. Je to nebezpečné a najlepšou politikou je opatrnosť. Na pochopenie štruktúry adresárov a súborov, ktoré budú rm -rfpríkazom vymazané , použite treepríkaz.

Použite  apt-get na inštaláciu tohto balíka do vášho systému, ak používate Ubuntu alebo inú distribúciu založenú na Debiane. V iných distribúciách Linuxu použite namiesto toho nástroj na správu balíkov vašej distribúcie Linux.

sudo apt-get inštalačný strom

Spustením treepríkazu sa vytvorí ľahko pochopiteľný diagram adresárovej štruktúry a súborov pod adresárom, z ktorého sa spúšťa.

strom

Môžete tiež zadať cestu k treepríkazu, aby spustil strom z iného adresára v súborovom systéme.

cesta k stromu / do / adresára

rmPríkaz má tiež --one-file-system, --no-preserve-root, --preserve-rootmožnosti, ale tie, ktoré sú odporúčané iba pre pokročilých používateľov. Ak niečo pokazíte, mohli by ste omylom vymazať všetky vaše systémové súbory. Ďalšie informácie nájdete na stránke manuálu príkazu.

Ako odstrániť adresáre pomocou rmdir

Existuje ďalší príkaz nazvaný rmdir, ktorý môžete použiť na odstránenie adresárov. Rozdiel medzi rma rmdirje v tom, že rmdirje možné vymazať iba prázdne adresáre. Nikdy nebude mazať súbory.

Najjednoduchším prípadom je odstránenie jedného prázdneho adresára. Rovnako rmmôžete odovzdať viac mien adresárov rmdiralebo cestu k nim.

Odstráňte jeden adresár v aktuálnom adresári tak, že jeho meno odovzdáte rmdir:

adresár rmdir

Odstráňte viac adresárov odovzdaním zoznamu mien   rmdir:

rmdir adresár1 adresár2 adresár3

Odstráňte adresár, ktorý sa nenachádza v aktuálnom adresári, zadaním úplnej cesty k tomuto adresáru:

adresár rmdir / cesta / do /

Ak sa pokúsite odstrániť priečinok, ktorý nie je prázdny, rmdirzobrazí sa chybové hlásenie. V nasledujúcom príklade rmdirúspešne a ticho vymaže clientsadresár, ale odmietne ho vymazať, projectspretože obsahuje súbory. projectsAdresár je ponechaná presne tak, ako to bolo a súbory v ňom sú nedotknuté.

Ak sa rmdirzobrazí chyba „Adresár nie je prázdny“, zastaví sa spracovanie adresárov, ktoré sa mu odovzdali na príkazovom riadku. Ak ste ho požiadali o odstránenie štyroch adresárov a v prvom boli súbory, rmdirzobrazí sa chybové hlásenie a nebudete robiť nič viac. Môžete ho prinútiť tieto chyby ignorovať pomocou --ignore-fail-on-non-emptyvoľby, aby sa spracovali ďalšie adresáre.

V nasledujúcom príklade boli odovzdané dva priečinky rmdir, a to sú work/reportsa work/quotes. Táto --ignore-fail-on-non-emptymožnosť bola zahrnutá do príkazu. work/reportsZložka obsahuje súbory v ňom, takže rmdirho nemožno odstrániť. Táto --ignore-fail-on-non-emptymožnosť vynúti rmdirignorovanie chyby a prechod na ďalší priečinok, ktorý potrebuje na spracovanie, čo je work/quotes. Toto je prázdny priečinok a rmdirvymaže sa.

Toto bol použitý príkaz.

rmdir --ignore-fail-on-non-prázdna práca / správy / práca / citácie

-p Možnosť (rodičia) môžete použiť  na odstránenie adresára a na odstránenie jeho nadradených adresárov. Tento trik funguje, pretože rmdirzačína v cieľovom adresári a potom sa vracia späť k rodičovi. Tento adresár by mal byť teraz prázdny, aby ho bolo možné odstrániť rmdir, a proces sa opakuje, keď sa vráti späť po zadanej ceste rmdir.

V nasledujúcom príklade je príkaz, ktorý je odovzdaný do rmdirznie:

rmdir -p práca / faktúry

Ako invoicesa workadresáre sú odstránené, ako bolo požadované.

Či už používate Bash alebo akýkoľvek iný shell, Linux poskytuje flexibilné a výkonné príkazy na odstránenie adresárov a súborov priamo z príkazového riadku terminálu. Niektorí uprednostňujú pracovný tok, ktorý sa točí okolo terminálu. Ostatní nemusia mať na výber. Môžu pracovať na serveroch bez nainštalovaného grafického používateľského rozhrania alebo na vzdialenej relácii v bezhlavom systéme, ako je napríklad Raspberry Pi. Tieto príkazy sú ideálne pre túto skupinu ľudí.

Ale nech uprednostňujete akýkoľvek typ pracovného toku, tieto príkazy sa dajú veľmi dobre zahrnúť do shell skriptov. Ak je skript spustený cronúlohou, môže pomôcť automatizovať bežné úlohy spojené s údržbou, ako je napríklad čistenie nežiaducich súborov denníka. Ak preskúmate tento prípad použitia, nezabudnite na silu týchto príkazov, všetko starostlivo otestujte a vždy si uchováte nedávnu zálohu.