ЗШ:
Если вы используете zsh
alias -g ,,=".."
- это то, что вам нужно, но это приведет к тому, что ",," будет расширяться везде, а не только при использовании с cd
.
От man zshbuiltins
:
Если присутствует флаг -g
, определите глобальный псевдоним; глобальные псевдонимы расширяются, даже если они не встречаются в командном положении.
BASH:
Если ограничено bash
(поскольку вопрос помечен как bash), прочитайте следующее:
Как и требовалось, это чисто псевдонимное решение, однако оно сделает больше, чем требуется, возможно, расстроит пользователя (см. Предупреждение в конце моего поста).
Цитирую man bash
:
Если последний символ значения псевдонима является пустым, то следующее слово команды, следующее за псевдонимом, также проверяется на расширение псевдонима.
Поэтому достаточно псевдонима cd
с дополнительным пробелом (чтобы разрешить расширение его следующего аргумента), а затем псевдоним ,,
to ..
Видеть, что
alias cd='cd '
alias ,,='..'
дает именно то, что вам нужно.
Обратите внимание, что это верно не только для bash
(и его alias
), но и для всех POSIX-совместимых оболочек. Цитируем пример из man 1p alias
(руководство не описывает эту функцию явно, только через пример):
Настройте nohup так, чтобы он мог иметь дело с аргументом, который сам является псевдонимом:
alias nohup="nohup "
Предупреждение: как пишет @PeterCordes в своем комментарии, это автоматически приведет к расширению других псевдонимов при записи после cd
. Может потребоваться написать cd \grep
если вы хотите изменить каталог на каталог с именем grep
но ваш grep
является псевдонимом для grep --color=auto
. Без обратной косой черты, cd
сообщит об ошибке "слишком много аргументов" (вы не можете cd
в двух каталогах сразу)!.