ZSH:
Se zsh
alias -g ,,=".."
stai usando è quello che ti serve, ma questo farà sì che ",," sia espanso ovunque, non solo quando utilizzato con cd
.
Da man zshbuiltins
:
Se la -g
bandiera è presente, definire un alias globale; gli alias globali vengono espansi anche se non si verificano nella posizione di comando.
BASH:
Se limitato a bash
(poiché la domanda è taggata con bash ), leggi quanto segue:
Questa è una soluzione alias pura, come richiesto, tuttavia ciò farà più del necessario, eventualmente frustrando l'utente (vedere l'avviso alla fine del mio post).
Citando man bash
:
Se l'ultimo carattere del valore di alias è vuoto, anche la parola di comando successiva che segue l'alias viene verificata per l'espansione dell'alias.
Pertanto è sufficiente alias cd
con uno spazio aggiuntivo (per consentire l'espansione del suo argomento successivo) e quindi alias ,,
a ..
. Guarda quello
alias cd='cd '
alias ,,='..'
dà esattamente ciò di cui hai bisogno.
Si noti che ciò è corretto non solo per bash
(e la sua alias
implementazione), ma per tutte le shell compilanti POSIX. Citando un esempio da man 1p alias
(il manuale non descrive esplicitamente questa funzione, solo attraverso un esempio):
Imposta nohup in modo che possa gestire un argomento che sia esso stesso un nome alias:
alias nohup="nohup "
Avvertenza:
come scrive @PeterCordes nel suo commento, causerà automaticamente l' espansione di altri alias dopo la scrittura cd
. Potrebbe essere necessario scrivere cd \grep
se si desidera modificare la directory con una denominata grep
ma il proprio grep
è un alias per grep --color=auto
. Senza la barra rovesciata, cd
verrà segnalato l'errore "troppi argomenti" (non è possibile accedere cd
a due directory contemporaneamente) !.
$ ,,
si lamentano, come ad esempio:bash: ..: Is a directory
. (In altre parole, non è un eseguibile.)