In questo scenario, dopo aver lanciato il comando “rmdir folder_name”, ci troviamo in risposta questo errore:
rmdir: failed to remove ‘folder_name’: Directory not empty
Il messaggio è piuttosto autoesplicativo, infatti la cartella non può essere eliminata in quanto contiene dei file e per ovvie ragioni ne viene impedita la cancellazione.
Eliminare una cartella non vuota con Bash
Forzare la cancellazione di una cartella non vuota presuppone il fatto che siamo consapevoli di ciò che stiamo facendo, infatti i file in essa contenuti verranno a loro volta eliminati.
Detto ciò, qui di seguito la soluzione.
rm -r folder_name
Se i privilegi dell’utente con cui stiamo operando ce lo permettono a questo punto la cartella ed i file in essa contenuti saranno stati eliminati. In caso contrario basta lanciare il comando con privilegi di root anteponendo sudo.
sudo rm -r folder_name
I comandi sopra illustrati presuppongono il fatto che ci troviamo allo stesso livello della cartella che vogliamo cancellare. Se così non fosse, è sufficiente anteporre il percorso completo.
sudo rm -r /path/to/folder_name
Aggiungiamo un po' di sicurezza
Come menzionato sopra, eliminare una cartella non vuota è un’operazione rischiosa che potrebbe portarci ad eliminare inavvertitamente dei file che non vorremmo realmente cancellare.
È pertanto consigliabile introdurre un po’ più di sicurezza nel comando attraverso il parametro -i che rende interattiva la cancellazione chiedendo per ogni file la conferma di volerlo realmente cancellare.
sudo rm -r -i folder_name
Conclusione
In questo articolo viene illustrato come forzare l’eliminazione di una cartella ed i file in essa contenuti usando la shell di Ubuntu.