Existe um .bashrc ou .bash_profile específico da pasta?

Existe um .bashrc ou .bash_profile específico da pasta?

É possível ter um script bash (como um .bashrcou .bash_profile, basicamente) que é executado somente após o cd em uma pasta específica?

Responder1

Adicione isso ao seu arquivo ~/.bashrc.

Se .bashrcestiver localizado no diretório de trabalho atual:

PROMPT_COMMAND='if [[ "$bashrc" != "$PWD" && "$PWD" != "$HOME" && -e .bashrc ]]; then bashrc="$PWD"; . .bashrc; fi'

Responder2

Dependendo do seu caso de uso exato e das restrições,ondirpode atender às suas necessidades:

ondir é um pequeno programa para automatizar tarefas específicas para determinados diretórios. Funciona executando scripts em diretórios quando você entra e sai deles.

Isso é feito usando um ~/.ondirrcarquivo central para configuração por diretório. Em contraste, a PROMPT_COMMAND configuração inteligente sugerida por @Cyrus permite que a configuração resida nos próprios diretórios individuais. Cada abordagem é válida; depende das restrições e dos dados com os quais você está lidando.

Isenção de responsabilidade:Nunca usei ondirpessoalmente. Me deparei com isso enquanto procurava uma maneira automática de lidarconfiguração do usuário git por diretório. Nesse caso, ondirnão atendeu às minhas necessidades - acabei usando um alias git passando --configopções para git clone.

Responder3

adição da resposta do @Cyrus, se você usar zsh, precisará usar precmd():

PROMPT_COMMAND='if [[ "$profile" != "$PWD" && "$PWD" != "$HOME" && -e .profile ]]; then profile="$PWD"; source .profile; fi'
precmd() { eval "$PROMPT_COMMAND" }

é respondido deesta resposta

nota: meus testes imediatos para .profilenot .bashrc.

informação relacionada