rm (Unix)

comando dei sistemi operativi Unix e Unix-like
«Just don't create a file called -rf.  :-)»

rm (dall'inglese remove, rimuovi) è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX, che cancella file e directory dal file system.

Più precisamente, rm rimuove uno o più collegamenti fisici, per cui non è detto che ciò comporti anche la rimozione immediata dei dati e la conseguente liberazione dello spazio su memoria di massa. Ad esempio ciò non avviene se vi sono altri collegamenti fisici agli stessi dati, o se il file o la directory sono al momento in uso da qualche processo.

Al contrario del comando rmdir, rm è in grado di cancellare anche directory che non sono vuote, cancellandone prima ricorsivamente il contenuto.

Uso

La forma generale del comando rm è

 rm [opzioni] arg1 [arg2 ...]

I parametri arg indicano i nomi dei file o directory da rimuovere.

Tra le opzioni di uso comune vi sono:

  • -r oppure -R – Rimuove ricorsivamente il contenuto delle directory specificate ed anche le directory stesse.
  • -i – Richiede conferma per ogni cancellazione.
  • -f – Ignora file non esistenti e disabilita ogni richiesta di conferma (dall'inglese force, forza nel senso di forzare).

rm è spesso utilizzato con l'alias di "rm -i" per evitare cancellazioni accidentali; se in questo caso si volesse cancellare un gran numero di file senza la richiesta di conferma, si può annullare l'effetto dell'opzione -i specificando anche l'opzione -f.

rm -rf (e varianti, "rm -rf /", "rm -rf *", e altre) sono frequentemente utilizzate in scherzi e aneddoti su disastri in ambienti Unix: la variante rm -rf /, infatti, se utilizzata da un amministratore (root) causerebbe la cancellazione dei contenuti in ogni file system montato sul computer.

rm può essere usato insieme a xargs per rimuovere i file elencati in un file di testo o determinati tramite il comando find. Ad esempio:

 xargs rm < elenco.txt
   
 find . -type f -name "*.bak" -print | xargs rm -f

Particolarità

Il comando rm, alla pari di qualsiasi altro comando in ambiente Unix, può essere specificato come interprete di uno script dopo lo shabang: in questo caso, a prescindere dai comandi specificati nello script (che non verranno eseguiti), esso si autocancellerà.

Voci correlate

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica