Mostrar mensagem quando cd em diretório específico


15

Como posso exibir uma mensagem quando estou cdem um diretório específico? Esse diretório é local, e eu só preciso de um lembrete quando o acessar do terminal.

Respostas:


25

Se eu fosse você, eu brincaria com algo assim no meu arquivo de configuração do shell (por exemplo ~/.bashrc):

reminder_cd() {
    builtin cd "$@" && { [ ! -f .cd-reminder ] || cat .cd-reminder 1>&2; }
}

alias cd=reminder_cd

Dessa forma, você pode adicionar um .cd-reminderarquivo em cada diretório para o qual deseja receber um lembrete. O conteúdo do arquivo será exibido após cada êxito cdno diretório.

gim@tenebreuse ~/tmp % echo 'warning: this directory is pure junk' > .cd-reminder
gim@tenebreuse ~/tmp % cd ..
gim@tenebreuse ~ % cd tmp
warning: this directory is pure junk
gim@tenebreuse ~/tmp % 

1
Idéia legal por sinal! Eu gosto, e talvez eu também o deva usar :-)
Stéphane Gimenez

Não é importante neste caso, mas em geral é bom sempre usar aspas duplas $@.
enzotib

1
Obrigado, agora estou me perguntando se há algum caso em que $@deva ser preferido em vez de "$@"
Stéphane Gimenez

1
Você deve usar $@ou $*(eles são a mesma coisa quando não estão entre aspas) quando quiser que ocorra a separação de palavras do IFS.
Chris Baixo

Se você usar esse método, não esqueça de usar o alias pushde popdtambém.
MVChr #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.