rm -rf *.* danneggerà il tuo filesystem mentre rm -rf / non lo farà questo?
Commenti
- Unix e Linux Stack Exchange è stato utile per più di 6 anni e SuperUser per lo stesso: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
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 incorporatormnon è compatibile con lultimo POSIX.