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.

Connor Montgomery
fonte

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 % 
Stéphane Gimenez
fonte
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 #