Cancellare una cartella da terminale è fra le prime cose che chi inizia a lavorare con il terminale impara a fare, vedremo quindi in questo articolo un po’ di opzioni e di esempi del comando rm.
Il comando rm è disponibile sia sul terminale di ubuntu, kali, debian, mint e praticamente tutte le altre distribuzioni linux esistenti che su macos. Questa guida è quindi valida sia per il terminale linux che per quello mac.
Il comando rmdir
Per eliminare una cartella possiamo usare il comando rmdir, o in alternativa il più utilizzato comando rm. Il comando rmdir cancella le directory passate come argomento purché siano vuote. Gli argomenti sono processati nell’ordine in cui sono scritti. Per cancellare quindi una cartella e una sottocartella contenuta in essa dobbiamo prima scrivere la sottocartella e poi la cartella “madre”. In questo modo il comando cancellerà prima la sottocartella e poi troverà la cartella principale vuota e potrà rimuoverla senza errori.
Sintassi del comando rmdir
La sintassi del comando è abbastanza semplice:
rmdir nomedirectory
Cancellare directory – esempio
Vediamo un esempio, cancelliamo una cartella chiamata prova nel percorso /tmp/prova. rmdir e rm sono dei comandi pericolosi e irreversibili (il terminale non ha il cestino) quindi per fare delle prove mettetevi nella cartella /tmp che non contiene nulla di vitale per il sistema e controllate sempre 2 volte prima di eseguire un comando!
rmdir /tmp/prova
Per rimuovere più di una directory vuota con un singolo comando possiamo specificarle entrambe insieme:
rmdir /tmp/prova1 /tmp/prova2
Possiamo anche fornire il percorso relativo al comando rmdir.
cd /tmp rmdir prova1 prova2
Se vogliamo possiamo anche cancellare un annidamento di cartelle vuote specificando l’opzione -p.
cd /tmp rmdir prova1/sottodir1/sottodir2
Cancellare ricorsivamente una cartella
Finora abbiamo parlato sempre di cartelle vuote, se vogliamo cancellare una cartella e tutto il suo contenuto dovremo utilizzare il comando rm -rf, dovremo cioè dire al comando rm di agire ricorsivamente e cancellare tutto il contenuto.
rm -rf /tmp/prova
Come è facile intuire il comando rm -rf è ancora più distruttivo e pericoloso del comando rmdir, è possibile infatti cancellare definitivamente grandi quantità di dati con un singolo comando senza richiesta di conferme, è quindi sempre necessaria molta attenzione nell’usarlo.
Eliminare directory come root
A volte succede di dover cancellare una cartella che non si elimina ricevendo un errore “access denied” o “permission denied”, probabilmente quella è una cartella incancellabile perché appartenente all’utente root. Per eliminare cartelle bloccate da root, dobbiamo farlo come se fossimo root, per fare questo possiamo utilizzare il comando sudo prima di rm o rmdir. Presentandoci come root avremo il controllo totale… ma ricordiamoci che “da grandi poteri derivano grandi responsabilità” e quindi in questo caso dovremmo stare ancora più attenti perché oltre ad eliminare una cartella che non si elimina ma che vogliamo eliminare, potremmo per errore eliminare una cartella che non dovrebbe essere eliminata.
sudo rmdir /tmp/prova oppure sudo rm -rf /tmp/prova1
Potete trovare ulteriore documentazione nella pagina man di rm