如何将dir更改为最后一个目录?

如何将dir更改为最后一个目录?

我有很长的目录列表,例如

/dir/dir/dir/../../../../../../../../../..         ../../  ../../last dir

是否可以立即更改到最后一个目录?

答案1

如果lastdir是您的目录层次结构中该名称的唯一目录,您可能会逃脱bash(尽管可能需要一段时间才能运行)

shopt -s globstar
cd **/lastdir

答案2

我认为在“cd”中实现此类功能没有多大意义。如果每个子目录只有一个子子目录,那么它会起作用,但是如果有一棵树[即一个目录中有多个子目录]怎么办?应该走哪条路? “cd”不是读心者。

考虑以下两个直接树:

<some_parent_dir>
|
|-<subdir>
| |
| |-<subdir> 
|   |
|   |-<subdir>
|     |
|     |-<subdir>
|       |
|       |-<subdir>
|         |
|         |-<subdir>
|
|-<other_parent_dir>

在这种(上面)情况下,您要求的“cd”功能可以正常工作,但是在以下情况下,“cd”会感到困惑,不知道应该进入哪个子目录:subdir1或subdir2...

<some_parent_dir>
|
|-<subdir>
| |
| |-**<subdir1>** 
| | |
| | |-<subdir>
| |   |
| |   |-<subdir>
| |
| |-**<subdir2>**
|   |
|   |-<subdir>
|
|-<other_parent_dir>

在这种情况下,最好的解决办法是制作合理的目录树。避免创建包含单个子目录的目录链。

但是..如果您已经有了这样的目录结构并且处于交互式 shell 中 - 使用 BASH 及其自动完成功能...如果目录包含单个元素 cd come_parent_dir ....最终将带您到最后一个目录链中的目录或具有多个目录的目录(系统会询问您想要进一步访问哪里)

答案3

cd -将更改为您上次所在的目录。

相关内容