Unixterminal,“cd ..”用于特定数目的目录

假设我们有这个目录结构:

/home/myuser/dir_1/sub_1/sub_2/sub_3 

我想从sub_3遍历到dir_1,我需要做的是

 cd ../../.. 

我的问题是,有没有更短的? 我的意思是这样的:

 cd -t 3 

在那里你可以告诉shell有多less目录你想回去。

使用printf构建路径,然后cd到它:

 cdup() { # $1=number of times, defaults to 1 local path printf -v path '%*s' "${1:-1}" cd "${path// /../}" } 

用于:

 cdup 4 # to go up four directories cdup 1 # to explicitly go up one directory cdup # to implicitly go up one 

有一个不错的属性, cd被称为一次,不管N有多大。

为我在{0..2}; 做CD ..; DONE

 cd ~/dir_1 

也应该这样做。 当然,这只有当你在你家目录的某个地方时才有效。

我只是几个星期前做了一个Zsh完成功能来做到这一点。 答案就在这里 。

它允许你键入cd .....然后按Tab(或返回)将点扩大到相关的目录数量。

你可以把你的.bashrc中的cdup

  alias cdup='_(){ a=$1;while ((a--));do cd ..;done;};_' 

要么

 cdup() { a=$1;while ((a--));do cd ..;done; } 

测试做两个CD ..

 cdup 2