Gli alias non hanno lo scopo di farlo, ma puoi creare una funzione chiamata cd questo è un involucro per il vero cd . Questo funziona per me! Basta inserirlo nel tuo .bash_profile o il file del tuo profilo preferito.
cd () { if [ "$1" = ",," ]; then builtin cd ..; else builtin cd "example@unixlinux.online"; fi; }
Oppure, con commenti e una bella formattazione:
cd ()
{
if [ "$1" = ",," ]; then # if first argument is ",,"...
builtin cd .. # call the builtin cd with ".." instead...
else
builtin cd "example@unixlinux.online" # else call builtin cd with original arguments
fi
}
MODIFICA
Grazie @derobert per aver sottolineato che if then else qui è migliore di && || . Inoltre, ho appena realizzato (*facepalm *) che questa implementazione funzionerà solo se qualsiasi argomento non di percorso (ad es. -L -P ) non sono il primo argomento. Quindi fai attenzione, se hai la cattiva abitudine di digitare cd -L ,, questo non ti aiuterà. E questo non è banale da gestire correttamente, credo.
ZSH:
Se stai usando zsh alias -g ,,=".." è ciò di cui hai bisogno, ma questo farà sì che "," venga espanso ovunque, non solo se usato con cd .
Da man zshbuiltins :
Se
-gflag è presente, definire un alias globale; gli alias globali vengono espansi anche se non si trovano nella posizione di comando.
BASH:
Se limitato a bash (poiché la domanda è contrassegnata con bash), leggi quanto segue:
Questa è una soluzione di puro alias, come richiesto, comunque questo farà più del necessario, probabilmente frustrando l'utente (vedi l'avviso alla fine del mio post).
Citando man bash :
Se l'ultimo carattere del valore dell'alias è uno spazio vuoto, viene controllata anche la successiva parola di comando che segue l'alias per l'espansione dell'alias.
Pertanto è sufficiente alias cd con uno spazio extra (per consentire l'espansione del suo argomento successivo) e poi alias ,, a .. . Vedi quello
alias cd='cd '
alias ,,='..'
fornisce esattamente ciò di cui hai bisogno.
Nota che questo è corretto non solo per bash (e il suo alias implementazione), ma tutte le shell conformi a POSIX. Citando un esempio da man 1p alias (il manuale non descrive esplicitamente questa caratteristica, solo attraverso un esempio):
Imposta nohup in modo che possa gestire un argomento che è esso stesso un nome alias:
alias nohup="nohup "
Avviso: Come scrive @PeterCordes nel suo commento, causerà automaticamente other alias da espandere quando scritti dopo cd . Potrebbe essere necessario scrivere cd \grep se vuoi cambiare la directory in una chiamata grep ma il tuo grep è un alias per grep --color=auto . Senza la barra rovesciata, cd riporterà l'errore "troppi argomenti" (non puoi cd a due directory contemporaneamente)!.
Gli alias devono essere la prima parola di un comando. Inoltre, l'alias deve essere sostituito da una parola quindi niente spazi).
Manuale di riferimento di Bash:alias
Gli alias consentono di sostituire una parola con una stringa quando viene utilizzato come prima parola di un semplice comando.
Potresti alias entrambi .. e ,, essere cd .. .
$ alias ..="cd .."
$ alias ,,="cd .."
$ cd /tmp && pwd
/tmp
$ ,, && pwd
/