ЗШ:
Если вы используете zsh
alias -g ,,=".."
то, что вам нужно, но это приведет к тому, что «,,» будет расширяться везде, а не только при использовании с cd
.
От man zshbuiltins
:
Если -g
флаг присутствует, определите глобальный псевдоним; глобальные псевдонимы расширяются, даже если они не встречаются в командном положении.
BASH:
Если ограничено bash
(поскольку вопрос помечен как bash ), прочитайте следующее:
Как и требовалось, это чисто псевдонимное решение, однако оно сделает больше, чем требуется, возможно, расстроит пользователя (см. Предупреждение в конце моего поста).
Цитирование man bash
:
Если последний символ значения псевдонима является пустым, то следующее слово команды, следующее за псевдонимом, также проверяется на расширение псевдонима.
Поэтому достаточно псевдоним cd
с дополнительным пробелом (чтобы разрешить расширение его следующего аргумента), а затем псевдоним ,,
для ..
. Видеть, что
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
с двумя каталогами) !.
$ ,,
жаловался бы, как таковойbash: ..: Is a directory
. (Другими словами, это не исполняемый файл.)