Afficher le message lorsque le CD dans un répertoire spécifique

15

Comment puis-je afficher un message lorsque je suis cddans un répertoire spécifique? Ce répertoire est local et j'ai juste besoin d'un rappel lorsque j'y vais depuis le terminal.

Connor Montgomery
la source

Réponses:

25

Si j'étais vous, je jouerais avec quelque chose comme ça dans mon fichier de configuration shell (par exemple ~/.bashrc):

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

alias cd=reminder_cd

De cette façon, vous pouvez ajouter un .cd-reminderfichier dans chaque répertoire pour lequel vous souhaitez obtenir un rappel. Le contenu du fichier sera affiché après chaque succès cddans le répertoire.

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
la source
1
Idée sympa au fait! J'aime ça, et peut-être que je vais l'utiliser aussi :-)
Stéphane Gimenez
Pas importat dans ce cas, mais en général il est bon de toujours citer deux fois $@.
enzotib
1
Merci, je me demande maintenant s'il y a des cas où on $@devrait préférer "$@"
Stéphane Gimenez
1
Vous devez utiliser $@ou $*(c'est la même chose sans guillemets) lorsque vous souhaitez que le fractionnement de mots IFS se produise.
Chris Down
Si vous utilisez cette méthode, n'oubliez pas d'alias pushdet popdaussi.
mVChr