我们假设我们有这样的目录结构:
/home/myuser/dir_1/sub_1/sub_2/sub_3
我想从sub_3遍历到dir_1,我需要做的是
cd ../../..
我的问题是,是不是有更短的东西? 我的意思是:
cd -t 3
您可以告诉shell您想要返回多少个目录。
答案 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)
;做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