zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    hdu 2485 Destroying the bus stations 迭代加深搜索
    hdu 2487 Ugly Windows 模拟
    hdu 2492 Ping pong 线段树
    hdu 1059 Dividing 多重背包
    hdu 3315 My Brute 费用流,费用最小且代价最小
    第四天 下载网络图片显示
    第三天 单元测试和数据库操作
    第二天 布局文件
    第一天 安卓简介
    Android 获取存储空间
  • 原文地址:https://www.cnblogs.com/MDK-L/p/4354821.html
Copyright © 2011-2022 走看看