是否有一个命令可以在不使用 cd 的情况下返回目录中的多个步骤?

14 linux unix terminal bash

我一直在'cd ../../../../'。是否有一个命令/别名可以让我进入“cmd 4”而我会被收回 4 个目录?

Chr*_*ung 16

把它放在你的~/.bashrc

cdup() {
  levels=${1-1}
  while ((levels--)); do
    cd ..
  done
}
Run Code Online (Sandbox Code Playgroud)

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


小智 11

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

例如,输入“pushd”。然后'cd /home'。现在输入“popd”,您将回到开始的地方。

'pushd'/'popd' 是一个堆栈,您可以根据需要将任意数量的目录推送到那里,但它是最后打开的,当您弹出时首先关闭。


Jos*_*Lee 10

当然,为什么不:

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

  • 如果您的目录嵌套得那么深,我会同情您。 (6认同)
  • @Muu 请记住,递归通常*不是*编写shell脚本的正确方法。 (3认同)