Rm (Unix): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ianezz (discussione | contributi)
Nessun oggetto della modifica
Botcrux (discussione | contributi)
m Bot: Aggiungo template {{interprogetto}} (FAQ)
 
(39 versioni intermedie di 23 utenti non mostrate)
Riga 1:
{{Titolo minuscolo}}
{{titolo errato|titolo=rm)}}
{{quoteCitazione|Just don't create a file called -rf. :-)|[[Larry Wall]], [[1991]]}}
 
'''rm''' (daabbreviazione dalla [[lingua inglese]] di '''''r'''e'''m'''ove.'', ''rimuovi'') è un comando dei [[Sistema operativo|sistemi operativi]] [[Unix]] e [[Unix-like]], chee cancellapiù [[file]]in egenerale [[directory]]dei dalsistemi [[file systemPOSIX]].<ref>{{cita web
|url=https://www.opengroup.org/onlinepubs/000095399/utilities/rm.html
|titolo=rm
|accesso=11-06-2008
|opera=The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition
|lingua=en
}}</ref>, che cancella [[file]] e [[directory]] dal ''[[file system]]'', posto che si abbiano i [[Permessi (Unix)|permessi]] necessari.
 
Più precisamente, ''rm'' rimuove uno o più [[Collegamento fisico|collegamenti fisici]], per cui non è detto che ciò comporti anche la rimozione immediata anche 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 anche se il file o la directory sono al momento in uso da qualche [[processo (informatica)|processo]].
 
Al contrario del comando [[rmdir]], ''rm'' è in grado di cancellare anche directory che non sono vuote, cancellandone prima [[Algoritmo ricorsivo|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==
La forma generale del comando è
rm [''opzioni''] ''file1'' [''file2'' ...]
Tra le opzioni più usate vi sono:
* <tt>-r</tt>: rimuove ricorsivamente il contenuto delle directory specificate ed anche le directory stesse.
* <tt>-i</tt>: richiede conferma per ogni cancellazione.
* <tt>-f</tt>: ignora file non-esistenti e disabilita ogni richiesta di conferma ("'''f'''orce").
 
== Sintassi ==
''rm'' è spesso utilizzato con l'alias di "<tt>rm -i</tt>" 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 <tt>-i</tt> specificando anche l'opzione <tt>-f</tt>.
La formasintassi generale del comando è''rm'' è:
rm [''opzioni''] [--] ''file1arg1'' [''file2arg2'' ...]
 
I parametri ''arg'' indicano i nomi dei file e/o delle directory da rimuovere.
'''rm -rf''' (e varianti, "<tt>rm -rf /</tt>", "<tt>rm -rf *</tt>", e altre) sono frequentemente utilizzate in scherzi e aneddoti su disastri in ambienti Unix: la variante <tt>rm -rf /</tt>, infatti, se utilizzata da un amministratore ([[Root (utente)|root]]) causerebbe la cancellazione dei contenuti in ogni [[hard disk|disco]] [[mount (Unix)|montato]] sul computer.
 
Il doppio trattino <kbd>--</kbd> (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.
''rm'' può essere usato insieme a [[xargs]] per cancellare i file elencati in un [[file di testo]] o determinati tramite il comando [[Find (Unix)|find]]. Ad esempio:
 
Tra le opzioni piùdi usateuso comune vi sono:
*; <ttkbd>-r</ttkbd> oppure <kbd>-R</kbd>: rimuoveRimuove ricorsivamente il contenuto delle directory specificate ed anche le directory stesse.
*; <ttkbd>-i</ttkbd>: richiedeRichiede conferma per ogni cancellazione.
*; <ttkbd>-f</ttkbd>: ignoraIgnora file non- esistenti e disabilita ogni richiesta di conferma ("dall'inglese '''''f'''orce"'', ''forza'' nel senso di ''forzare'').
 
''rm'' è spesso utilizzato con l'alias di "<ttkbd>rm -i</ttkbd>" 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 <ttkbd>-i</ttkbd> specificando anche l'opzione <ttkbd>-f</ttkbd>.
 
'''rm -rf''' (e varianti, "<ttkbd>rm -rf /</ttkbd>", "<ttkbd>rm -rf *</ttkbd>", e altre) sono frequentemente utilizzate in scherzi e aneddoti su disastri in ambienti Unix: la variante <ttkbd>rm -rf /</ttkbd>, infatti, se utilizzata da un amministratore ([[Root (utente)|root]]) causerebbe la cancellazione dei contenuti in ogni ''file system'' [[hard diskMount|discomontato]] sul computer. In realtà, questo comando non funziona più già dal 2006, quando la versione 6.4 di [[mountGNU (Unix)|montatoCore Utilities]] sulha computerintrodotto l'opzione <kbd>--preserve-root</kbd>, ormai abilitata in modo predefinito nelle distribuzioni più diffuse.
 
''rm'' può essere usato insieme a [[xargs]] per cancellarerimuovere i file elencati in un [[file di testo]] o determinati tramite il comando [[Find (Unix)|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
 
==Particolarità Note ==
<references/>
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 ==
* [[Rmdirrmdir]] (rimuove directory vuote)
* [[Cpcp (Unix)]] (copia file e directory)
* [[Mvmv (Unix)]] (rinomina o sposta file e directory)
* [[GNU/LinuxShell (informatica)]]
 
* [[Shell (informatica)|Shell]] ([[Bash]])
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* {{cita web
* {{en}} [http://www.linuxmanpages.com/man1/rm.1.php rm su ''linuxmanpages'']
|url=https://www.gnu.org/software/coreutils/manual/html_node/rm-invocation.html
* {{en}} [http://www.ss64.com/bash/rm.html rm]
|titolo=rm: Remove files or directories
* [http://www.shellbox.it/man-rm.html Pagina man di rm]
|accesso=11-06-2008
|opera=GNU Coreutils manual
|lingua=en
}}
* {{en}}cita [web|http://www.linuxmanpages.com/man1/rm.1.php |rm su ''linuxmanpages'']|lingua=en}}
* {{en}}cita [httpweb|https://www.ss64.com/bash/rm.html |rm]|lingua=en}}
 
{{Comandi Unix}}
{{Portale|Informatica}}
 
[[Categoria:Unix]]
[[Categoria:Comandi Unix/Linux]]
[[Categoria:Coreutils]]
 
[[ar:Rm]]
[[bg:Rm]]
[[cs:Rm (Unix)]]
[[de:Rm (Unix)]]
[[en:Rm (Unix)]]
[[es:Rm]]
[[fr:Rm (Unix)]]
[[ja:Rm (UNIX)]]
[[ko:Rm (유닉스)]]
[[nl:Rm (Unix)]]
[[pl:Rm (Unix)]]
[[pt:Rm]]
[[ru:Rm]]
[[uk:Rm]]