就像本地.bashrc
文件一样,每次进入目录时都是source
d。
如何使这项工作?
答案 0 :(得分:7)
您可以使用别名:
$ echo 'echo "execute something for $PWD"' > tests/.cdrc
$ _cd()
{
\cd $1
[ -r .cdrc ] && . .cdrc
}
此函数首先更改为指定为参数的目录,检查文件.cdrc
是否可读并来源。
$ alias cd=_cd
然后
$ cd tests
execute something for /path/to/tests
答案 1 :(得分:3)
bash
和zsh
(可能还有许多其他shell)具有允许您在显示提示之前运行任意命令的功能。您可以使用它来获取.dirrc
文件,但不会破坏标签页。
以下是bash
:
PROMPT_COMMAND='
if [ "${PREV}" != "$(pwd -P)" ]; then
if [ -r .dirrc ]; then
. ./.dirrc
fi
PREV=$(pwd -P)
fi
'
来自bash
手册页:
PROMPT_COMMAND
:如果设置,则在发出每个主要提示之前将该值作为命令执行。
这是在zsh
中执行此操作的方法(请参阅zshmisc
手册页):
precmd() {
if [ "${PREV}" != "$(pwd -P)" ]; then
if [ -r .dirrc ]; then
. ./.dirrc
fi
PREV=$(pwd -P)
fi
}