Você pode adicionar essa função ao seu .bashrc
ou outro arquivo de inicialização (dependendo do seu shell). Espero que isso ajude.
cd() {
if [ "$1" = "public_html" ]; then
echo "current dir is my dir"
fi
builtin cd "$1"
}
Estou tentando configurar algo em um servidor que eu executo, sempre que eu cd
em uma pasta public_html
95% do tempo, há alguns comandos que sempre executarei para verificar certas coisas.
Existe alguma maneira que eu possa ligar em cd
, então se o diretório for um public_html
, ele irá executar automaticamente os comandos para mim?
Se eu não posso ligar para o comando cd
, existem outras coisas que eu poderia fazer para alcançar o resultado que eu estou procurando?
Estou executando o CentOS 5.8.
Com ksh
ou bash
(ou zsh
):
cd() {
builtin cd "$@" || return
[ "$OLDPWD" = "$PWD" ] || case $PWD in
(*/public_html) echo do something
esac
}
com zsh
:
chpwd()
case $PWD in
(*/public_html) echo do something
esac
( chpwd
é uma função gancho que é chamada sempre que o diretório de trabalho atual é alterado (por meio de cd
, pushd
, popd
...)).
Eu não sou um especialista, mas eu tomaria a resposta da @VVV e a modificaria um pouco para que ela fizesse isso:
public_html
, basta verificar o arquivo hook-script
no diretório de destino $1
, digamos, cd_hook.sh
. hook-script
existir, execute-o e continue com o cd
Isso parece mais genérico, porque você pode aplicar o cd
-hook a qualquer diretório, se você preferir, apenas adicionando um cd_hook.sh
no diretório.
Tags bash cd-command shell