假设我们有这样的目录结构:
/home/myuser/dir_1/sub_1/sub_2/sub_3
Run Code Online (Sandbox Code Playgroud)
我想从 sub_3 遍历到 dir_1,我需要做的是
cd ../../..
Run Code Online (Sandbox Code Playgroud)
我的问题是,没有更短的吗?我的意思是:
cd -t 3
Run Code Online (Sandbox Code Playgroud)
您可以在其中告诉 shell 您要返回多少个目录。
printf使用then构建路径cd:
cdup() {
# $1=number of times, defaults to 1
local path
printf -v path '%*s' "${1:-1}"
cd "${path// /../}"
}
Run Code Online (Sandbox Code Playgroud)
用于:
cdup 4 # to go up four directories
cdup 1 # to explicitly go up one directory
cdup # to implicitly go up one
Run Code Online (Sandbox Code Playgroud)
具有良好的特性cd,无论 N 有多大,都会被调用一次。