bash中的文件夹快捷方式

时间:2015-09-09 02:02:56

标签: bash command-line

我在多个其他文件夹中的文件夹中有一个git repo。当我想使用git的命令行时,我必须执行cd /Desktop/.../.../.../.../repo_folder来执行git命令。他们是否可以设置文件夹的快捷方式或更快地访问文件夹,因为必须输入70个字符的长路径并不理想

先谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用cdable_vars的{​​{1}}选项,该选项允许您使用变量名称调用bash。如果传递给cd的参数不是目录,则假定它是变量名,并且变量的值用作目标目录。

使用示例:如果您将其放在cd

~/.bashrc

然后,当您的当前目录是您想要记住的目录时,只需输入:

alias show='cat ~/.dirs'
save () {
    here=`pwd`
    if (( $# == 0 )); then
        name=`basename $here`
    elif (( $# > 1 )); then
        echo "usage: save [<name>]"
        return -1
    else
        name=$1
    fi
    sed -i -e "/^$name=/d" ~/.dirs
    echo "$name=\"$here\"" >> ~/.dirs
    source ~/.dirs
}
source ~/.dirs
shopt -s cdable_vars

,下次你想去那里时,只需输入:

save my_dir

只要您输入cd my_dir 目录,就会将其带到您想要的位置。 my_dir参数是可选的。如果您不提供,则定义的简写将是当前目录的基本名称:

save

cd /Desktop/../../../../repo_folder save 定义为此目录的简写。

repo_folder文件包含您喜欢的目录的变量定义。如果您愿意,可以手动编辑。每次启动新的~/.dirs shell时都会评估这些定义。请注意,他们可能会覆盖您还需要的其他人。如果这是一个问题,我建议您选择独特的短手(bash而不是my_dir_repo_folder)。当你输入:

时,请记住第二个陷阱
repo_folder

如果有本地子目录cd foo ,您可以转到本地子目录foo,也可以转到您定义foo短手的目录。还有第三个:如果你重新定义一个简短的手,那么前一个被覆盖。所以,这个技巧很方便,但有点危险,因为当你cd时,你不知道你是否真的想去的地方。自定义提示以显示当前路径可能是一个好主意。

show别名只是列出所有当前定义的短手的方法。

答案 1 :(得分:0)

只需在bash快捷方式属性中设置“start in”参数,每次运行bash时都会打开你的repo文件夹:)

enter image description here