Linux rmdir -komentoesimerkkejä aloittelijoille


Linux-käyttäjinä olemme vuorovaikutuksessa tiedostojen ja hakemistojen kanssa säännöllisesti. Yksi yleinen toiminto, jota käyttäjät suorittavat, on hakemistojen poistaminen tiedostojärjestelmästä. Meidän on kuitenkin oltava erityisen varovaisia poistaessasi hakemistoja. Koska huolimattomasti suoritetut poistotoimenpiteet voivat johtaa tietojen menetykseen.

Tässä aloittelijaystävällisessä artikkelissa opimme rmdir-komennosta. Keskustelemme myös joistakin käytännön esimerkeistä, joita voidaan käyttää joka päivä.

Rmdir-komennon syntaksi on samanlainen kuin muiden Linux-komentojen. Korkealla tasolla se on jaettu kahteen osaan – vaihtoehtoihin ja argumentteihin:

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

Tässä hakasulkeet ([]) edustavat valinnaisia argumentteja, kun taas kulmasulut (<>) edustavat pakollisia argumentteja.

rmdir-komennon peruskäyttö Linuxissa

Kuten nimestä voi päätellä, rmdir-komentoa käytetään poistamaan hakemisto. On kuitenkin tärkeää huomata, että se voi poistaa vain tyhjiä hakemistoja. Tässä osiossa näemme rmdir-komennon peruskäytön.

Luo ensin muutama tyhjä hakemisto:

$ mkdir dir1 dir2 dir3 dir4

Varmistetaan, että tarvittavat hakemistot on luotu:

$ ls -l

Nyt poistetaan dir1-hakemisto ja tarkistetaan, että se on poistettu:

$ rmdir dir1
$ ls -l

Samalla tavalla voimme käyttää rmdir-komentoa useiden tyhjien hakemistojen poistamiseen kerralla.

Poistetaan loput hakemistot:

$ rmdir dir2 dir3 dir4

Varmista lopuksi, että kaikki hakemistot on poistettu:

$ ls -l

Täällä voimme nähdä, että ls-komento ei näytä mitään hakemistoa.

Edellisessä osiossa käytimme ls-komentoa hakemiston poiston tarkistamiseen. Ei kuitenkaan ole järkevää suorittaa yhtä komentoa lisää vain edellisten komentojen toimintojen tarkistamiseksi.

Tällaisissa tapauksissa voimme ottaa käyttöön monisanaisen tilan -v-vaihtoehdolla, joka tarjoaa diagnostiset tiedot jokaiselle käsitellylle hakemistolle.

Luodaan sama hakemistorakenne, jonka loimme aiemmin:

$ mkdir dir1 dir2 dir3 dir4

Poistetaan nyt hakemistot, joissa monisanainen tila on käytössä:

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

Yllä olevasta tuloksesta voimme päätellä, että kaikki hakemistot on poistettu.

Luomme usein tiedostojärjestelmään alihakemistoja, joiden avulla voimme järjestää tietomme oikealla tavalla. Katsotaan kuinka toimia tyhjien alihakemistojen kanssa.

Kuten ensimmäisessä esimerkissä kerrottiin, voimme poistaa useita hakemistoja rmdir-komennolla. Tilanne muuttuu kuitenkin hankalaksi, kun alihakemistoja on paljon.

Tällaisissa tapauksissa voimme käyttää vaihtoehtoa -p, joka poistaa hakemiston ja kaikki sen esi-isät. Ymmärretään tämä esimerkin avulla.

Luo ensin alihakemistorakenne:

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

Tässä esimerkissä olemme käyttäneet valitsinta -p komennon mkdir kanssa alihakemistorakenteen luomiseen.

Poistetaan kaikki nämä hakemistot yhdellä kertaa:

$ 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'

Tässä monisanainen tila poistaa dir5-hakemiston ja kaikki sen esi-isien hakemistot.

Tiedämme jo, että rmdir voi poistaa vain tyhjiä hakemistoja. Jokainen yritys poistaa ei-tyhjä hakemisto johtaa virheeseen. Vaikka tämä suojaa tietojen katoamista vastaan, se voi joissain harvoissa tapauksissa aiheuttaa ongelmia.

Jos esimerkiksi yritämme poistaa ei-tyhjän hakemiston skriptistä, jota Jenkins suorittaa, työ ilmoittaa epäonnistumisesta.

Tämän simuloimiseksi yritetään poistaa ei-tyhjä hakemisto:

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

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

Tällaisissa virhetapauksissa voimme käyttää vaihtoehtoa --ignore-fail-on-non-empty, joka jättää huomioimatta kaikki viat, jotka tapahtuivat ei-tyhjän hakemiston vuoksi.

Käytetään tätä vaihtoehtoa komennon kanssa ja tarkistetaan palautusarvo:

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

0

Tässä esimerkissä voimme nähdä, että komento ei raportoinut virheestä ja nolla palautusarvo osoittaa onnistuneen komennon suorituksen. On kuitenkin tärkeää huomata, että tämä vaihtoehto vain vaimentaa virheen eikä poista ei-tyhjää hakemistoa.

Kuten muutkin Linux-komennot, voimme käyttää säännöllisiä lausekkeita rmdir-komennon kanssa. Katsotaanpa seuraavien kahden säännöllisen lausekkeen käyttöä:

  • ? – Se vastaa täsmälleen yhtä merkkiä.
  • * – Se vastaa nollaa tai useampaa edellistä merkkiä.

Luo ensin muutama tyhjä hakemisto:

$ mkdir dir1 dir2 dir-01 dir-02

Käytä nyt säännöllistä lauseketta ? merkkijonon dir kanssa poistaaksesi dir1- ja dir2-hakemistot:

$ rmdir -v dir?

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

Täällä voimme nähdä, että komento poisti oikeat hakemistot.

Käytä seuraavaksi säännöllistä lauseketta * kahden muun hakemiston poistamiseen:

$ rmdir -v dir-*

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

Tässä esimerkissä voimme nähdä, että kaksi muuta hakemistoa on poistettu.

Tässä osiossa keskustelimme vain kahden säännöllisen lausekkeen käytöstä. Voimme kuitenkin käyttää myös muita kehittyneitä säännöllisiä lausekkeita rmdir-komennolla.

Tässä artikkelissa näimme ensinnäkin rmdir-komennon peruskäytön. Sitten keskustelimme verbose-tilasta ja alihakemistojen poistamisesta. Seuraavaksi näimme kuinka käsitellä vikoja, kun hakemisto ei ole tyhjä. Lopuksi keskustelimme säännöllisten lausekkeiden käytöstä.