如何高效回退到特定层级目录?

简介: 这个脚本在经常需要切换目录,并且路径又很长的情况下,非常有用,能够快速进入到你想要的父目录。好好使用这个脚本,将会在目录切换时大大提高你的效率。

Linux 下如果我们进入到了一个比较长的路径,比如:

/home/alvin/projects/blogdemos/linux-system-programming/thread
/home/alvin/projects/blogdemos/diff
/home/harry/study/亚洲文化/日本文化/中日交流/影视业/动作片

如果我们想要回退到一个特定的父目录,那么我们通常的做法是这样敲:

$ cd ../../../

如果层级比较少,那这样勉强还可以接受,但如果层级很深,那可能就会 cd 到你怀疑人生了。

本文将介绍一个工具,它能帮你快速进入到某一个特定的父目录,而无需一路 cd 。你可以直接指定回退的层级数,或者要回退的目标目录,非常方便。

更重要的是,它甚至还支持 tab 键,而且在不重复的情况下,你也可以指定目标目录的前几个字母即可,大大增加了工作效率。

这个工具其实就是个 shell 脚本,名字是 up.sh ,除了支持 bash 外,对 zsh 和 fish shell 的支持也很好。

up 脚本的安装

这个脚本是第三方人员开发的,所以需要我们人为安装到我们的系统。

首先,我们需要先将 up.sh 下载到我们本地,然后再使能这个脚本:

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.bashrc

之后再使用以下命令使改动生效:

$ source ~/.bashrc

如果你使用的是 zsh shell ,那么需要使用下列步骤去操作:

$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.zshrc
$ source ~/.zshrc

如果你使用的是 fish shell ,那你需要这么操作:

$ curl --create-dirs -o ~/.config/up/up.fish https://raw.githubusercontent.com/shannonmoeller/up/master/up.fish
$ source ~/.config/up/up.fish

up 脚本的使用

按照以上步骤操作,我们就能将 up 脚本安装到系统并完成配置。接下来我们就可以用它来尽情地玩耍了。

首先,我们先明确自己所处的路径:

$ pwd
/home/alvin/projects/atb4g/ecall/src/interface

如果我们只想回到上级目录,只需执行 up 即可。

$ up
$ pwd
/home/alvin/projects/atb4g/ecall/src

那如果我想回退到更高层级的目录呢?我现在是在 src 目录,如果我想回退到 projects 目录,要怎么操作?

我们只需要 up 命令后跟上你要跳转的层级数,不加的话就默认是 1 。在这个例子里,我们要回退 3 层目录,即:

$ up 3
$ pwd
/home/alvin/projects

前面已经提到,我们可以直接回退到某一个指定的目录名下。比如我现在还是在 src 目录,想要回退到 projects 目录,我们可以这样操作:

$ pwd
/home/alvin/projects/atb4g/ecall/src
$ up projects
$ pwd
/home/alvin/projects

如果要回退的单词长度太长写得太累怎么办?你只需指明这个目录的前几个字母, up 脚本就会识别并跳转。

$ pwd
/home/alvin/projects/atb4g/ecall/src
$ up pr        # 这里只指定了前两个字母
$ pwd
/home/alvin/projects

同时,它也支持 tab 键:

$ pwd
/home/alvin/projects/atb4g/ecall/src
$ up    # 敲 tab 键
ecall/    atb4g/  projects/   alvin/  home/

小结

这个脚本在经常需要切换目录,并且路径又很长的情况下,非常有用,能够快速进入到你想要的父目录。好好使用这个脚本,将会在目录切换时大大提高你的效率。


目录
相关文章
|
7月前
|
算法 前端开发 JavaScript
若依框架---数据转树状层级
若依框架---数据转树状层级
545 0
|
1月前
实现文件目录结构功能
实现文件目录结构功能
18 1
|
4月前
|
监控 安全 C#
使用C#如何监控选定文件夹中文件的变动情况?
使用C#如何监控选定文件夹中文件的变动情况?
118 19
|
7月前
|
Windows
(文件[夹]批量分类整理_多级匹配_交叉匹配_路径结构交叉调整)文件[夹]批量复制
该文介绍了如何使用特定工具进行批量文件整理。首先,需要从提供的百度网盘和蓝奏云链接下载工具,并用提取码解锁。接着,打开工具的批量复制功能,将待整理的图片文件拖入“来源路径”,目标文件夹拖入“终点路径”。通过层级过滤排除不需要的路径。然后,利用多级匹配设置,提取文件名和路径中的关键词,如“动物”、“小型”、“食草”等,设置复制后的文件重命名规则。最后,执行批量复制,完成文件的智能分类与命名。整个过程旨在根据文件的原始分类信息,自动将其移动到相应的新目录结构下。
|
7月前
如何批量复制多个文件到多个目录中(批量复制文件,多对多文件高效操作的方法)
该文介绍了如何使用一个工具进行文件批量复制的操作。首先,提供了百度网盘和蓝奏云的链接,附有提取码,以获取所需工具。接着,展示了一个包含三个文件夹和两张图片的示例。操作步骤包括:打开工具,使用Ctrl+5进入批量复制模块,选择图片并拖拽至复制区域,然后选择目标文件夹(在这里是三个命名的空文件夹),点击“开始复制”,等待过程完成。工具提供复制选项供用户按需选择,且支持保存操作路径以备后续使用。完成后,目标文件夹将包含复制的图片,整个过程简便快捷。
|
移动开发 编解码 资源调度
分集与路径合并方式
分集与路径合并方式
193 0
分集与路径合并方式
|
开发工具 git
Git对比各个区域文件内容之间的差异(三)
使用Git对比各个区域文件内容之间的差异 1.主要对比内容 1.工作区与暂存区文件内容比对 首先在file1中增加内容,使得文件内容发生变化,在使用git diff file1命令进行比对,然后将文件提交至暂存区后再进行比对,会发现没有任何变动
611 0
Git对比各个区域文件内容之间的差异(三)
|
算法
13、【分类模块管理】——查询节点和递归查找功能开发
该接口是我们查询出所有的结点个子节点,在查询的时候利用父节点parentId属性来进行递归查询,当子节点不再有的时候,我们就结束递归查询,然后将查询到的结果全部返回给客户端。
804 0
|
开发工具 git
git定位追踪一行或若干行代码修改历史记录
                                                         git定位追踪一行或若干行代码修改历史记录 先使用git blame追踪溯源这些行代码修改的历史记录,比如: git blame -L 201,208 YanBaoFragment.
2092 0