Како избрисати датотеке и директоријуме у Линук терминалу

Naredbe rm i rmdir služe za uklanjanje datoteka i direktorijuma na Linux, macOS i drugim operativnim sistemima sličnim Unix-u. One su ekvivalentne naredbama del i deltree koje se koriste u Windows-u i DOS-u. Ove komande su izuzetno snažne i nude brojne opcije.

Važno je naglasiti da datoteke i direktorijumi obrisani pomoću rm i rmdir se ne premeštaju u korpu za otpatke. Oni se trajno uklanjaju sa vašeg sistema. Ukoliko slučajno izbrišete datoteke ovim komandama, jedini način da ih povratite je putem rezervne kopije.

Uklanjanje datoteka pomoću rm

Najjednostavniji slučaj je brisanje jedne datoteke koja se nalazi u trenutnom direktorijumu. Unesite naredbu rm, zatim razmak i nakon toga naziv datoteke koju želite da obrišete.

rm fajl1.txt

Ukoliko se datoteka ne nalazi u trenutnom radnom direktorijumu, morate navesti punu putanju do lokacije datoteke.

rm ./putanja/do/datoteke/fajl1.txt

Komandi rm možete proslediti i više naziva datoteka. Na taj način ćete obrisati sve navedene datoteke odjednom.

rm fajl2.txt fajl3.txt

Džokeri se mogu koristiti za odabir grupa datoteka koje želite obrisati. Simbol * predstavlja više znakova, dok ? predstavlja jedan znak. Sledeća naredba bi izbrisala sve PNG slikovne datoteke u trenutnom radnom direktorijumu.

rm *.png

Ova komanda bi obrisala sve datoteke čije ekstenzije imaju samo jedan karakter. Na primer, ovo bi obrisalo fajl.1 i fajl.2, ali ne i fajl.12.

rm *.?

Ako je datoteka zaštićena od pisanja, sistem će od vas zatražiti potvrdu pre nego što se datoteka obriše. Potrebno je da odgovorite sa y ili n i pritisnete taster „Enter“.

Da biste smanjili rizik od nenamernog brisanja, koristite opciju -i (interaktivno). Ona zahteva od vas da potvrdite brisanje svake datoteke pojedinačno.

rm -i *.dat

Opcija -f (force) je suprotna od interaktivne. Ona ne traži potvrdu čak i ako su datoteke zaštićene od pisanja.

rm -f naziv_datoteke

Uklanjanje direktorijuma pomoću rm

Da biste uklonili prazan direktorijum, koristite opciju -d (direktorijum). Možete koristiti džoker simbole (* i ?) u nazivima direktorijuma isto kao i kod naziva datoteka.

rm -d direktorijum

Navođenje više naziva direktorijuma briše sve navedene prazne direktorijume.

rm -d direktorijum1 direktorijum2 /putanja/do/direktorijuma3

Da biste obrisali direktorijume koji nisu prazni, koristite opciju -r (rekurzivno). Ovo uklanja direktorijume kao i sve datoteke i poddirektorijume koji se nalaze u njima.

rm -r direktorijum1 direktorijum2 direktorijum3

Ukoliko je direktorijum ili datoteka zaštićena od pisanja, sistem će od vas zatražiti da potvrdite brisanje. Da biste izbrisali direktorijume koji nisu prazni i da biste izbegli ove zahteve za potvrdom, koristite opcije -r (rekurzivno) i -f (prisilno).

rm -rf direktorijum

Ovde je potreban oprez. Ako pogrešite sa komandom rm -rf, može doći do gubitka podataka ili čak pada sistema. Oprez je najvažniji. Da biste razumeli strukturu direktorijuma i datoteka koje će biti obrisane komandom rm -rf, koristite komandu tree.

Koristite apt-get da instalirate ovaj paket na vaš sistem ako koristite Ubuntu ili neku drugu distribuciju baziranu na Debianu. U drugim Linux distribucijama, koristite alatku za upravljanje paketima vaše Linux distribucije.

sudo apt-get install tree

Pokretanje komande tree prikazuje jednostavan dijagram strukture direktorijuma i datoteka ispod direktorijuma iz kojeg se pokreće.

tree

Možete navesti putanju komandi tree kako biste je naterali da pokrene stablo iz drugog direktorijuma u ​​sistemu datoteka.

tree putanja/do/direktorijuma

Komanda rm takođe ima opcije --one-file-system, --no-preserve-root, --preserve-root, ali one se preporučuju samo za napredne korisnike. Ako nešto pogrešite, mogli biste slučajno izbrisati sve sistemske datoteke. Konsultujte stranicu priručnika za više informacija.

Uklanjanje direktorijuma pomoću rmdir

Postoji još jedna naredba, koja se zove rmdir, a koju možete koristiti za brisanje direktorijuma. Razlika između rm i rmdir je u tome što rmdir može da briše samo prazne direktorijume. Nikada neće izbrisati datoteke.

Najjednostavniji slučaj je brisanje jednog praznog direktorijuma. Kao i kod rm, možete proslediti više imena direktorijuma u rmdir ili putanju do direktorijuma.

Izbrišite jedan direktorijum u trenutnom direktorijumu tako što ćete proslediti njegovo ime u rmdir:

rmdir direktorijum

Izbrišite više direktorijuma tako što ćete proslediti listu imena u rmdir:

rmdir direktorijum1 direktorijum2 direktorijum3

Izbrišite direktorijum koji nije u trenutnom direktorijumu tako što ćete navesti punu putanju do tog direktorijuma:

rmdir /putanja/do/direktorijuma

Ako pokušate da izbrišete direktorijum koji nije prazan, rmdir će vam prikazati poruku o grešci. U sledećem primeru rmdir uspešno i tiho briše direktorijum klijenti, ali odbija da izbriše direktorijum projekti jer sadrži datoteke. Direktorijum projekti je ostavljen onakav kakav je bio i datoteke u njemu su netaknute.

Kada rmdir prijavi grešku „Direktorijum nije prazan“, on prestaje da obrađuje direktorijume koji su mu prosleđeni na komandnoj liniji. Ako ste od njega tražili da izbriše četiri direktorijuma i da je prvi imao datoteke u njemu, rmdir bi vam prikazao poruku o grešci i više ništa ne bi uradio. Možete ga naterati da ignoriše ove greške pomoću opcije --ignore-fail-on-non-empty tako da se drugi direktorijumi obrade.

U sledećem primeru, dve fascikle su prosleđene u rmdir, to su rad/izveštaji i rad/citati. Opcija --ignore-fail-on-non-empty je uključena u komandu. Fascikla rad/izveštaji ima datoteke u sebi, tako da rmdir ne može da je izbriše. Opcija --ignore-fail-on-non-empty primorava rmdir da ignoriše grešku i pređe na sledeću fasciklu koju treba da obradi, a to je rad/citati. Ovo je prazna fascikla, a rmdir je briše.

Ovo je bila komanda koja je korišćena:

rmdir --ignore-fail-on-non-empty rad/izveštaji /rad/citati

Možete koristiti opciju -p (roditelji) da izbrišete direktorijum i da izbrišete njegove roditeljske direktorijume. Ovaj trik funkcioniše jer rmdir počinje sa ciljnim direktorijumom, a zatim se vraća unazad do nadređenog. Taj direktorijum bi sada trebalo da bude prazan, tako da ga rmdir može izbrisati, a proces se ponavlja vraćajući se na putanju koja je data rmdir-u.

U sledećem primeru komanda koja se prosleđuje u rmdir je:

rmdir -p rad/fakture

I fakture i rad direktorijumi se brišu na zahtev.

Bez obzira da li koristite Bash ili bilo koju drugu ljusku, Linux vam pruža fleksibilne i moćne komande za brisanje direktorijuma i datoteka direktno sa komandne linije terminala. Neki ljudi više vole da imaju tok posla koji se vrti oko terminala. Drugi možda nemaju izbora po tom pitanju. Možda rade na serverima bez instaliranog GUI-a ili na udaljenoj sesiji na sistemu bez glave kao što je Raspberry Pi. Ove komande su savršene za tu grupu ljudi.

Ali koji god tip toka posla želite, ove komande se veoma dobro mogu uključiti u shell skripte. Ako je skripta pokrenuta cron poslom, ona može pomoći u automatizaciji rutinskih zadataka održavanja, kao što je čišćenje nepotrebnih datoteka logova. Ako istražujete taj slučaj upotrebe, zapamtite snagu ovih komandi, pažljivo testirajte sve i uvek imajte nedavnu rezervnu kopiju.