Wie überschreibe ich den Terminalbefehl „rm“, um standardmäßig den Befehl „rm -i“ auszuführen?

Der Befehl rmnukleiert Dateien.

rm -ibittet um Bestätigung, bevor die Dateien gelöscht werden.

Wenn ich benutze rm, möchte ich rm -ipassieren.

Früher habe ich unter einem Systemadministrator gearbeitet, der ein großer Fan von war rm -i, also hat er es als Alias ​​auf jedem Server hinzugefügt. Das Ergebnis war, dass ich und alle anderen, die mit ihm arbeiteten, eine Praxis entwickelt haben, rm -rfbeim Leeren eines Verzeichnisses statt des sichereren rm -r, das sich weigert, schreibgeschützte Dateien zu löschen. Du denkst vielleicht, dass rm -idich das sicherer macht, aber meiner Erfahrung nach ist das Gegenteil der Fall.

Antworten (1)

Verwenden Sie einen Alias .

Der Alias-Befehl ermöglicht es dem Benutzer, einen beliebigen Befehl oder eine Gruppe von Befehlen (einschließlich Optionen und Dateinamen) durch Eingabe eines einzelnen Wortes zu starten

alias rm="rm -i"

Das nächste Mal, wenn Sie den Befehl ausgeben, rmwird er ausgegebenrm -i

Sie können auch einen neuen Alias ​​erstellen, falls Sie weiterhin rmso funktionieren möchten, wie es standardmäßig der Fall ist. So erstellen Sie einen neuen Alias

alias rmi="rm -i"

Jetzt rmhat es das Standardverhalten und rmidie -iOption

Um es dauerhaft zu machen, fügen Sie es einfach zu Ihrer ~/.bash_profile. Auf diese Weise ist Ihr Alias ​​immer einsatzbereit, wenn Sie eine neue Shell öffnen.

oder Sie können das Alias ​​aufheben rm, indem Sie rmeinen umgekehrten Schrägstrich voranstellen \rm, und es folgt dem Standardverhalten.
fd0, Ihr Kommentar, " oder Sie können das Alias ​​aufheben, indem Sie ein rmvoranstellen und es folgt dem Standardverhalten.rm\rm " ist nicht korrekt. Um den Alias ​​eines von Ihnen verwendeten Alias ​​aufzuheben , geben Sie in einem Terminal ein . Wenn man nun einen Alias ​​wie eine ausführbare Binärdatei benannt hat und die ausführbare Binärdatei anstelle des gleichnamigen Alias ​​ausführen möchte , kann man die Alias-Erweiterung stoppen , indem man einen umgekehrten Schrägstrich `\` voranstellt, und dabei ist man nicht unalias- Wenn Sie den Alias ​​verwenden , existiert der Alias ​​noch. unalias namehelp unalias
@ user3439894 Stimme zu, ich hätte es so formulieren sollen: "Sie können den Alias ​​vorübergehend aufheben". BTW, help unaliasgibt eine Fehlermeldung in meiner Shell zurück.
@fd0, welche Shell verwendest du? unaliasist eine eingebaute Bash-Shell und in OS X die Standard- Shell , help unaliasgibt zurück: "unalias: unalias [-a] Name [Name ...] Entferne NAMEN aus der Liste der definierten Aliase. Wenn die Option -a angegeben ist, dann alle Alias-Definitionen entfernen." Der entscheidende Punkt hier ist die Verwendung eines "\", um die Alias-Erweiterung zu stoppen , nicht den Alias ​​aufzuheben, nicht einmal vorübergehend, da dies impliziert, dass der Alias ​​zurückgesetzt werden muss . Ich weiß, dass es mit der Semantik etwas komisch ist , aber es ist wichtig, den Unterschied zwischen dem (vorübergehenden) Stoppen der Alias-Erweiterung und dem Unaliasing des Alias ​​zu verstehen .