Ein Sicherheitsnetz gegen unbedachtes rekursives Löschen lässt sich aufspannen, indem man in allen wichtigen Verzeichnissen eine leere Datei namens -i anlegt. Das geht mit
jcb@hercules:~/test$ >-i
oder
jcb@hercules:~/test$ touch -- -i
Existiert eine solche Datei, expandiert die Shell ein rm -rf * automatisch so, als wäre -i als Option angegeben worden. rm wechselt in den interaktiven Modus
und fragt dann nach:
jcb@hercules:~/test$ rm -rf * rm: Normale leere Datei »file1“ entfernen?
Will man dann den Verzeichnisinhalt tatsächlich löschen und nicht jede Datei bestätigen, müsste man eigentlich zuerst das -i-File entfernen.
jcb@hercules:~/test$ rm -- -i
Es geht aber auch einfacher und das ist gleichzeitig die Achillesferse des ganzen Verfahrens. Was nämlich nicht abgefangen wird ist:
jcb@hercules:~/test$ rm -rf ./*
Diese Form sollte man sich also besser abgewöhnen, damit die Versicherung greift.
Nicht überzeugend
Montag, 17. Dezember 2012 09:44:42