ZSH:
Wenn Sie verwenden, zsh
alias -g ,,=".."
ist es das, was Sie benötigen, aber dies wird dazu führen, dass ",," überall erweitert wird, nicht nur, wenn es mit verwendet wird cd
.
Von man zshbuiltins
:
Wenn das -g
Flag vorhanden ist, definieren Sie einen globalen Alias. globale Aliase werden erweitert, auch wenn sie nicht in der Befehlsposition auftreten.
BASH:
Wenn Sie die Einschränkung auf bash
(da die Frage mit bash gekennzeichnet ist ) haben, lesen Sie Folgendes:
Dies ist, wie gewünscht, eine reine Alias-Lösung, die jedoch mehr als erforderlich ist und möglicherweise den Benutzer frustriert (siehe die Warnung am Ende meines Beitrags).
Zitat man bash
:
Wenn das letzte Zeichen des Alias-Werts leer ist, wird auch das nächste Befehlswort nach dem Alias auf Alias-Erweiterung überprüft.
Daher reicht es aus, einen Alias cd
mit einem zusätzlichen Leerzeichen zu versehen (um das nächste Argument zu erweitern) und dann einen Alias ,,
mit ..
. Siehst du das
alias cd='cd '
alias ,,='..'
gibt genau das was du brauchst.
Beachten Sie, dass dies nicht nur für bash
(und dessen alias
Implementierung), sondern für alle POSIX-kompilierten Shells gilt. Zitieren eines Beispiels aus man 1p alias
(das Handbuch beschreibt diese Funktion nicht explizit, sondern nur anhand eines Beispiels):
Richten Sie nohup so ein, dass es mit einem Argument umgehen kann, das selbst ein Aliasname ist:
alias nohup="nohup "
Warnung:
Während @PeterCordes in seinen Kommentar schreibt, werden andere Aliase automatisch erweitert, wenn sie nachher geschrieben werden cd
. Möglicherweise müssen Sie schreiben, cd \grep
wenn Sie das Verzeichnis in ein benanntes Verzeichnis ändern möchten, das grep
jedoch grep
ein Alias für ist grep --color=auto
. Ohne den umgekehrten Schrägstrich cd
wird der Fehler "zu viele Argumente" gemeldet (Sie können nicht cd
zwei Verzeichnisse gleichzeitig aufrufen).
$ ,,
würden sich beschweren, wie zum Beispiel:bash: ..: Is a directory
. (Mit anderen Worten, es ist keine ausführbare Datei.)