Is er een verschil tussen rm -rf / en rm -rf *. *?

Zal rm -rf *.* uw bestandssysteem beschadigen terwijl rm -rf / niet zal werken this?

Reacties

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 lichtgewicht rm is niet compatibel met de nieuwste POSIX.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *