2

I'm looking for a way to display a custom message when cd'ing into a directory. For example

$ cd some_folder
Warning: Don't edit these files!
some_folder $

From an old post I found the suggestion of adding this to my .bashrc file:

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

alias cd=reminder_cd

With this script, if I have a file .reminder_cd in my folder, the contents of that file are displayed when I cd into it.

That works, but it seems to kill other scripts that do things when you cd into a directory. Specifically, it kills the ability for Ruby RVM to use .rvmrc to switch ruby versions when you cd into a directory.

Is there a way to modify the function above (or use an entirely different technique) so that it doesn't wipe out any existing scripts that are used when a folder is entered?

Sam Fen
  • 5,074
  • 5
  • 30
  • 56

1 Answers1

2

RVM has hooks for most of the commands, you can create one:

hook="$rvm_path/hooks/after_cd_reminder"
echo "[ ! -f .cd-reminder ] || cat .cd-reminder 1>&2" > "$hook"
chmod +x "$hook"
mpapis
  • 52,729
  • 14
  • 121
  • 158