码迷,mamicode.com
首页 > 系统相关 > 详细

Linux,OS X mark工具(目录跳转工具)

时间:2015-03-20 23:41:48      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

转帖请注明出处  林夕木大大

在命令行里进行一些操作时,经常会遇到在多个目录之间来回切换的情况.这个时候就会很是苦恼.所以在网上搜索一番后总结如下:

Ubuntu/CentOS:

编辑 .bash_profile(或.profile)

添加如下内容:

 1 export MARKPATH=$HOME/.marks
 2 
 3 #mark 在你想马克的目录 : mark 别名 
 4 function mark { 
 5     mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"
 6 }
 7 
 8 #jump 在任意目录跳转到已经mark的目录 : jump 别名 
 9 function jump { 
10     cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
11 }
12 
13 #unmark 在任意目录删除已经mark的目录 : unmark 别名
14 function unmark { 
15     rm -i "$MARKPATH/$1"
16 
17 #   使用下面这句在删除时没有提醒 
18 #   rm -rf "$MARKPATH/$1"
19 }
20 
21 #marks 显示出所有mark的目录
22 function marks {
23     ls -l "$MARKPATH" | sed s/  / /g | cut -d  -f9- | sed s/ -/\t-/g && echo
24 }
25 
26 
27 
28 #此处的功能是 使用 jump/unmark + 双击tab键 提示已经mark的目录
29 _completemarks() {
30   local curw=${COMP_WORDS[COMP_CWORD]}
31   local wordlist=$(find $MARKPATH -type l -printf "%f\n")
32   COMPREPLY=($(compgen -W ${wordlist[@]} -- "$curw"))
33   return 0
34 }
35 complete -F _completemarks jump unmark

 

OS X

编辑 .bash_profile(或.profile)

添加如下内容:

 1 export MARKPATH=$HOME/.marks
 2 
 3 #mark 在你想马克的目录 : mark 别名 
 4 function mark { 
 5     mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"
 6 }
 7 
 8 #jump 在任意目录跳转到已经mark的目录 : jump 别名 
 9 function jump { 
10     cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
11 }
12 
13 #unmark 在任意目录删除已经mark的目录 : unmark 别名
14 function unmark { 
15     rm -i "$MARKPATH/$1"
16 
17 #   使用下面这句在删除时没有提醒 
18 #   rm -rf "$MARKPATH/$1"
19 }
20 
21 #marks 显示出所有mark的目录
22 function marks {
23     ls -l "$MARKPATH" | tail -n +2 | sed s/  / /g | cut -d  -f9- | awk -F  ->  {printf "%-10s -> %s\n", $1, $2}
24 }
25 
26 #此处的功能是 使用 jump/unmark + 双击tab键 提示已经mark的目录
27 _completemarks() {
28     local curw=${COMP_WORDS[COMP_CWORD]}
29     local wordlist=$(find $MARKPATH/ -type l -exec stat -f "%N" {} \; | sed s/^.*\/\// /g | sed s/ //g)
30     COMPREPLY=($(compgen -W ${wordlist[@]} -- "$curw"))
31     return 0
32 }
33 complete -F _completemarks jump unmark

 

相关网址: http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-from-the-command-line.html

转帖请注明出处  林夕木大大

Linux,OS X mark工具(目录跳转工具)

标签:

原文地址:http://www.cnblogs.com/MDK-L/p/4354821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!