当您进入某个目录时,是否可以将脚本设置为在特定目录中运行cd
?
例如,如果/foo
是包含项目的目录git
,是否可以cd /foo
自动运行git status
或某些npm
脚本?
请不要将答案严格链接到git
,想象这可能是任何其他命令/脚本。
答案1
您可以替换cd
为添加您想要的任何处理的函数:
cd() {
builtin cd "$@"
# Do whatever you want here
}
答案2
我在我的.bashrc
:
function cd() {
command cd "$@" || return
if [[ -d .git ]]
then
git status --short
else
ls -al
fi
}
您可以根据需要创建额外的条件来处理不同的事情。
注意:由于我们正在破坏对命令的引用cd
,因此您必须使用command cd
、builtin cd
或\cd
来防止函数调用自身并永远递归。因此,有些人可能会发现重命名此函数很有用。
答案3
执行此操作的方法之一是通过alias
命令:
alias cdgit="cd /foo; git status"
然后你执行cdgit
并进入目录/foo
并执行git status