linux - bash 的目录书签

标签 linux bash ubuntu

是否有任何 bash 目录书签实用程序允许在命令行上更快地移动?

更新

感谢大家的反馈,不过我创建了自己的简单 shell 脚本(请随意修改/扩展它)

function cdb() {
    USAGE="Usage: cdb [-c|-g|-d|-l] [bookmark]" ;
    if  [ ! -e ~/.cd_bookmarks ] ; then
        mkdir ~/.cd_bookmarks
    fi

    case $1 in
        # create bookmark
        -c) shift
            if [ ! -f ~/.cd_bookmarks/$1 ] ; then
                echo "cd `pwd`" > ~/.cd_bookmarks/"$1" ;
            else
                echo "Try again! Looks like there is already a bookmark '$1'"
            fi
            ;;
        # goto bookmark
        -g) shift
            if [ -f ~/.cd_bookmarks/$1 ] ; then 
                source ~/.cd_bookmarks/"$1"
            else
                echo "Mmm...looks like your bookmark has spontaneously combusted. What I mean to say is that your bookmark does not exist." ;
            fi
            ;;
        # delete bookmark
        -d) shift
            if [ -f ~/.cd_bookmarks/$1 ] ; then 
                rm ~/.cd_bookmarks/"$1" ;
            else
                echo "Oops, forgot to specify the bookmark" ;
            fi    
            ;;
        # list bookmarks
        -l) shift
            ls -l ~/.cd_bookmarks/ ;
            ;;
         *) echo "$USAGE" ;
            ;;
    esac
}

安装

1./创建一个文件~/.cdb 并将上面的脚本复制进去。

2./在你的 ~/.bashrc 添加以下内容

if [ -f ~/.cdb ]; then
    source ~/.cdb
fi 

3./重启你的 bash session

用法

1./创建书签

$cd my_project
$cdb -c project1

2./转到书签

$cdb -g project1

3./列出书签

$cdb -l 

4./删除书签

$cdb -d project1

5./我所有的书签都存储在哪里?

$cd ~/.cd_bookmarks

最佳答案

另外,看看 CDPATH

可用于 cd 命令的以冒号分隔的搜索路径列表,在功能上类似于二进制文件的 $PATH 变量。 $CDPATH 变量可以在本地 ~/.bashrc 文件中设置。

ash$ cd bash-doc
bash: cd: bash-doc: No such file or directory

bash$ CDPATH=/usr/share/doc
bash$ cd bash-doc
/usr/share/doc/bash-doc

bash$ echo $PWD
/usr/share/doc/bash-doc

cd -

它是后退按钮的命令行等效项(将您带到您所在的上一个目录)。

关于linux - bash 的目录书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374534/

相关文章:

linux - 迁移基于字符的 Oracle 表单

bash - 通过 grepping qstat 输出并将 jobid 发送到 qdel 来删除作业?

linux - 避免 Jenkins 错误 : sudo: no tty present and no askpass program specified 的最佳实践

php - 在 ubuntu 服务器上安装了 libphp-mailer,如何在 web 项目中使用它?

php - 使用 PHP 将图像添加到 mp3 文件的最佳方法?

java - JDK 8 在 Linux 上随机崩溃

xml - 如何查看文件夹中的新文件,然后将新文件作为 $1 执行脚本

bash - 使用 bash 向配置单元脚本发送可变数量的字段

linux - 如何在关闭 Ubuntu 时保持以太网卡处于开启状态?

linux - Golang exec 进程并否认它