ZSH:
Jeśli korzystasz z zsh alias -g ,,=".."tego, czego potrzebujesz, ale spowoduje to rozszerzenie „,,” wszędzie, nie tylko w połączeniu z cd.
Od man zshbuiltins:
Jeśli -g flaga jest obecna, zdefiniuj alias globalny; aliasy globalne są rozwijane, nawet jeśli nie występują w pozycji polecenia.
GRZMOTNĄĆ:
Jeśli jest to ograniczone bash(ponieważ pytanie jest oznaczone tagiem bash ), przeczytaj następujące informacje:
Jest to rozwiązanie czysto aliasowe, zgodnie z żądaniem, jednak będzie to więcej niż wymagało, prawdopodobnie frustrujące użytkownika (zobacz ostrzeżenie na końcu mojego postu).
Cytat man bash:
Jeśli ostatni znak wartości aliasu jest pusty, to następne słowo polecenia następujące po aliasie jest również sprawdzane pod kątem rozszerzenia aliasu.
Dlatego wystarczy alias cdz dodatkową spacją (aby umożliwić rozwinięcie następnego argumentu), a następnie alias ,,do ... Zobaczyć, że
alias cd='cd '
alias ,,='..'
daje dokładnie to, czego potrzebujesz.
Zauważ, że jest to poprawne nie tylko dla bash(i jego aliasimplementacji), ale dla wszystkich powłok kompilujących POSIX. Cytując przykład z man 1p alias(podręcznik nie opisuje tej funkcji wyraźnie, tylko na przykładzie):
Ustaw nohup tak, aby mógł sobie poradzić z argumentem, który sam jest nazwą aliasu:
alias nohup="nohup "
Ostrzeżenie:
Jak pisze @PeterCordes w swoim komentarzu, spowoduje to automatyczne rozszerzenie innych aliasów po zapisaniu cd. Może zaistnieć potrzeba napisania, cd \grepjeśli chcesz zmienić katalog na inny, grepale twój grepjest aliasem dla grep --color=auto. Bez odwrotnego ukośnika cdzgłosi błąd „zbyt wiele argumentów” (nie można cddwóch katalogów naraz) !.
$ ,,by narzekać, takie jak:bash: ..: Is a directory. (Innymi słowy, nie jest to plik wykonywalny.)