是否有一个命令可以在目录中后退多个步骤,而无需使用 cd?

是否有一个命令可以在目录中后退多个步骤,而无需使用 cd?

我经常执行“cd ../../../../”。是否有命令/别名可以让我执行“cmd 4”并返回 4 个目录?

答案1

将其放入您的~/.bashrc

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

(该名称cdup来自相应的 FTP 命令,仅供参考。)

答案2

我被教导在这种情况下使用“pushd”和“popd”。

例如,输入“pushd .”然后输入“cd /home”。现在输入“popd”,您将返回到开始的位置。

'pushd'/'popd' 是一个堆栈,您可以在其中推送任意数量的目录,但是当您弹出时,它是最后一个打开的,第一个关闭的。

答案3

当然,为什么不呢:

向上() {
    [ $# = 0 ] && cd .. && 返回
    [ $1 = 0 ] && 返回
    cd .. && 向上 $(($1 - 1))
}

答案4

以下是另一种方法:

function cdup
{
    cd $(for ((i=0 ; i<$1 ;i++)); do printf "../" ; done)
}

相关内容