當您進入某個目錄時,是否可以將腳本設定為在特定目錄中執行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