Ich habe vor einiger Zeit gelesen (kann die Referenz nicht finden), dass die Verwendung eines solchen Alias alias rm="rm -i"
sehr schlecht war.
Gibt es historische Beweise oder eine vernünftige Erklärung für diese Tatsache?
Ich würde mir vorstellen, dass es eine schlechte Angewohnheit für einen Benutzer ist, sich auf die Bestätigungsaufforderung zu verlassen, um seinen Befehl zu überprüfen. Dies kann zu Katastrophen führen, wenn er dies in einem anderen Profil tut, das nicht über den Alias verfügt.
Antworten:
Du hast recht.
Es ist schlimm, weil man sich daran gewöhnt. Wenn Sie sich auf einem System befinden, auf dem es nicht vorhanden ist, und Sie
rm
, wird es sofort gelöscht, und Sie fragen sich, was los ist.Viele Benutzer sind es gewohnt, SSH in verschiedene Systeme zu integrieren. Daher ist die Verwendung vieler verschiedener Systeme, manchmal ohne eingerichtete personalisierte Benutzerkonten (einschließlich Aliase), eher üblich.
Verwenden Sie stattdessen zB
alias rmi='rm -i'
und lernen Sie, dieses zu verwenden. Wenn dies nicht auf einem anderen System eingerichtet ist, haben Sie nicht versehentlich Dateien gelöscht und können immer auf die Eingabe des vollständigen Befehls zurückgreifen.quelle
Wie @Daniel sagte, ist es an und für sich nicht schädlich, außer Sie zu trainieren, damit zu rechnen, dass es da ist. Tatsächlich ist es die Standardeinstellung auf CentOS-Maschinen (und, wie ich vermute, RHEL, seit ich eine verwendet habe, ist es zu lange her), und es ist ein gewaltiger Schmerz für den Tuchus . Für den Rest meiner Zeit bei diesem Gig habe ich / bin / rm eingegeben, um das Setup "Linux für Leute, die keinen Root-Zugriff haben sollten" zu vermeiden.
quelle
Ich denke, die große Gefahr ist, dass sich die Leute auf so etwas verlassen, um einen Glob zu filtern. Stellen Sie sich vor, Sie möchten einige Bilder aus einem Verzeichnis löschen, aber nicht alle:
Sie könnten das verwenden, um den Glob manuell zu filtern, was völlig vernünftig wäre. Aber wenn Sie es als Alias verwendet hätten
rm
und zufällig in einer Shell ohne diesen Alias gelandet wären und es ausprobiert hätten ... Sie haben einfach alle Ihre Bilder gelöscht, hoppla!Persönlich empfinde ich diesen Alias auch als blutdruckschädlich;). Aber das bin nur ich.
quelle
Zusätzlich zu dem, was Daniel Beck gesagt hat, habe ich versucht, das
-f
zu umgehen-i
, was potenziell gefährlich ist, da es dazu führt, dassrm -f
undrm -rf
unnötig. Irgendwie verwandt: Eine Möglichkeit,rm -rf
Probleme zu vermeiden , besteht darin, eine Datei mit dem Namen "-i" zu erstellen, wie in der Antwort auf die folgende Frage erläutert: Wie vermeide ich versehentliche rm -rf / *? .Aber auch hier, wenn dieser Alias nicht vorhanden wäre, würde ich -f nicht verwenden, und das Ganze wird kein Problem sein.
quelle
Dies ist weitaus weniger schädlich, da ich in der Vergangenheit mit Hunderten von Benutzern gearbeitet habe:
rm
in einem anderen Kontext verwendet wurden, in dem entweder diese Funktion oder derrm -i
Alias fehlten .rm
bleibt der Real unberührt, und andere Programme bleiben unberührt.Der Code-Stil ist größtenteils Sh-kompatibel (außer
echo .... | tr -d '\012'
für Pre-Bash-Shells). Sie können Ihren Code auch bash-spezifischer gestalten. Ich poste nicht, um den Code selbst freizugeben, sondern um die damit verbundene Änderung der Benutzererfahrung mitzuteilen .quelle
rm -i
Vergangenheit (nach meiner Erfahrung mit Hunderten von Benutzern) das Löschen von Dateien fehlerhaft war und dass die darin enthaltene Funktion Benutzer darin geschult hat, korrekte Platzhalter zu verwenden, wodurch die Fehlerrate gesenkt wurde. Ich habe mich also mit den wichtigsten Problemen befasstrm -i
und der Einfachheit halber eine Lösung bereitgestellt, und die bloße Tatsache, dass sich die Aufzählungszeichen unter der Funktion befinden, hindert sie nicht daran, von Belang zu sein.