Cè una differenza tra rm -rf / e rm -rf *. *?

rm -rf *.* danneggerà il tuo filesystem mentre rm -rf / non lo farà questo?

Commenti

Rispondi

Lì “non è niente di speciale, rm -rf *.* è un comando con un carattere jolly per il nome del file, rimuoverà in modo ricorsivo tutti i file nella directory corrente che contengono un punto nei loro nomi.

rm -rf / restituirebbe un errore sul tentativo di eseguire rm nella directory principale. Questo è richiesto da POSIX :

Se […] un operando reso lves alla directory root, rm scriverà un messaggio di diagnostica per lo standard error e non farà altro con tali operandi.

A seconda nella shell e nelle sue impostazioni, *.* potrebbe anche corrispondere a .. per la directory principale, ma anche a /, anche provare a rimuoverlo è un errore.

Nessuno di questi danneggerà il filesystem, rm rimuoverà solo (proverà a) file utilizzando le solite chiamate del file system. Leffetto sul sistema in generale, o sui file dellutente, può ovviamente essere sostanziale se il primo comando viene eseguito in una directory contenente file importanti.

Commenti

  • per versioni sufficientemente nuove di GNU rm (funzionalità originariamente rubata da Solaris IIRC). Meglio non piangere se il tuo dispositivo leggero incorporato rm non è compatibile con lultimo POSIX.

Lascia un commento

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