Primjeri Linux rmdir naredbe za početnike


Kao korisnici Linuxa, redovito komuniciramo s datotekama i direktorijima. Jedna uobičajena operacija koju korisnici izvode je uklanjanje direktorija iz datotečnog sustava. Međutim, moramo biti posebno oprezni prilikom uklanjanja imenika. Budući da nemarno izvedeni postupci uklanjanja mogu rezultirati gubitkom podataka.

U ovom članku prilagođenom početnicima naučit ćemo o naredbi rmdir. Također ćemo razgovarati o nekim praktičnim primjerima koji se mogu koristiti u svakodnevnom životu.

Sintaksa naredbe rmdir slična je ostalim Linux naredbama. Na visokoj razini podijeljen je na dva dijela – opcije i argumente:

$ rmdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> ...

Ovdje uglate zagrade ([]) predstavljaju neobavezne argumente, dok uglate zagrade (<>) predstavljaju obavezne argumente.

Osnovna upotreba naredbe rmdir u Linuxu

Kao što naziv sugerira, naredba rmdir koristi se za uklanjanje direktorija. Međutim, važno je napomenuti da može ukloniti samo prazne direktorije. U ovom odjeljku vidjet ćemo osnovnu upotrebu naredbe rmdir.

Prvo stvorite nekoliko praznih direktorija:

$ mkdir dir1 dir2 dir3 dir4

Provjerimo jesu li stvoreni potrebni direktoriji:

$ ls -l

Sada uklonimo direktorij dir1 i potvrdimo da je uklonjen:

$ rmdir dir1
$ ls -l

Na sličan način, možemo koristiti naredbu rmdir za uklanjanje više praznih direktorija odjednom.

Uklonimo preostale direktorije:

$ rmdir dir2 dir3 dir4

Na kraju, provjerite jesu li svi direktoriji uklonjeni:

$ ls -l

Ovdje možemo vidjeti da naredba ls ne prikazuje nijedan direktorij.

U prethodnom smo odjeljku koristili naredbu ls za provjeru uklanjanja imenika. Međutim, nema smisla izvršiti još jednu naredbu samo da biste provjerili radnje prethodnih naredbi.

U takvim slučajevima možemo omogućiti opširni način rada pomoću opcije -v, koja pruža dijagnostiku za svaki obrađeni direktorij.

Kreirajmo istu strukturu imenika koju smo prethodno stvorili:

$ mkdir dir1 dir2 dir3 dir4

Sada uklonimo direktorije s uključenim verbose načinom rada:

$ rmdir -v dir1 dir2 dir3 dir4
$ ls -l

Iz gornjeg rezultata možemo zaključiti da su svi imenici uklonjeni.

Često stvaramo poddirektorije na datotečnom sustavu, što nam omogućuje da svoje podatke organiziramo na pravilan način. Pogledajmo kako raditi s praznim poddirektorijima.

Kao što je objašnjeno u prvom primjeru, možemo ukloniti više direktorija pomoću naredbe rmdir. Međutim, situacija postaje škakljiva kada je broj poddirektorija velik.

U takvim slučajevima možemo koristiti opciju -p koja uklanja direktorij i sve njegove pretke. Shvatimo ovo na primjeru.

Najprije stvorite strukturu poddirektorija:

$ mkdir -p dir1/dir2/dir3/dir4/dir5

U ovom smo primjeru upotrijebili opciju -p s naredbom mkdir za stvaranje strukture poddirektorija.

Uklonimo sve ove direktorije odjednom:

$ rmdir -p -v dir1/dir2/dir3/dir4/dir5

rmdir: removing directory, 'dir1/dir2/dir3/dir4/dir5'
rmdir: removing directory, 'dir1/dir2/dir3/dir4'
rmdir: removing directory, 'dir1/dir2/dir3'
rmdir: removing directory, 'dir1/dir2'
rmdir: removing directory, 'dir1'

Ovdje verbose način uklanja direktorij dir5 i sve njegove direktorije prethodnika.

Već znamo da rmdir može ukloniti samo prazne direktorije. Svaki pokušaj uklanjanja direktorija koji nije prazan rezultirat će pogreškom. Iako to pruža zaštitu od gubitka podataka, u nekim rijetkim slučajevima može stvoriti problem.

Na primjer, ako pokušamo ukloniti neprazan direktorij iz skripte koju Jenkins izvršava tada će posao prijaviti neuspjeh.

Da ovo simuliramo, pokušajmo ukloniti neprazan direktorij:

$ mkdir -p dir1/dir2/dir3/dir4/dir5
$ rmdir dir1

rmdir: failed to remove 'dir1': Directory not empty

Za takve slučajeve pogrešaka možemo upotrijebiti opciju --ignore-fail-on-non-empty koja zanemaruje sve pogreške do kojih je došlo zbog nepraznog direktorija.

Upotrijebimo ovu opciju s naredbom i provjerimo povratnu vrijednost:

$ rmdir --ignore-fail-on-non-empty dir1
$ echo $?

0

U ovom primjeru možemo vidjeti da naredba nije prijavila nikakvu pogrešku, a vraćena vrijednost nula označava uspješno izvršenje naredbe. Međutim, važno je napomenuti da ova opcija samo potiskuje pogrešku i ne uklanja neprazan direktorij.

Slično ostalim Linux naredbama, možemo koristiti regularne izraze s naredbom rmdir. Pogledajmo upotrebu sljedeća dva regularna izraza:

  • ? – Odgovara točno jednom znaku.
  • * – odgovara nula ili više pojavljivanja prethodnih znakova.

Prvo stvorite nekoliko praznih direktorija:

$ mkdir dir1 dir2 dir-01 dir-02

Sada upotrijebimo regularni izraz ? s nizom 'dir' za uklanjanje direktorija dir1 i dir2:

$ rmdir -v dir?

rmdir: removing directory, 'dir1'
rmdir: removing directory, 'dir2'

Ovdje možemo vidjeti da je naredba uklonila ispravne direktorije.

Zatim upotrijebite regularni izraz * za uklanjanje druga dva direktorija:

$ rmdir -v dir-*

rmdir: removing directory, 'dir-01'
rmdir: removing directory, 'dir-02'

U ovom primjeru možemo vidjeti da su ostala dva direktorija uklonjena.

U ovom odjeljku raspravljali smo o upotrebi samo dva regularna izraza. Međutim, možemo koristiti i druge napredne regularne izraze s naredbom rmdir.

U ovom smo članku prvo vidjeli osnovnu upotrebu naredbe rmdir. Zatim smo razgovarali o opširnom načinu rada i uklanjanju poddirektorija. Zatim smo vidjeli kako postupati s pogreškama kada direktorij nije prazan. Na kraju smo razgovarali o tome kako koristiti regularne izraze.