• 在命令行快速切换目录(转载)


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

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

     1 # mark
     2 export MARKPATH=$HOME/.marks
     3 export MARKDEFAULT=sanguo#设置你的默认书签,可以直接输入g跳转
     4  
     5 function g {
     6     local m=$1
     7     if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
     8     cd -P "$MARKPATH/$m" 2>/dev/null || echo "No such mark: $m"
     9 }
    10 function mark {
    11     mkdir -p "$MARKPATH"
    12     local m=$1
    13     if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    14     rm -f "$MARKPATH/$m"
    15     ln -s "$(pwd)" "$MARKPATH/$m"
    16 }
    17 function unmark {
    18     local m=$1
    19     if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    20     rm -i "$MARKPATH/$m"
    21 }
    22 function gs {
    23     ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 13-
    24 }
    25  
    26 _completemarks() {
    27     local curw=${COMP_WORDS[COMP_CWORD]}
    28     local wordlist=$(ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 13)
    29     COMPREPLY=($(compgen -W '${wordlist[@]}' -- "$curw"))
    30     return 0
    31 }
    32 
    33 complete -F _completemarks g unmark

    文章路径找不到,等找到之后添

  • 相关阅读:
    注意! javascript和jquery的方法不能混淆!
    Fatal error: Call to undefined function mysqli_connect() 的解决方法
    Js中的冒泡排序
    sql的key的类型分类
    C# 结构和类的区别
    C#泛型初识2
    Javascript面向对象全面剖析 —创建对象
    C#泛型(初识)
    C# 构造函数日志
    C#隐式和显示类型转换
  • 原文地址:https://www.cnblogs.com/CHEUNGKAMING/p/4080773.html
Copyright © 2020-2023  润新知