从 Reddit 线程中,我发现了这个简短的片段,您可以将其添加到自动显示您已进入的.bashrc
目录的内容列表中:cd
cd() {
builtin cd "$@" && ls
}
虽然这很棒,但我希望只有当我cd
进入的文件夹是$HOME
.有什么办法可以做到吗?
答案1
ls
仅当当前目录(成功更改后)是用户的主目录或其子目录时,才会执行以下命令:
cd () {
builtin cd "$@" || return
case $PWD in
"$HOME"|"$HOME"/*) ls
esac
}
或者,使用 a[ ... ]
和[[ ... ]]
test in bash
:
cd () {
builtin cd "$@" || return
if [ "$PWD" = "$HOME" ] || [[ $PWD == "$HOME"/* ]]; then
ls
fi
}
或者,使用扩展的通配模式bash
:
cd () {
builtin cd "$@" || return
if [[ $PWD == @("$HOME"|"$HOME"/*) ]]; then
ls
fi
}