技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> 在命令行快速切换目录

在命令行快速切换目录

浏览:5602次  出处信息

   今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下。

   每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/often-used/directory这样来切换目录,现在利用一个简单的配置可以实现如下效果:

   首先进入我的日常工作目录,标记一个书签mark sanguo

   

cd /Users/kimi/work/123guo/sanguo
mark sanguo

   以后我再进入这个目录只需要g sanguo即可

   

g sanguo

   通过输入gs指令来浏览所有的标签

   

gs
#app -> /Applications
#sanguo -> /Users/kimi/work/123guo/sanguo
#web -> /Library/WebServer/Documents

   实现原理如下

   

sudo vim /etc/profile


   编辑/etc/profile文件并在尾部添加以下内容后强制保存 wq!

   

# mark
export MARKPATH=$HOME/.marks
export MARKDEFAULT=sanguo#设置你的默认书签,可以直接输入g跳转

function g {
   local m=$1
   if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
   cd -P "$MARKPATH/$m" 2>/dev/null || echo "No such mark: $m"
}
function mark {
   mkdir -p "$MARKPATH"
   local m=$1
   if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
   rm -f "$MARKPATH/$m"
   ln -s "$(pwd)" "$MARKPATH/$m"
}
function unmark {
   local m=$1
   if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
   rm -i "$MARKPATH/$m"
}
function gs {
   ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 13-
}

_completemarks() {
   local curw=${COMP_WORDS[COMP_CWORD]}
   local wordlist=$(ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 13)
   COMPREPLY=($(compgen -W '${wordlist[@]}' -- "$curw"))
   return 0
}

complete -F _completemarks g unmark





建议继续学习:

  1. 28个Unix/Linux的命令行神器    (阅读:14919)
  2. 高效Linux用户需要了解的命令行技能    (阅读:11276)
  3. 命令行画图工具gnuplot用法入门    (阅读:10489)
  4. Linux命令行里的“瑞士军刀”    (阅读:10145)
  5. 完全用命令行工作 -- 一年后的思考    (阅读:6064)
  6. perl模块Getopt::Std用法及实例-从命令行读取参数模块    (阅读:5884)
  7. Perl命令行常见用法及技巧    (阅读:4810)
  8. 开启命令行下的社交    (阅读:3778)
  9. Perl 命令行参数    (阅读:3239)
  10. Firebug Console API 与命令行    (阅读:3122)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1