Ricerca nel sito web

Esempi di comandi Linux rmdir per principianti


Come utenti Linux, interagiamo regolarmente con file e directory. Un'operazione comune eseguita dagli utenti è la rimozione delle directory dal file system. Tuttavia, dobbiamo prestare particolare attenzione durante la rimozione delle directory. Perché le operazioni di rimozione eseguite con noncuranza possono causare la perdita di dati.

In questo articolo per principianti, impareremo a conoscere il comando rmdir. Discuteremo anche alcuni esempi pratici che possono essere utilizzati quotidianamente.

La sintassi del comando rmdir è simile ad altri comandi Linux. Ad alto livello, è diviso in due parti: opzioni e argomenti:

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

Qui, le parentesi quadre ([]) rappresentano gli argomenti facoltativi mentre le parentesi angolari (<>) rappresentano gli argomenti obbligatori.

Utilizzo di base del comando rmdir in Linux

Come suggerisce il nome, il comando rmdir viene utilizzato per rimuovere la directory. Tuttavia, è importante notare che può rimuovere solo le directory vuote. In questa sezione vedremo l'utilizzo di base del comando rmdir.

Elimina una directory vuota in Linux

Innanzitutto, crea alcune directory vuote:

mkdir dir1 dir2 dir3 dir4

Verifichiamo che siano state create le directory richieste:

ls -l

Ora rimuoviamo la directory dir1 e verifichiamo che sia stata rimossa:

rmdir dir1
ls -l

In modo simile, possiamo usare il comando rmdir per rimuovere più directory vuote contemporaneamente.

Rimuoviamo le directory rimanenti:

rmdir dir2 dir3 dir4

Infine, verifica che tutte le directory siano state rimosse:

ls -l

Qui possiamo vedere che il comando ls non mostra alcuna directory.

rmdir Modalità dettagliata

Nella sezione precedente abbiamo utilizzato il comando ls per verificare la rimozione della directory. Tuttavia, non ha senso eseguire un altro comando solo per verificare le azioni dei comandi precedenti.

In questi casi, possiamo abilitare la modalità dettagliata utilizzando l'opzione -v, che fornisce la diagnostica per ogni directory elaborata.

Creiamo la stessa struttura di directory che abbiamo creato in precedenza:


mkdir dir1 dir2 dir3 dir4

Ora rimuoviamo le directory con la modalità dettagliata abilitata:

rmdir -v dir1 dir2 dir3 dir4
ls -l

Dall'output precedente, possiamo concludere che tutte le directory sono state rimosse.

Rimuovere le sottodirectory vuote in Linux

Spesso creiamo sottodirectory su un file system, che ci consente di organizzare i nostri dati in modo corretto. Vediamo come lavorare con sottodirectory vuote.

Come discusso nel primo esempio, possiamo rimuovere più directory utilizzando il comando rmdir. Tuttavia, la situazione diventa complicata quando le sottodirectory sono numerose.

In questi casi, possiamo usare l'opzione -p, che rimuove la directory e tutti i suoi antenati. Capiamolo con un esempio.

Innanzitutto, crea una struttura di sottodirectory:

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

In questo esempio, abbiamo utilizzato l'opzione -p con il comando mkdir per creare una struttura di sottodirectory.

Rimuoviamo tutte queste directory in una volta sola:

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'

In questo caso, la modalità dettagliata rimuove la directory dir5 e tutte le sue directory antenati.

Errore nella gestione della directory non vuota

Sappiamo già che rmdir può rimuovere solo directory vuote. Qualsiasi tentativo di rimuovere una directory non vuota risulterà in un errore. Sebbene ciò fornisca protezione contro la perdita di dati, in alcuni rari casi può creare problemi.

Ad esempio, se proviamo a rimuovere una directory non vuota dallo script che viene eseguito da Jenkins, il lavoro segnalerà un errore.

Per simulare ciò, proviamo a rimuovere la directory non vuota:

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

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

Per tali casi di errore, possiamo utilizzare l'opzione --ignore-fail-on-non-empty, che ignora tutti gli errori verificatisi a causa di una directory non vuota.

Usiamo questa opzione con il comando e controlliamo il valore restituito:

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

0

In questo esempio, possiamo vedere che il comando non ha riportato alcun errore e il valore restituito pari a zero indica l'esecuzione corretta del comando. Tuttavia, è importante notare che questa opzione elimina semplicemente l'errore e non rimuove la directory non vuota.

Utilizza le espressioni regolari nel comando rmdir

Analogamente ad altri comandi Linux, possiamo utilizzare le espressioni regolari con il comando rmdir. Vediamo l'utilizzo delle seguenti due espressioni regolari:

  • ? – Corrisponde esattamente a un carattere.
  • * – Corrisponde a zero o più occorrenze dei caratteri precedenti.

Innanzitutto, crea alcune directory vuote:

mkdir dir1 dir2 dir-01 dir-02

Ora utilizziamo l'espressione regolare '?' con la stringa 'dir' per rimuovere dir1 e dir2 directory:

rmdir -v dir?

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

Qui possiamo vedere che il comando ha rimosso le directory corrette.

Successivamente, utilizza l'espressione regolare '*' per rimuovere le altre due directory:

rmdir -v dir-*

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

In questo esempio possiamo vedere che le altre due directory sono state rimosse.

In questa sezione abbiamo discusso l'utilizzo di sole due espressioni regolari. Possiamo però utilizzare anche le altre espressioni regolari avanzate con il comando rmdir.

In questo articolo, innanzitutto, abbiamo visto l'utilizzo di base del comando rmdir. Quindi abbiamo discusso della modalità dettagliata e della rimozione delle sottodirectory. Successivamente abbiamo visto come gestire gli errori quando una directory non è vuota. Infine, abbiamo discusso come utilizzare le espressioni regolari.