cd进入选择目录

时间:2017-10-06 14:37:14

标签: bash shell

我想发布:$ git status 当我进入〜/ work

我考虑过设置一个别名,让我进入工作目录并启动git状态,但我发现这个解决方案不是最佳的。

2 个答案:

答案 0 :(得分:3)

将此添加到您的.bashrc

gitstatusinwork() {
    if [[ "$PWD" != "$MYOLDPWD" ]]; then
        MYOLDPWD="$PWD"
        if [[ "$PWD/" = ~/work/* ]]; then
            if [[ "$OLDPWD" != ~/work/* && "$INWORKDIR" == 0 ]]; then
                git status
            fi
            INWORKDIR=1
        else
            INWORKDIR=0
        fi
    fi
}

export PROMPT_COMMAND="$PROMPT_COMMAND; gitstatusinwork"

只要您输入git status目录(或其任何子目录),此函数就会执行~/work,然后再也不会再显示它,除非您离开~/work目录并且再次重新输入。

答案 1 :(得分:1)

最简单的方法是:

cd ~/work && git status

我不认为你在寻找这个。

另一个选项是覆盖默认的cd命令。您可以在.bashrc.bash_profile文件末尾添加bash功能,如下所示:

cd() {
  builtin cd "$1"
  # detect if the current directory is a git repository
  if [ -d .git ] || git rev-parse --is-inside-work-tree 2> /dev/null > /dev/null; then
    echo ""; git status
  fi      
}

我希望这会有所帮助。

<强>更新

如果您只想在git status进入回购根目录时看到cd,则可以使用条件的第一部分,如下所示:

cd() {
  builtin cd "$1"
  # detect if the current directory is a git repository
  if [ -d .git ]; then
    echo ""; git status
  fi      
}