用命令行快速切换目录

一般用pushd dir pop命令切换目录,但是能存储的目录太少,今天发现一个更好的方法,使用符号链接跳转
实际上这个手工解决方案总结起来是在一个隐藏文件夹下(例如 ~/.marks)储存符号链接.这里有4个shell函数:jump, mark, unmark, 和marks:
export MARKPATH=$HOME/.marks
function jump {
    cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
}
function mark {
    mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"
}
function unmark {
    rm -i "$MARKPATH/$1"
}
function marks {
    ls -l "$MARKPATH" | sed 's/  / /g' | cut -d' ' -f9- | sed 's/ -/\t-/g' && echo
}
将它们放在你的.zshrc或.bashrc 文件,你就可以开始跳转了(Mac OS X用户需要一个稍微有些不同的makes函数版本,请见下方)。我也把这转换成了一个叫做jump的oh-my-zsh插件,但是这玩意目前还在pull-request。为了添加一个新书签,cd到目录然后使用一个你喜欢的名字标记上它。

$ cd ~/some/very/deep/often-used/directory
$ mark deep
这段文字将在目录~/.marks中添加一个叫做deep的符号链接。跳转到这个目录,在文件系统中的任何地方输入以下命令。

$ jump deep
移除标签(即符号链接),输入:

$ unmark deep
你可以通过输入如下指令来浏览所有的标签

$ marks
 
deep    -> /home/johndoe/some/very/deep/often-used/directory
foo     -> /usr/bin/foo/bar

原文链接: jeroen janssens   翻译: 伯乐在线 伯乐在线读者
译文链接: http://blog.jobbole.com/46258/

posted @ 2013-08-26 20:27  sunsweet  阅读(324)  评论(0编辑  收藏  举报