【问题标题】:how to navigate between directories in absolute path如何在绝对路径中的目录之间导航
【发布时间】:2020-04-30 07:48:14
【问题描述】:

我在绝对路径为 aa/bb/cc/dd/ee/ff/gg/hh/ii 的目录中工作。 现在我想跳转到一个目录dd。我知道我们可以使用 cd ../.. 多次返回,但我想知道有没有更快的方法?

我正在寻找类似 CMD DIR(位于 PWD 中)之类的方式,它将跳转到 DIR。 例如。 $ jump dd 应该导致终端跳转到 aa/bb/cc/dd。

【问题讨论】:

标签: linux macos unix gnome-terminal


【解决方案1】:

您可以编写自己的 shell 函数,看起来有点像这样:

up() {
    local target dir
    target="$1"
    dir="$PWD"
    while ! [ "$(basename "$dir")" = "$target" ]; do
        dir="$(dirname "$dir")"
        if [ "$dir" = "/" ]; then
            >&2 echo "No such directory found"
            return
        fi
    done
    cd "$dir"
}

我在 Bash 和 Zsh 中半心半意地测试了这一点。

如果你把它放在一个名为 up.sh 的文件中,你可以获取该文件以获取 访问此功能。如果你想一直拥有它,你应该把它放在 适当的rc 文件。

以下是一些示例用法:

$ mkdir -p aa/bb/cc/dd/ee/ff/gg/hh/ii

$ cat up.sh
up() {
    ...
}

$ source up.sh
$ cd aa/bb/cc/dd/ee/ff/gg/hh/ii
$ up xyz
No such directory found

$ up bb
$ pwd
.../aa/bb

【讨论】:

  • 非常感谢。这是我正在寻找的确切解决方案。我还可以问你一件事吗,我主要使用 CSH 或 TCSH,你能告诉我如何实现吗?
猜你喜欢
  • 2013-02-05
  • 2020-11-29
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多