rm (Unix)

Da Wikipedia, l'enciclopedia libera.
« Just don't create a file called -rf.  :-) »
(Larry Wall, 1991)

rm (abbreviazione dalla lingua inglese di remove, rimuovi) è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che cancella file e directory dal file system, posto si abbiano i permessi a sufficienza.

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.

Da notare che la possibilità di rimuovere un file è data non tanto dai permessi sul file stesso, quanto dai permessi (di scrittura) della directory che lo contiene, in quanto ciò che viene realmente modificato è appunto la directory che lo contiene.

Uso[modifica | modifica sorgente]

La sintassi generale del comando rm è:

rm [opzioni] [--] arg1 [arg2 …]

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

Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.

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. In realtà, questo comando non funziona più già dal 2006, quando la versione 6.4 di GNU Core Utilities ha introdotto l'opzione --preserve-root, ormai abilitata in modo predefinito nelle distribuzioni più diffuse.

rm può essere usato insieme a xargs per rimuovere i file elencati in un file di testo o determinati tramite il comando find, posto che i nomi dei file non contengano spazi, apici o virgolette (che sono trattati in maniera speciale da xargs). Ad esempio:

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

Note[modifica | modifica sorgente]

  1. ^ (EN) rm in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato l'11-06-2008.

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

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