Linux中快速回到N级上层目录


https://mp.weixin.qq.com/s/iOLZpa5hCFR6lC-D4-OGmg

 

在Linux系统中,使用自定义命令,快速回到指定层级的上层目录。

 

1. 问题

在使用Linux的过程中,经常进入到很深的目录:

而后又要回到某个上层目录,有没有什么好的方法呢?

 

2. 解决方法

回到上层目录的命令是:

那么最简单的方法就是不停的上翻执行cd ..命令:

可是一般笔记本向上翻的箭头比较小,不是很方便。

 

再有一个方法就是使用多个../进行切换:

且不说无名指和小指打这两个字符不方便容易累,也很容易多打一个点而使速度降下来。

 

要是能有cd .....这样的命令就好了:

 

3. 自定义命令

既然cd命令没有那样的用法,为何不自己定义一个呢?

a. 既然命令与cd和..有关,那就叫c.(可以根据喜好自定义);

b. 使用参数作为回退目录的级数,一个点代表回退一级;

 

命令实现如下:

其中:

a. 使用第一个参数,将其中的“.”替换为“../”;

b. 调用cd命令实现目录切换;

 

使用效果如下:

 

4. 提升兼容性

可以看到,命令当中“.”比较多,包括命令中的点和参数中的点。留意打多少个点的时候,也会忘记打空格,记起打空格的时候,可能为时已晚,导致命令错误,需要修改。

 

那么就稍微调整一下,提升兼容性:

a. 可以不打空格:

b. 可以晚打空格:

c. 为了统一,约定:命令中紧跟着字符c后面的一个“.”,属于命令,不用于计算层级数;

 

如何实现呢?

a. 命令“c.”不带参数,表示留在当前目录;

b. 命令“c..”“c...”等需要增加新的命令;

 

5. 新的实现

首先,修复命令“c.”不带参数返回home目录的问题:

 

然后,把这个函数变为公共函数,并定义新的“c.”命令:

 

定义“c..”命令:

这里在命令参数的基础上,把命令中的“.”也转换为“_c.”命令的参数。

 

其他定义类似:

定义到“c.........”(包含9个点),单命令可以回退的8级目录,层级数目基本上够用了。

 

使用效果如下:

 

 

z. 附录

 

?相关源码(文中都有)附录如下:

-----------------------------------------------------------------------------
这是一篇付费文章,请移步付费阅读全文,谢谢!
文章链接:https://mp.weixin.qq.com/s/iOLZpa5hCFR6lC-D4-OGmg