Zal rm -rf *.*
uw bestandssysteem beschadigen terwijl rm -rf /
niet zal werken this?
Reacties
- Unix en Linux Stack Exchange zijn al meer dan 6 jaar behulpzaam, en SuperUser voor hetzelfde: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
Antwoord
Daar “is niets speciaals aan, rm -rf *.*
is een commando met een jokerteken voor de bestandsnaam, het zal recursief alle bestanden in de huidige directory verwijderen die een punt in hun naam bevatten.
rm -rf /
zou een foutmelding geven over het proberen om rm
in de root-directory uit te voeren. Deze is verplicht gesteld door POSIX :
Als […] een operandreso lves naar de root-directory, rm zal een diagnostisch bericht naar standaardfout schrijven en niets meer doen met dergelijke operanden.
Afhankelijk op de shell en zijn instellingen, *.*
kan ook overeenkomen met ..
voor de bovenliggende directory, maar net zo goed als de /
, proberen te verwijderen is ook een fout.
Geen van beide zal het bestandssysteem beschadigen, rm
zal alleen (proberen te) verwijderen bestanden met behulp van de gebruikelijke aanroepen van het bestandssysteem. Het effect op het systeem in het algemeen, of de bestanden van de gebruiker, kan natuurlijk aanzienlijk zijn als het eerste commando wordt uitgevoerd in een directory met belangrijke bestanden.
Opmerkingen
- voor voldoende nieuwe versies van GNU
rm
(functie oorspronkelijk gestolen van Solaris IIRC). Je kunt beter niet huilen als je ingesloten lichtgewichtrm
is niet compatibel met de nieuwste POSIX.