Em vez disso, use uma variável para definir o diretório base.
CODE_BASE="/home/me/code/"
alias c1="cd $CODE_BASE/php"
alias c2="cd $CODE_BASE/jquery"
alias c3="cd $CODE_BASE/ruby"
alias c4="cd $CODE_BASE/c"
Eu tenho .bash_aliases com:
alias c1='cd /home/me/code/php'
alias c2='cd /home/me/code/jquery'
alias c3='cd /home/me/code/ruby'
alias c4='cd /home/me/code/c'
Como posso DRY aumentar o acoplamento para toda a estrutura de diretórios?
Eu tentei:
alias code_base='/home/me/code/'
alias c1='cd code_base/php'
alias c2='cd code_base/jquery'
alias c3='cd code_base/ruby'
alias c4='cd code_base/c'
mas recebo o erro "é um diretório" quando tento usar c1 a c4 .
Eu também tentei:
alias c1='cd 'code_base'/php'
mas isso não funcionou; isso me deu:
bash: cd: /php: No such file or directory
Eu tentei alias c1='cd '+ work +'/php' , mas isso também me deu o erro de diretório.
Além da resposta do mgorven, você também pode usar a variável CDPATH . De man bash :
CDPATH The search path for the cd command. This is a colon-separated
list of directories in which the shell looks for destination
directories specified by the cd command. A sample value is
".:~:/usr".
Se você definir como CDPATH=.:$HOME/code/ , basta executar cd php e alterar o diretório para $HOME/code/php se o diretório existir.
Outra solução é usar diretórios hash se você estiver usando zsh , por exemplo:
hash -d code_base=/home/me/code/
Depois, você pode usar cd ~code_base/directory para mudar para um diretório específico.
Tags bash alias cd-command