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


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

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

    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/ -/	-/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
    ")
    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
    ", $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

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

  • 相关阅读:
    [转载]vue中全局和局部引入批量组件方法
    [转]详解在vue-test-utils中mock全局对象
    [转]imageMagick 在nodejs中报错Error: spawn identify ENOENT的解决方案
    使用 dva 如何配置异步加载路由组件
    dva.js 上手
    [转]axios的兼容性处理
    【转】链接伪类(:hover)CSS背景图片有闪动BUG
    【转】 svn: Server sent unexpected return value (403 Forbidden) in response to CHECKOUT request for-解决方法
    vue 路由相同路径跳转报错
    新手小白第一次与后端联调
  • 原文地址:https://www.cnblogs.com/MDK-L/p/4354821.html
Copyright © 2020-2023  润新知