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