使用 cd 转到上层目录

使用 cd 转到上层目录

我正在处理 Java 项目,这些项目经常会产生深层嵌套的文件夹(/path/to/project/com/java/lang/whatever 等),有时需要能够向上跳转,比如说 4 个目录级别。输入 cd ../../../.. 很麻烦,而且我不想使用符号链接。cd 是否有一些标志可以让您向上跳转多个目录级别(在我看来,应该是 cd -u 4 之类的)?不幸的是,我找不到任何专门针对 cd 的手册页,而只是得到无用的“内置”页面。

答案1

一个简单的函数,也有一个别名:

function cd_up() {
  cd $(printf "%0.s../" $(seq 1 $1 ));
}
alias 'cd..'='cd_up'

(如果您希望在每个实例中都使用它,则可以定义它~/.bashrc)。

使用起来很简单:

$ cd.. 10

答案2

或者...试试这个:(谷歌万岁)

使用 ..n 向上导航目录:

在下面的例子中,..4 用于上移 4 个目录级别,..3 用于上移 3 个目录级别,..2 用于上移 2 个目录级别。

将以下别名添加到.bash_profile并重新登录。

别名 ..="cd .."

别名..2="cd../.."

别名..3="cd ../../.."

(ETC)

技巧 #2

答案3

简单、低技术含量的解决方案,无需任何设置。bash不过,只适用于具有 -style 命令编辑的 shell。

  • 类型cd ..
  • Up-arrow Return需要按多次。如果用两根手指,速度会非常快。

答案4

您可以编写一个函数(它必须是一个函数,因为您想要改变 shell 本身的状态,即工作目录;外部命令只会影响它自己的进程)。

这是一个将上升多个级别作为参数传递的函数(默认值为 1):

up() {
    # default parameter to 1 if non provided
    declare -i d=${@:-1}
    # ensure given parameter is non-negative. Print error and return if it is
    (( $d < 0 )) && (>&2 echo "up: Error: negative value provided") && return 1;
    # remove last d directories from pwd, append "/" in case result is empty
    cd "$(pwd | sed -E 's;(/[^/]*){0,'$d'}$;;')/";
}

使用方式如下:

up 4

相关内容