Está disponível para definir o script para ser executado em um diretório específico, quando você cd
estiver nele?
Por exemplo, se /foo
for um diretório com git
projeto, é possível cd /foo
executar automaticamente git status
ou alguns npm
scripts?
Por favor, não vincule a resposta estritamente a git
, imagine que poderia ser qualquer outro comando/script.
Responder1
Você pode substituir cd
por uma função que adiciona qualquer processamento desejado:
cd() {
builtin cd "$@"
# Do whatever you want here
}
Responder2
Eu uso algo semelhante à resposta de Stephen Kitt em meu .bashrc
:
function cd() {
command cd "$@" || return
if [[ -d .git ]]
then
git status --short
else
ls -al
fi
}
Você pode criar condições adicionais para lidar com coisas diferentes conforme necessário.
NOTA: como estamos destruindo a referência ao cd
comando, você deve usar command cd
, builtin cd
, ou \cd
para evitar que a função se chame e se repita para sempre. Por esta razão, alguns podem achar útil renomear esta função.
Responder3
Uma das maneiras de fazer isso é através alias
do comando:
alias cdgit="cd /foo; git status"
Então você executa cdgit
e vai para o diretório /foo
e execgit status