我有很长的目录列表,例如
/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 -
将更改为您上次所在的目录。