fb-pixel

Eliminare file e cartelle con il comando rm su Linux

Pubblicato in:

by:

Vuoi eliminare file e cartelle da terminale? Con il comando rm su Linux possiamo eliminare i file desiderati.

Vediamo come usare questo comando con degli esempi pratici, quali opzioni ci sono e, soprattutto, come evitare errori colossali.

Iniziamo!

Sintassi del comando rm

Il comando rm (remove) permette di eliminare file, cartelle e link simbolici su sistemi Linux.

Si tratta di uno dei comandi Linux a cui prestare la maggiore attenzione, infatti, se hai familiarità con sistemi Windows, saprai che l’eliminazione di file e cartelle li sposta nel cestino. Su Linux, invece, usando il comando rm da terminale, i file verranno eliminati e non spostati nel cestino.

Come vedremo in questo articolo ci sono diversi accorgimenti che possiamo adottare per evitare di fare errori usando questo comando.

La sintassi di base del comando rm è questa:

rm [opzioni] nome-file

Per esempio per eliminare un singolo file possiamo usare il comando in questo modo:

rm documento.txt

Passiamo a vedere alcuni esempi di utilizzo pratico del comando.

Casi d’uso del comando rm

Possiamo usare il comando rm per eliminare i file (singoli o multipli) e per eliminare le cartelle. In questa sezione vedremo come fare usando il comando in modo semplice, nella sezione successiva, invece, vedremo come sfruttare le opzioni.

Attenzione: usando il comando rm senza opzioni, i file o le cartelle verranno eliminati senza che ti venga richiesta conferma.

Come usare rm per eliminare un file

Possiamo usare il comando rm per eliminare un singolo file in maniera abbastanza semplice.

Ci basta indicare il nome o il percorso del file (dobbiamo indicare il percorso se il file non si trova nella cartella corrente).

Nota che per usare il comando rm, è meglio avere prima familiarità con i comandi basilari tra cui:

Nel nostro esempio uso questo comando per eliminare il file “articolo5.txt”:

rm articolo5.txt
Usare Comando Rm Eliminare Singolo File

Nello specifico:

  • ho usato il comando ls per visualizzare il contenuto della cartella corrente;
  • con il comando rm ho eliminato il file;
  • con il comando ls ho controllato che fosse stato eliminato.

Come puoi vedere dall’esempio, il comando rm utilizzato senza opzioni, non ci restituisce nessun output. Questo significa che non avremo un messaggio di conferma, ma solo eventuali output che ci comunicano un errore.

Eliminare un file che inizia con “-“

In base alle regole di sintassi, i comandi Linux possono ricevere degli argomenti e delle opzioni. Le opzioni si indicano prima degli argomenti e sono precedute da un trattino (), per esempio:

rm -r cartella

In questo esempio “-r” è un’opzione, mentre “cartella” è l’argomento.

Può capitare di voler eliminare dei file che contengono all’inizio del nome un trattino “-“, in questo caso, se proviamo a usare il comando come visto nell’esempio precedente, avremo un errore.

L’errore ci suggerisce il modo corretto per scrivere di utilizzare il comando.

Se uso il comando seguente, riceverò un errore:

rm -doc.txt
Errore Eliminare File Trattino Iniziale Rm

Nello specifico abbiamo due opzioni.

Possiamo usare due trattini prima del nome del file, così:

rm -- -doc.txt

Oppure possiamo usare “./” prima del nome del file, come in questo esempio”:

rm ./-doc.txt

Puoi utilizzare una o l’altra, con lo stesso risultato. Ecco un esempio in cui ho usato entrambe le opzioni per eliminare due file che iniziavano con un trattino “-doc.txt” e “-doc1.txt”.

Eliminare File Trattino Iniziale Comando Rm

Eliminare più file

Come abbiamo visto con altri comandi, ad esempio con il comando cp che permette di fare una copia, si può usare un singolo comando per eseguire un’operazione su più file.

In questo caso specifico, possiamo usare il comando rm per eliminare più file contemporaneamente.

Ci basta dare il comando in questo modo elencando i nomi dei file e separandoli con uno spazio:

rm file file2 file3 file4

Nel nostro esempio ho usato il comando seguente per eliminare i file “wp.txt” e “joomla.txt”:

rm wp.txt joomla.txt

Ecco il risultato:

Comando Rm Eliminare Piu File

Come nell’esempio precedente, anche in questo caso, visto che non ci sono stati errori, non c’è stato nessun output.

Eliminare una cartella con il comando rm

Di default il comando rm usato senza opzioni, non permette di eliminare le cartelle.

Se proviamo a eliminare una cartella, come in questo esempio:

rm scalette

Riceviamo un messaggio di errore:

rm: impossibile rimuovere 'scalette': È una directory
Comando Rm Impossibile Eliminare Directory

Per eliminare una cartella, abbiamo più opzioni:

  • se la cartella è vuota, usiamo l’opzione “-d“;
  • se vogliamo eliminare una cartella e tutto il suo contenuto, usiamo “-r“.

Vediamo subito come fare con degli esempi.

Eliminare una cartella vuota

Se la cartella che vogliamo eliminare è vuota, possiamo usare l’opzione -d, in questo modo:

rm -d nome-cartella

Nel mio esempio, ho usato il comando:

rm -d screen

In questo modo la cartella “screen” è stata eliminata.

Eliminare Cartella Vuota Comando Rm

Se, invece, usiamo questa opzione per cercare di eliminare una cartella con del contenuto, riceveremo un avviso come questo:

rm: impossibile rimuovere 'scaletta': Directory non vuota
Comando Rm Errore Cartella Non Vuota

Vediamo come fare per eliminare le cartelle con il loro contenuto.

Eliminare una cartella e tutto il suo contenuto

Se la cartella che vogliamo eliminare non è vuota e vogliamo eliminare tutta la cartella con il suo contenuto (file ed eventuali sotto-cartelle inclusi), possiamo usare il comando rm con l’opzione -r:

rm -r nome-cartella

Nel mio esempio la cartella “scalette” contiene a sua volta una cartella e un file.

Per eliminare tutto il contenuto, uso il comando:

rm -r scalette

In questo esempio:

  • ho verificato il contenuto della cartella “scalette” usando il comando ls;
  • ho usato il comando rm con l’opzione r per eliminare la cartella e il contenuto;
  • con l’opzione ls ho verificato che la cartella fosse stata eliminata.
Eliminare Cartella Rm

Come usare il comando rm con le opzioni

Ora che abbiamo visto come usare il comando rm per eliminare file e cartelle, vediamo come usare le opzioni.

Le opzioni del comando rm – specie l’opzione -i che permette di richiedere conferma – sono utili per evitare di eliminare file per sbaglio.

Eliminare file o cartelle chiedendo conferma

Come abbiamo visto negli esempi visti finora, se utilizziamo il comando rm senza specificare nessuna opzione, i file verranno eliminati senza che ci venga chiesto di confermare.

L’eliminazione dei file è spesso un’operazione delicata e ci possono essere casi in cui è meglio attivare l’opzione interattiva.

Usando l’opzione -i, possiamo far sì che per ogni file ci venga chiesta conferma prima dell’eliminazione.

Si usa in questo modo:

rm -i nomefile

Per esempio dando il comando:

rm -i wordpress.txt

Ci viene chiesto se vogliamo confermare l’eliminazione del file, a questo punto:

  • per confermare digitiamo “y“;
  • per annullare digitiamo una qualsiasi altra lettera, ad esempio “n”.

In questo esempio, ho confermato l’eliminazione del file.

Eliminare File Con Conferma Comando Rm

Se vogliamo che ci venga richiesta conferma durante l’eliminazione di una cartella e del suo contenuto, possiamo usare le opzioni r ed i in questo modo:

rm -ri nome-cartella
Comando Rm Eliminazione Cartella Con Conferma

In questo esempio, avendo utilizzato l’opzione -i, ci viene chiesta conferma per ogni passaggio:

  • se entrare nella cartella “scaletta”;
  • se eliminare i file e le cartelle contenuti in essa;
  • se eliminare la cartella genitore “scaletta”.

Ad ogni prompt possiamo scegliere se confermare con “y” o se annullare l’eliminazione, premendo un altro tasto.

Forzare l’eliminazione di file e cartelle

In alcuni casi, anche se non utilizziamo l’opzione -i per richiedere conferma, ci viene chiesto se vogliamo procedere con l’eliminazione dei file.

In questo esempio sto cercando di eliminare un file su cui non c’è il permesso di scrittura.

Nota che i permessi dei file si possono modificare con il comando chmod, mentre per visualizzarli nell’esempio qui sotto ho usato “ls -l”.

Usando il comando:

rm articolo-linux.txt

Mi viene mostrato il seguente messaggio:

rm: rimuovere il file regolare protetto dalla scrittura 'articolo-linux.txt'?

Visto che il file è in sola lettura, ci viene chiesta conferma per l’eliminazione.

Se vogliamo eliminare più file e non vogliamo confermare ogni volta, possiamo utilizzare l’opzione -f per forzare l’eliminazione dei file in questi casi.

Nel mio esempio, ho usato il comando:

rm -f articolo-linux.txt

In questo modo potuto eliminare il file senza che venisse richiesta la conferma.

Eliminare File Rm Con Opzione F

Visto che l’opzione -f ci permette di evitare i messaggi di conferma, è importante fare attenzione quando la usiamo in modo da non eliminare file importanti.

Se vogliamo utilizzare questa opzione per un’intera cartella, useremo il comando:

rm -rf nome-cartella

In questo caso il risultato sarà che la cartella verrà eliminata (con tutto il suo contenuto) ed eventuali avvisi non verranno mostrati.

Eliminare file e cartelle con dettagli sull’eliminazione

Quando usiamo il comando rm, può essere utile usare l’opzione -v per ottenere informazioni dettagliate durante l’eliminazione.

Questa opzione è particolarmente utile quando eliminiamo una cartella e il suo contenuto e vogliamo seguire il processo.

Ecco un esempio in cui abbiamo usato il comando:

rm -rv appunti

In questo caso l’opzione r ci serve a eliminare la cartella “appunti” e il suo contenuto, con l’opzione v stiamo chiedendo di avere un output di riepilogo durante l’eliminazione di file e cartelle.

Usare Comando Rm Con Opzione V

Accorgimenti nell’uso del comando rm

Come dicevamo all’inizio di questa guida, il comando rm è uno dei più delicati da usare.

Con questo comando è possibile eliminare file e cartelle, quindi dobbiamo fare attenzione soprattutto quando usiamo il comando con l’opzione ricorsiva per le cartelle e il loro contenuto (-r) e con l’opzione -f per forzare l’eliminazione.

Inoltre, se usiamo il comando con i permessi root, possiamo anche rischiare di eliminare tutto il contenuto del sistema.

L’uso del comando rm, proprio per questo motivo, è spesso protagonista di meme, guarda ad esempio questo:

Comando Rm Meme

La differenza tra i due comandi sembra minimale, ma in realtà:

Il comando seguente elimina il contenuto della cartella corrente:

rm -rf ./

Questo comando elimina tutto il contenuto della root:

rm -rf /

Quindi, quando usi il comando rm fai bene attenzione a quello che fai, specie se usi l’opzione ricorsiva.

Altri metodi per eliminare file e cartelle

Oltre al comando rm, ci sono anche altri metodi per l’eliminazione da terminale.

Il comando rmdir ci permette di eliminare solo le cartelle vuote (può essere anche usato con le opzioni per eliminare anche le sottocartelle).

Come dicevamo all’inizio, quando usiamo il comando rm stiamo eliminando in maniera permanente file e cartelle. Se eliminiamo i file usando il comando rm, però, c’è la possibilità di poterli ripristinare. Infatti, ci sono strumenti creati per recuperare i file eliminati prima che vengano completamente sovrascritti.

Nel caso in cui si vogliano eliminare i file e impedire il ripristino, si può usare il comando shred. Infatti, usando il comando rm viene rimosso il riferimento a file e cartelle, ma i dati restano sul disco finché non sono sovrascritti. Invece, con il comando shred i file vengono eliminati e sovrascritti in modo da non poter essere ripristinati.

Conclusioni

Il comando rm è uno dei primi da imparare per lavorare sui file da terminale. Trattandosi di un comando che ci permette l’eliminazione di file e cartelle, dobbiamo ricordarci di fare molta attenzione a usarlo correttamente. Per prendere familiarità con il comando conviene iniziare a usarlo con il prompt di conferma (usando l’opzione -i come abbiamo visto in questa guida).


Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *