ZSH:
Se você zsh
alias -g ,,=".."
está usando é o que você precisa, mas isso fará com que ",," seja expandido em todos os lugares, não apenas quando usado cd
.
De man zshbuiltins
:
Se o -g
sinalizador estiver presente, defina um alias global; aliases globais são expandidos, mesmo que não ocorram na posição de comando.
BATER:
Se restrito a bash
(como a pergunta está marcada com bash ), leia o seguinte:
Esta é uma solução de alias puro, conforme solicitado, no entanto , isso fará mais do que o necessário, possivelmente frustrando o usuário (consulte o aviso no final da minha postagem).
Citação man bash
:
Se o último caractere do valor do alias estiver em branco, a próxima palavra de comando após o alias também será verificada quanto à expansão do alias.
Portanto, basta alias cd
com um espaço extra (para permitir a expansão de seu próximo argumento) e, em seguida, alias ,,
para ..
. Veja isso
alias cd='cd '
alias ,,='..'
dá exatamente o que você precisa.
Observe que isso está correto não apenas para bash
(e sua alias
implementação), mas para todos os shells compiladores POSIX. Citando um exemplo de man 1p alias
(o manual não descreve esse recurso explicitamente, apenas através de um exemplo):
Configure nohup para que ele possa lidar com um argumento que é ele próprio um nome alternativo:
alias nohup="nohup "
Aviso:
como o @PeterCordes escreve em seu comentário, ele automaticamente fará com que outros aliases se expandam quando escritos depois cd
. Pode ser necessário que você escreva cd \grep
se deseja alterar o diretório para um nomeado, grep
mas seu grep
é um alias para grep --color=auto
. Sem a barra invertida, cd
será relatado o erro "muitos argumentos" (você não pode acessar cd
dois diretórios ao mesmo tempo) !.
$ ,,
iria reclamar, tais como:bash: ..: Is a directory
. (Em outras palavras, não é um executável.)