【发布时间】:2011-11-14 12:42:11
【问题描述】:
是否有任何用于 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 会话
用法
1./ 创建书签
$cd my_project
$cdb -c project1
2./ 转到书签
$cdb -g project1
3./ 列出书签
$cdb -l
4./ 删除书签
$cdb -d project1
5./ 我所有的书签都存储在哪里?
$cd ~/.cd_bookmarks
【问题讨论】:
-
为什么这个问题和你的脚本 bash 是特定的?您应该尽量避免使用 bash 脚本。改为编写 shell 脚本。
-
@Jens 我用这个book 做我想做的事。
-
这个也不错。 jeroenjanssens.com/2013/08/16/… 它甚至有自动完成功能。