ZSH:
Si está usando zsh
alias -g ,,=".."
es lo que necesita, pero esto hará que ",," se expanda a todas partes, no solo cuando se use con cd
.
De man zshbuiltins
:
Si la -g
bandera está presente, defina un alias global; los alias globales se expanden incluso si no ocurren en la posición del comando.
GOLPETAZO:
Si está restringido a bash
(ya que la pregunta está etiquetada con bash ), lea lo siguiente:
Esta es una solución de alias puro, según lo solicitado, sin embargo , esto hará más de lo necesario, posiblemente frustrando al usuario (vea la advertencia al final de mi publicación).
Citando man bash
:
Si el último carácter del valor de alias está en blanco, entonces la siguiente palabra de comando que sigue al alias también se verifica para la expansión de alias.
Por lo tanto, es suficiente alias cd
con un espacio adicional (para permitir la expansión de su próximo argumento) y luego alias ,,
a ..
. Mira eso
alias cd='cd '
alias ,,='..'
da exactamente lo que necesitas.
Tenga en cuenta que esto es correcto no solo para bash
(y su alias
implementación), sino para todos los shells compatibles con POSIX. Citando un ejemplo de man 1p alias
(el manual no describe esta característica explícitamente, solo a través de un ejemplo):
Configure nohup para que pueda lidiar con un argumento que en sí mismo es un nombre de alias:
alias nohup="nohup "
Advertencia:
como @PeterCordes escribe en su comentario, automáticamente hará que otros alias se expandan cuando se escriban después cd
. Puede requerir que escriba cd \grep
si desea cambiar el directorio a uno con nombre, grep
pero su grep
es un alias para grep --color=auto
. Sin la barra invertida, cd
se informará de un error de "demasiados argumentos" (¡no puede hacerlo cd
en dos directorios a la vez!).
$ ,,
se queja, tales como:bash: ..: Is a directory
. (En otras palabras, no es un ejecutable.)