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

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

时间: 2024-12-23 06:30:11

Linux,OS X mark工具(目录跳转工具)的相关文章

7个基于Linux命令行的文件下载和网站浏览工具

7个基于Linux命令行的文件下载和网站浏览工具 时间:2015-06-01 09:36来源:linux.cn 编辑:linux.cn 点击: 2282 次 Linux命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具.命令行本身功能多样,多种内建或者第三方的命令行应用使得Linux变得更加健壮和强大.Linux Shell支持多种不同类型的网 Linux命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具.命令行本身功能多样,多种内建或者第三方的命令行应用使得Linu

linux软件包的安装之----rpm软件包管理工具

程序语言开发的程序:系统调用:库,动态库(开发时指向的库) 程序:只要Windows上开的程序所指向的库遵循POSIX规范将源码拿到linux上编译时没问题的,运行应该也没有问题,能否运行还要看依赖的库文件是否存在:因为linux.Windows的ABI不同,Windows上编译好的程序无法在linux上正常运行,即使程序源码遵循POSIX规范. API:POSIX(可移植os规范) ABI:应用二进制接口 linux发行商:32bit:i386,预先编译好以后提供给用户二进制程序 64bit:

Linux CentOS7 VMware 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库

一.安装软件包的三种方法 Linux下游三种安装方法,rpm工具.yum工具.源码包.rpm按装一个程序包时,有可能因为该程序包依赖另一个程序包而无法安装:yum工具,可以连同依赖的程序包一起安装. 二.rpm包介绍 rpm包是预先在Linux上编译并打包的文件,安装快捷. 缺点:安装环境必须预编译环境一致或相当:当宝与包之间存在着相互依赖,则卸载时必须先把依赖包卸载. 如果依赖的包是系统必须的,就不能卸载这个包,否则系统会崩溃. 如果虚拟机光驱中还有系统安装盘镜像,就可以通过执行命令把光驱挂载

对于Linux系统管理员很有用的16个在线工具

1. ExplainShell.com 命令解释 ??对于Linux用户来说每天都会写各种命令和脚本,那么你可以使用这个网站工具来查看命令式如何工作的,这样可以避免不必要的错误出现:也是一个很好的学习命令的方式 2. BashrcGenerator.com 定制个性命令提示符 ??简单说就是个性化生成命令提示符,可将生成的代码写入到用户家目录的.bashrc或者可以设置全局变量文件/etc/profile对所有用户生效 ??可参考:http://stackoverflow.com/questio

[linux基础学习]默认的目录介绍

以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - /bin 该目录存放着系统最常用的最重要的命令,相当于DOS下的内部命令,只不过它们是以独立的文件形式存在.比如:ls.cp.mkdir等命令.这个目录中的文件都是可执行的并且是普通用户都可以使用的命令.作为系统最基础的命令都放在这里. binary /usr 该目录是系统存放程序的地方,比如普通命令

攻城狮在路上(叁)Linux(二十九)--- 完整备份工具:dump以及restore

一.dump命令: 该命令既可以针对整个文件系统进行备份,也可以仅针对目录来备份.还可以指定不同的备份等级(-0~-9共10个等级). dump -W:列出在/etc/fstab中具有dump设置的分区是否备份过. 命令格式: dump [-Suvj] [-level] [-f 备份文件] 待备份数据 参数说明: -S:仅列出后面的待备份数据所需要的磁盘空间大小. -u:将这次dump的时间记录到/etc/dumpdates文件中. -v:将dump的文件过程显示出来. -j:加入bzip2的支

linux系统编程----统计一个目录下的普通文件个数

主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能. 首先介绍一下函数原型: 打开一个空目录                    DIR *opendir(const char *name);                    参数: 目录名                    返回值: 指向目录的指针        读目录                    struct dirent *readdir(DIR *dirp)

[转载]对于Linux系统管理员很有用的16个在线工具

对于Linux系统管理员很有用的16个在线工具 08/15. 2014 1. ExplainShell.com 命令解释 对于Linux用户来说每天都会写各种命令和脚本,那么你可以使用这个网站工具来查看命令式如何工作的,这样可以避免不必要的错误出现:也是一个很好的学习命令的方式 2. BashrcGenerator.com 定制个性命令提示符 简单说就是个性化生成命令提示符,可将生成的代码写入到用户家目录的.bashrc或者可以设置全局变量文件/etc/profile对所有用户生效 可参考:ht

【Linux】将Oracle安装目录从根目录下迁移到逻辑卷

[Linux]将Oracle安装目录从根目录下迁移到逻辑卷 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Linux逻辑卷的创建和管理(重点) 1.2.2  相关文章链接 linux逻辑卷管理:http://blog.itpub.net/26736162/viewspace-2124620/,这篇文章非常不错. 1.2.3  本文简介 由于Oracle