专栏首页CU技术社区如何高效回退到特定层级目录?

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

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/

小结

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

本文分享自微信公众号 - CU技术社区(ChinaUnix2013)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度复盘GitHub发展史:如何在短短10年内改变了人们的编程方式?

    前不久,微软以75亿美元的价格收购GitHub,引发了科技行业的关注。在短短的10年内,GitHub 改变了人们的编程方式。不仅让编程变得更简单,还改变了软件开...

    用户6543014
  • Linux学习笔记:文件的权限了解一下

    Linux 是一个多用户、多任务的系统,常常有多人同时使用一台机工作,为了保护每个人的隐私权,“文件所有者”的角色就显得相当重要了。当Linux用户登录系统之后...

    用户6543014
  • 可以分叉了!GitHub 上线中文帮助文档了!

    GitHub 是世界上最大的开源平台,随着它在国内的不断推广普及,不少开发者都开始纷纷采用 GitHub 来作为公司内部的代码管理工具。

    用户6543014
  • 使用librtmp推流/拉流

    准备工作 #include "librtmp/rtmp_sys.h" #include "librtmp/log.h" #pragma comment(lib...

    _gongluck
  • ASP.NET Core单文件和多文件上传并保存到服务端

      在我们日常开发中,关于图片,视频,音频,文档等相关文件上传并保存到服务端中是非常常见的一个功能,今天主要是把自己在开发中常用的两种方式记录下来方便一下直接使...

    追逐时光
  • 启动设置mongodb

    启动      ①:启动之前,我们要给mongodb指定一个文件夹,这里取名为”db",用来存放mongodb的数据。 ?      ②:微软徽标+R,输入cm...

    hbbliyong
  • 解构吞噬世界的云原生:概念、炒作背后的理念与技术

    MegaEase创始人、酷壳博主陈皓老师高屋建瓴地解释了云原生产生、发展的历史背景,他指出,企业平台化(云原生)架构具备以下几个优势:

    TVP官方团队
  • JvmMultifile 注解在 Kotlin 中的应用

    接触过Kotlin之后,我们会利用其扩展方法特性创建很多便捷的方法来实现更好更快的编码。比如我们对于RxJava进行一些简单的扩展方法实现。

    技术小黑屋
  • Google发布Android Studio 1.0

    用户1696846
  • Scala-4.控制结构-break和continue

    Scala中没有break和continue这两个关键字,而是以scala.util.control.Breaks类的工具形式提供的。并且需要加上breakab...

    悠扬前奏

扫码关注云+社区

领取腾讯云代金券