【问题标题】:How to browse back (cd ..) to parent until find a specific folder?如何浏览(cd ..)到父级直到找到特定文件夹?
【发布时间】:2019-09-26 15:53:11
【问题描述】:

我经常通过终端深入浏览我的 Git 存储库文件夹结构,我想向后导航直到到达包含 .git 文件夹的根文件夹。

例如:

cd ./a/b/c/d/e/f/g/h/i

为了返回 a 文件夹父级,我需要执行 Git 本地存储库根目录:

cd ../../../../../../../../..

如果没有很多../,我如何能够返回到根文件夹?

【问题讨论】:

    标签: git shell terminal parent cd


    【解决方案1】:

    在您的主文件夹中创建一个sh 文件:$ vim ~/.back2root.sh 并粘贴以下脚本:

    while [ ! -d $(pwd)/.git ]
    do
            cd ..
    done
    ls -ahl
    

    你也可以定义一个 Git 别名:

    $ git config --global alias.back2root '!~/.back2root.sh'

    并且只打电话:

    $ git back2root

    【讨论】:

    • 如果您的当前文件夹是 git repo 子文件夹的符号链接,则此方法不起作用。 cd .. 然后无限执行。
    • @ByteHamster 谢谢!你会建议改进吗?
    • 我什么都不知道。我猜padawin的答案(向git询问路径)应该比手动做更可靠。
    【解决方案2】:

    您可以使用以下命令:

    cd `git rev-parse --show-toplevel`
    

    感谢 jthill 提供更新版本。

    【讨论】:

    • 不要这样做,改用cd `git rev-parse --show-toplevel` 。 git 目录不一定在工作树的顶部(例如,子模块)。
    • 太棒了!谢谢@padawin
    猜你喜欢
    • 1970-01-01
    • 2015-08-04
    • 2011-10-28
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    相关资源
    最近更新 更多