Vil rm -rf *.*
ødelegge filsystemet ditt mens rm -rf /
ikke vil gjøre dette?
Kommentarer
- Unix og Linux Stack Exchange har vært nyttige i mer enn 6 år, og SuperUser for det samme: unix.stackexchange.com/questions/19547 superbruker.com/questions/312769 unix.stackexchange.com/questions/302468
Svar
Der «er ikke noe spesielt for det, rm -rf *.*
er en kommando med et filnavn jokertegn, det vil rekursivt fjerne alle filer i den nåværende katalogen som inneholder en prikk i navnene.
rm -rf /
ville gi en feil om å prøve å kjøre rm
i rotkatalogen. Denne er pålagt av POSIX :
Hvis […] en operandreso lves til rotkatalogen skal rm skrive en diagnostisk melding til standardfeil og ikke gjøre noe mer med slike operander.
Avhengig av på skallet og dets innstillinger, kan *.*
også matche ..
for overordnet katalog, men i tillegg til /
, å prøve å fjerne det er også en feil.
Ingen av disse vil ødelegge filsystemet, rm
vil bare (prøve å) fjerne filer ved hjelp av de vanlige filsystemanropene. Effekten på systemet generelt, eller brukerens filer, kan selvfølgelig være betydelig hvis den første kommandoen utføres i en katalog som inneholder viktige filer.
Kommentarer
- for tilstrekkelig nye versjoner av GNU
rm
(funksjonen ble opprinnelig stjålet fra Solaris IIRC). Best ikke gråte hvis den innebygde letterm
er ikke kompatibel med den nyeste POSIX.