Exemples d'ordres rmdir de Linux per a principiants


Com a usuaris de Linux, interactuem amb els fitxers i directoris de manera regular. Una operació habitual que fan els usuaris és eliminar directoris del sistema de fitxers. Tanmateix, hem de tenir molta cura quan eliminem els directoris. Perquè les operacions d'eliminació realitzades de manera descuidada poden provocar la pèrdua de dades.

En aquest article per a principiants, coneixerem l'ordre rmdir. També comentarem alguns dels exemples pràctics que es poden utilitzar en el dia a dia.

La sintaxi de l'ordre rmdir és similar a la d'altres ordres de Linux. A un alt nivell, es divideix en dues parts: opcions i arguments:

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

Aquí, els claudàtors ([]) representen els arguments opcionals mentre que els claudàtors (<>) representen els arguments obligatoris.

Ús bàsic de l'ordre rmdir a Linux

Com el seu nom indica, l'ordre rmdir s'utilitza per eliminar el directori. Tanmateix, és important tenir en compte que només pot eliminar directoris buits. En aquesta secció, veurem l'ús bàsic de l'ordre rmdir.

Primer, creeu uns quants directoris buits:

$ mkdir dir1 dir2 dir3 dir4

Comprovem que s'han creat els directoris necessaris:

$ ls -l

Ara, eliminem el directori dir1 i verifiquem que s'ha eliminat:

$ rmdir dir1
$ ls -l

De manera similar, podem utilitzar l'ordre rmdir per eliminar diversos directoris buits alhora.

Suprimim els directoris restants:

$ rmdir dir2 dir3 dir4

Finalment, comproveu que s'han eliminat tots els directoris:

$ ls -l

Aquí, podem veure que l'ordre ls no mostra cap directori.

A la secció anterior, hem utilitzat l'ordre ls per verificar l'eliminació del directori. Tanmateix, no té sentit executar una ordre més només per verificar les accions de les ordres anteriors.

En aquests casos, podem habilitar el mode detallat mitjançant l'opció -v, que proporciona diagnòstics per a cada directori processat.

Creem la mateixa estructura de directoris que hem creat anteriorment:

$ mkdir dir1 dir2 dir3 dir4

Ara, eliminem els directoris amb el mode detallat activat:

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

A partir de la sortida anterior, podem concloure que s'han eliminat tots els directoris.

Sovint creem subdirectoris en un sistema de fitxers, cosa que ens permet organitzar les nostres dades d'una manera adequada. Vegem com treballar amb subdirectoris buits.

Com s'ha comentat al primer exemple, podem eliminar diversos directoris mitjançant l'ordre rmdir. Tanmateix, la situació es torna complicada quan els subdirectoris són grans en nombre.

En aquests casos, podem utilitzar l'opció -p, que elimina el directori i tots els seus avantpassats. Entenem-ho amb un exemple.

Primer, creeu una estructura de subdirectori:

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

En aquest exemple, hem utilitzat l'opció -p amb l'ordre mkdir per crear una estructura de subdirectori.

Eliminem tots aquests directoris d'una vegada:

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

Aquí, el mode detallat elimina el directori dir5 i tots els directoris dels seus ancestres.

Ja sabem que el rmdir només pot eliminar directoris buits. Qualsevol intent d'eliminar un directori no buit donarà lloc a un error. Tot i que això proporciona protecció contra la pèrdua de dades, en alguns casos rars pot crear un problema.

Per exemple, si intentem eliminar un directori no buit de l'script que està executant Jenkins, el treball informarà d'un error.

Per simular això, intentem eliminar el directori no buit:

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

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

Per a aquests casos d'error, podem utilitzar l'opció --ignore-fail-on-non-empty, que ignora tots els errors que s'han produït a causa d'un directori no buit.

Utilitzem aquesta opció amb l'ordre i comprovem el valor de retorn:

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

0

En aquest exemple, podem veure que l'ordre no va informar cap error i el valor de retorn zero indica l'execució correcta de l'ordre. Tanmateix, és important tenir en compte que aquesta opció només suprimeix l'error i no elimina el directori no buit.

De manera similar a altres ordres de Linux, podem utilitzar expressions regulars amb l'ordre rmdir. Vegem l'ús de les dues expressions regulars següents:

  • ?: coincideix exactament amb un caràcter.
  • *: coincideix amb zero o més ocurrències dels caràcters anteriors.

Primer, creeu uns quants directoris buits:

$ mkdir dir1 dir2 dir-01 dir-02

Ara, utilitzem l'expressió regular ? amb la cadena 'dir' per eliminar els directoris dir1 i dir2:

$ rmdir -v dir?

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

Aquí, podem veure que l'ordre va eliminar els directoris correctes.

A continuació, utilitzeu l'expressió regular * per eliminar els altres dos directoris:

$ rmdir -v dir-*

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

En aquest exemple, podem veure que els altres dos directoris s'han eliminat.

En aquesta secció, hem parlat de l'ús de només dues expressions regulars. Tanmateix, també podem utilitzar les altres expressions regulars avançades amb l'ordre rmdir.

En aquest article, primer, vam veure l'ús bàsic de l'ordre rmdir. A continuació, vam parlar del mode detallat i de l'eliminació dels subdirectoris. A continuació, vam veure com gestionar els errors quan un directori no està buit. Finalment, vam parlar de com utilitzar expressions regulars.