
Ich habe einen Alias, den ich sowohl als normaler Benutzer als auch als Root über sudo verwenden möchte. Genauer gesagt ist es dieser:
alias rm=trash
Dies funktioniert als normaler Benutzer einwandfrei und es funktioniert auch einwandfrei, wenn ich verwende, sudo -i
um eine Root-Shell-Eingabeaufforderung zu erhalten. Wenn ich jedoch verwende sudo rm
, gilt der Alias nicht. Wo muss ich also meinen Alias eingeben, damit er in einmaligen Sudo-Befehlen funktioniert?
Antwort1
Erstellen Sie einen Alias für sudo mit einem Leerzeichen am Ende:
alias sudo='sudo '
Dann funktionieren alle anderen Aliase mit sudo.
Aber wie in der anderen Antwort erwähnt, ist Aliasing rm
zur Ausführung trash
wahrscheinlich keine gute Idee. Ich mache es gerne rm
so:
alias rm='echo "rm is disabled, use trash or /bin/rm instead."'
Damit werden Sie sich schnell angewöhnen, trash
anstelle von einzugeben rm
.
Antwort2
Das wird nicht funktionieren, aber wenn Sie eine Funktion verwenden und diese exportieren, wird es funktionieren.
dl () { trash "$@"; }
export -f dl
Die Verwendung eines Alias ist keine gute Idee rm
, denn wenn Sie sich angewöhnen, dass der Alias oder die Funktion Sie schützt, und der Alias irgendwann aus irgendeinem Grund nicht mehr verfügbar ist, verwenden Sie ihn rm
und es wird eine Menge Zeug gelöscht, das nur schwer wiederhergestellt werden kann.