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 – vaihtoehdot ja argumentit:

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.

Poista tyhjä hakemisto Linuxissa

Luo ensin muutama tyhjä hakemisto:

mkdir dir1 dir2 dir3 dir4

Varmistetaan, että tarvittavat hakemistot on luotu:

ls -l

Poistetaan nyt hakemisto dir1 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.

rmdir Monisanainen tila

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 diagnostiikkaa 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.

Poista tyhjät alihakemistot Linuxissa

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 kantahakemistot.

Käsittele hakemistoa ei tyhjä

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 ei-tyhjän hakemiston aiheuttamat viat.

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.

Käytä säännöllisiä lausekkeita rmdir-komennossa

Muiden Linux-komentojen tapaan voimme käyttää säännöllisiä lausekkeita rmdir-komennolla. 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ä näemme, 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 ensin 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ä.