rm (Unix)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

«Just don't create a file called -rf.:-)»

rm(abbreviazione dallalingua inglesediremove,rimuovi) è un comando deisistemi operativiUnixeUnix-like,e più in generale dei sistemiPOSIX[1],che cancellafileedirectorydalfile system,posto che si abbiano ipermessinecessari.

Più precisamente,rmrimuove uno o piùcollegamenti fisici,per cui non è detto che ciò comporti anche la rimozione immediata dei dati e la conseguente liberazione dello spazio sumemoria 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 qualcheprocesso.

Al contrario del comandormdir,rmè in grado di cancellare anche directory che non sono vuote, cancellandone primaricorsivamenteil 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.

La sintassi generale del comandormè:

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

I parametriargindicano 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:

-roppure-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'ingleseforce,forzanel senso diforzare).

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-ispecificando 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 varianterm -rf /,infatti, se utilizzata da un amministratore (root) causerebbe la cancellazione dei contenuti in ognifile systemmontatosul computer. In realtà, questo comando non funziona più già dal 2006, quando la versione 6.4 diGNU Core Utilitiesha introdotto l'opzione--preserve-root,ormai abilitata in modo predefinito nelle distribuzioni più diffuse.

rmpuò essere usato insieme axargsper rimuovere i file elencati in unfile di testoo determinati tramite il comandofind,posto che i nomi dei file non contengano spazi, apici o virgolette (che sono trattati in maniera speciale daxargs). Ad esempio:

xargs rm < elenco.txt
find. -type f -name "*.bak" -print | xargs rm -f
  1. ^(EN)rm,inThe Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition.URL consultato l'11-06-2008.

Collegamenti esterni

[modifica|modifica wikitesto]
 Portale Informatica:accedi alle voci di Wikipedia che trattano di Informatica