3

在命令行快速切换目录 -- Linux -- IT技术博客大学习 -- 共学习 共进步!

 1 year ago
source link: https://blogread.cn/it/article/6648?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在命令行快速切换目录

浏览:5222次  出处信息

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

   每天在命令行下,一大部分的工作都是一遍又一遍的输入 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

建议继续学习:

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK