Unix终端,“cd ..”表示特定数量的目录

时间:2017-01-13 14:25:49

标签: shell unix

我们假设我们有这样的目录结构:

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

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

cd ../../..

我的问题是,是不是有更短的东西? 我的意思是:

cd -t 3

您可以告诉shell您想要返回多少个目录。

5 个答案:

答案 0 :(得分:3)

使用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

无论N有多大,都有cd被调用一次的好属性。

答案 1 :(得分:1)

{0..2}中的

;做cd ..;完成

答案 2 :(得分:1)

cd ~/dir_1

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

答案 3 :(得分:0)

我几周前做了一个Zsh完成功能来完成这项工作。 The answer is here

它允许您键入cd .....然后按Tab键(或返回)以将点扩展为相关的目录数。

答案 4 :(得分:0)

您可以将cdup放入.bashrc

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

或者

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

测试制作两张CD ..

cdup 2