Comando rm di Linux: opzioni di rm -rf e come eliminare senza conferma

Con il comando rm, i file eliminati spariscono subito, senza passare dal cestino. rm è l'abbreviazione di remove ed elimina file e directory; questo articolo spiega l'uso di base, le opzioni e perché la directory root resta anche se esegui [rm -rf /].
Su AlmaLinux 9.8 l'account root ha di default [alias rm='rm -i'], quindi chiede conferma prima di eliminare. Per i sistemi Linux senza questa impostazione, l'articolo mostra anche come aggiungere l'alias da te.
✅ Uso di base
La sintassi di base è la seguente.
rm -opzioni bersaglio: File o directory
Un file si elimina col solo nome; una directory solo aggiungendo l'opzione -r.
# eliminare un file
rm file1
# eliminare più file
rm file1 file2
# eliminare una directory con tutto il contenuto
rm -r dir1/
# eliminare una directory vuota
rm -d dir1/~]# rm dir1/
rm: cannot remove 'dir1/': Is a directorySe indichi una directory senza opzioni, non viene eliminata, come sopra.
Eliminare un link simbolico toglie solo il link; il file a cui punta resta al suo posto. Per controllare prima e dopo l'eliminazione, usa anche il comando ls.
✅ rm -rf: eliminare senza conferma
Il comando rm chiede [remove regular file] perché sull'account root rm gira tramite l'alias [rm -i].
~]# rm file1
rm: remove regular file 'file1'? y
~]# alias rm
alias rm='rm -i'Eliminare una directory con l'opzione -r chiede conferma entrando in ogni directory e per ogni file, il che diventa noioso con molti file.
~]# rm -r logs/
rm: descend into directory 'logs/'? y
rm: remove regular file 'logs/access.log'? y
rm: remove regular empty file 'logs/error.log'? y
rm: remove directory 'logs/'? yIn quel caso aggiungi l'opzione -f: elimina senza conferma e non dà errore anche se il file non esiste.
rm -rf logs/Mettere una barra rovesciata [\] davanti al comando per saltare l'alias, o mettere [yes |] davanti perché a ogni domanda venga inserito y, dà lo stesso risultato.
\rm -r logs/
yes | rm -r logs/✅ Opzioni del comando rm & simulatore
| Opzione | Descrizione | |
|---|---|---|
| -f | --forceElimina senza conferma e non dà errore per file inesistenti | |
| -i | Chiede conferma all'utente prima di ogni eliminazionealias rm='rm -i' | |
| -I(i maiuscola) | Chiede una sola volta con quattro o più file o con -r | |
| -r, -R | --recursiveElimina una directory insieme a sottodirectory e file | |
| -d | --dirElimina una directory vuota | |
| -v | --verboseStampa ogni file e directory eliminati su una riga | |
| --preserve-root | Non elimina la directory root (/) (predefinito) | |
| --no-preserve-root | Disattiva la protezione della directory root (/) |
✅ rm -rf /: proteggere la directory root
Nel lavoro di hosting capita di eliminare file che non andavano toccati. Quasi tutti si recuperano da un backup, ma una volta eliminata la directory root il ripristino è una seccatura anche con uno snapshot. Ho sentito più volte di casi in cui un rm -rf sbagliato non si è potuto annullare.
Il comando rm applica di default l'opzione [--preserve-root], quindi la directory root non viene eliminata anche se esegui [rm -rf /].
~]# rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafeNon blocca però [rm -rf /*]. La shell sostituisce [/*] con nomi di directory come /bin, /etc e /home prima di passarli, quindi rm elimina ciascuna di quelle directory invece di [/].
Un'installazione nuova di AlmaLinux 9.8 ha gli alias -i di rm, cp e mv in [/root/.bashrc], come qui sotto. Gli account utente normali non hanno questi alias.
~]# grep alias /root/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'Su un account o un sistema Linux senza l'alias, aggiungi una riga in fondo a [~/.bashrc] e ricaricalo.
# aggiungi in fondo a ~/.bashrc
alias rm='rm -i'
# ricarica
source ~/.bashrc
ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.