Android

Kako ukloniti (izbrisati) direktorij u Linuxu

SysTools PDF Watermark Remover | Delete PDF Watermarks Easily!

SysTools PDF Watermark Remover | Delete PDF Watermarks Easily!

Sadržaj:

Anonim

Postoji nekoliko različitih načina uklanjanja direktorija u Linux sustavima. Ako koristite Desktop upravitelj datoteka, poput datoteka Gnome ili KDE-ovog dupina, tada možete izbrisati datoteke i mape koristeći grafičko korisničko sučelje upravitelja. Ali ako radite na poslužitelju bez glave ili želite ukloniti više direktorija odjednom, vaša je najbolja opcija brisanje direktorija (mapa) iz naredbenog retka.

, objasnit ćemo kako izbrisati direktorije u Linuxu pomoću naredbi rmdir , rm i find .

Prije nego što počneš

Kada uklonite mapu pomoću svog upravitelja datoteka Desktop, direktorij se zapravo premješta u otpad i može se lako vratiti.

Budite posebno oprezni pri uklanjanju datoteka ili mapa iz naredbenog retka, jer jednom kad se mapa izbriše pomoću naredbi objasnjenih, nije je moguće u potpunosti oporaviti.

U većini Linux datotečnih sustava za brisanje imenika potrebno je dopuštenje za pisanje u direktorij i njegov sadržaj. Inače ćete dobiti pogrešku "Operacija nije dopuštena".

Imena direktorija s razmakom u njima moraju se ukloniti s crtanjem unatrag ( / ).

Uklanjanje direktorija s rmdir

rmdir je uslužni program naredbenog retka za brisanje praznih direktorija. Korisno je kada želite izbrisati direktorij samo ako je prazan, bez potrebe za provjerom je li direktorij prazan ili ne.

Da biste izbrisali direktorij s rmdir , upišite naredbu iza koje slijedi ime mape koju želite ukloniti. Na primjer, za brisanje mape pod nazivom dir1 upišite:

rmdir dir1

Ako direktorij nije prazan, dobit ćete sljedeću pogrešku:

rmdir: failed to remove 'dir1': No such file or directory

U ovom ćete slučaju trebati upotrijebiti naredbu rm ili ručno ukloniti sadržaj direktorija prije nego što ga budete mogli izbrisati.

Uklanjanje imenika s rm

rm je uslužni program za brisanje datoteka i mapa. Za razliku od rmdir a, rm naredba može izbrisati i prazne i ne-prazne mape.

Prema zadanim postavkama, ako se koristi bez ikakvih opcija, rm ne uklanja direktorije. Da biste izbrisali praznu mapu, upotrijebite opciju -d ( --dir ) i izbrišite ne praznu mapu, a sav njezin sadržaj koristite opciju -r ( --recursive ili -R ).

Na primjer za brisanje mape pod nazivom dir1 zajedno sa svim njezinim sadržajem upišite:

rm -r dir1

Ako je direktorij ili datoteka unutar mape zaštićena pisanjem, od vas će se zatražiti da potvrdite brisanje. Za uklanjanje direktorija bez traženja upotrijebite opciju -f :

rm -rf dir1

Da biste uklonili više direktorija odjednom, upotrijebite naredbu rm a zatim slijede nazivi imenika odvojenih razmakom. Naredba u nastavku uklonit će svaki navedeni direktorij i njihov sadržaj:

rm -r dir1 dir2 dir3

Opcija -i govori rm da vas zatraži da potvrdite brisanje svakog poddirektorija i datoteke. Ako direktorij sadrži puno datoteka, to može biti malo neugodno, pa biste mogli razmotriti upotrebu opcije -I što će vas zatražiti samo jednom prije nego što nastavite sa brisanjem.

rm -rI dir1

Za uklanjanje direktorija upišite y i pritisnite Enter .

rm: remove 1 argument recursively? y

Možete koristiti i regularna proširenja za podudaranje i brisanje više direktorija. Na primjer, za uklanjanje svih direktorija prvog nivoa u trenutnoj mapi koja završava s _bak , upotrijebili biste sljedeću naredbu:

rm -r *_bak

Korištenje redovitih ekspanzija prilikom uklanjanja direktorija može biti rizično. Prvo je preporučiti popis direktorija s naredbom ls da biste mogli vidjeti koje će se mape izbrisati prije pokretanja rm naredbe.

Uklanjanje direktorija s find

find je uslužni program naredbenog retka koji vam omogućuje pretraživanje datoteka i mapa na temelju određenog izraza i izvršavanje akcije na svakoj podudarnoj datoteci ili mapi.

Najčešći scenarij je upotreba naredbe find za brisanje mapa na temelju uzorka. Na primjer, da biste izbrisali sve mape koje završavaju _cache u trenutnoj radnoj mapi koju biste pokrenuli:

find. -type d -name '*_cache' -exec rm -r {} +

Analiziramo gornju naredbu:

  • /dir - rekurzivno pretražujte u trenutnom radnom imeniku ( . ). -type d - ograničava pretraživanje u direktorijima. -name '*_cache' - pretražite samo direktorije koje završavaju _cache -exec - izvršava vanjsku naredbu s neobaveznim argumentima, u ovom slučaju to je rm -r . {} + - dodaje pronađene datoteke na kraj naredbe rm .

Uklanjanje svih praznih direktorija

Da biste uklonili sve prazne mape u stablu direktorija, upotrijebili biste:

find /dir -type d -empty -delete

Ovdje je objašnjenje korištenih opcija:

  • /dir - rekurzivno pretražujte u /dir direktoriju. -type d - ograničava pretraživanje u direktorijima. -empty - ograničava pretraživanje samo na prazne imenike. -delete - briše sve pronađene prazne direktorije u podrezi. -delete može izbrisati samo prazne mape.

Koristite -delete opciju s krajnjim oprezom. Naredbeni redak nalazi se procjenjuje kao izraz i ako prvo -delete opciju -delete , naredba će izbrisati sve ispod početnih točaka koje ste naveli. Uvijek koristite -delete kao zadnju opciju i prije brisanja prvo testirajte naredbu bez opcije -delete .

/ bin / rm: Popis argumenata je predug

Ova se poruka pogreške pojavljuje kada pomoću naredbe rm uklonite mapu koja sadrži ogroman broj datoteka. To se događa jer je broj datoteka veći od ograničenja sustava za veličinu argumenta naredbenog retka.

Postoji nekoliko različitih rješenja ovog problema. Na primjer, možete se cd u direktorij i ručno ili pomoću petlje za uklanjanje podmapa, jednu po jednu.

Najjednostavnije rješenje je prvo izbrisati sve datoteke unutar mape naredbom find a zatim izbrisati direktorij:

find /dir -type f -delete && rm -r /dir

Zaključak

Pomoću rm i find možete brzo i učinkovito izbrisati direktorije na temelju različitih kriterija.

Brisanje direktorija je jednostavan i lagan postupak, ali morate biti oprezni da ne brišete važne podatke.

rm rmdir pronaći terminal