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

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

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

参考推荐:

linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客相关推荐

  1. linux 指令效率,Linux15个命令,大幅提高工作效率 - 米扑博客

    Linux 15个命令神器 ag.tig.mycli.jq.shellcheck.fzf.fpp.htop.glances.axel.sz/rz.cloc.tmux.script/scriptrepl ...

  2. svn服务器设置忽略文件夹,SVNignore忽略文件及目录 - 米扑博客

    SVN 忽略文件夹 1.若创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容 $ svn mkdir cache $ svn propset svn:ignore '*' cach ...

  3. linux cp 排除文件,cp、tar命令排除文件和子目录 - 米扑博客

    测试树形目录 $ cd mimvp-blog/ $ tree . |____111.txt |____222.txt |____333.txt |____folder01 | |____111.txt ...

  4. linux var log目录作用,Linux系统/var/log/journal/垃圾日志清理 - 米扑博客

    CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal # ls -l /etc/logrotate.d/ -rw-r--r-- 1 root root 9 ...

  5. linux降低磁盘的读,Linux磁盘I/O优化:vm.dirty_ratio - 米扑博客

    Linux 文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据).写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到 ...

  6. 十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客

    分享5个shell脚本实例,大家可以借鉴下里面的思路,看下有没另外一种实现方式. 1.定时清空文件内容,定时记录文件大小 #!/bin/bash ########################### ...

  7. linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客

    在进行文本处理的时候,我们经常遇到要删除重复行的情况.那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的,uniq对于重复行不上下连续时不起作用 因此,先对 ...

  8. linux将文件的第二列求和,awk实现第一列相乘,第二列求和,并相加 - 米扑博客...

    AWK 取了三位创始人 Alfred Aho,Peter Weinberger,  Brian Kernighan 的Family Name的首字符,学习AWK有一本相当经典的书<The AWK ...

  9. C#快速随机按行读取大型文本文件 - 磊的博客 - sanshi_leilei - 和讯博客

    字号:大 中 小 下面是我实现的一个数据文件随机读取类,可以随机读取大型文本文件的某一行.在我机器上对一个130MB的文本文件,读取第200000的速度从传统做法的400ms提高到了3ms. 一般对文 ...

最新文章

  1. 栈的输出_栈和队列--十进制转化为二进制
  2. 百个JavaScript函数以及基础写法汇总
  3. KotlinPoet
  4. RocketMQ中的Topic和JMS的queue有什么区别?
  5. reloaddata 跳动_纸跳动像素
  6. 早期更多失败– Java 8
  7. 利用计算机卸载,电脑使用痕迹彻底清理工具(无影无踪WYWZ)
  8. python有关时间的函数time和datatime
  9. 下载、安装Keil 5
  10. vscode-background插件“卸载“以及“禁用“失效
  11. redis获取存在的键值_Redis 分布式锁、限流
  12. 从Slice_Header学习H.264(二)--片头的子语法项目
  13. D8(YT88)加密狗破解与加密工具
  14. TINA_PRO_6中文版.rar
  15. HTML5 新特性(2)--Canvas
  16. 获取学信网学历电子版流程
  17. 数仓1.4 |业务数仓搭建| 拉链表| Presto
  18. 老板让我通知领导们开会,有几个领导故意开会迟到,老板反而说我不会办事,怎么办?...
  19. 电脑如何共享代理到wifi
  20. LaTex---在图片或表格上方、下方添加字体

热门文章

  1. 使用 C# 和 Blazor 进行全栈开发
  2. dotnet core开源博客系统XBlog介绍
  3. 【ASP.NET Core】处理异常
  4. C#最佳工具集合:IDE、分析、自动化工具等
  5. 编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)
  6. 云计算产值将超3000亿美元 亚马逊微软谷歌居三甲
  7. element-ui Notification重叠问题,原因及解决办法
  8. 黑龙江科技大学计算机考研复试科目,2020年黑龙江科技大学计算机应用技术考研经验分享...
  9. php5.3教程,Php 5.3发布
  10. 南方方洲号无人测量船系统简介