Shell

如何將目錄更改為最後一個目錄?

  • August 12, 2016

我有很長的目錄列表,比如

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

是否可以立即更改到最後一個目錄?

如果lastdir是您的目錄層次結構中該名稱的唯一目錄,您可能會逃脫bash(儘管可能需要一段時間才能執行)

shopt -s globstar
cd **/lastdir

我認為在“cd”中實現這樣的功能沒有多大意義。如果每個子目錄只有一個子子目錄,它會起作用,但是如果有一棵樹呢

$$ i.e. several subdirs in a dir $$? 應該走哪條路?‘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>

在這種情況下,最好的出路是製作合理的目錄樹。避免創建包含單個子目錄的目錄鏈。

但是..如果您已經有這樣的目錄結構並且您在互動式外殼中-使用 BASH 並且它是自動完成功能…如果目錄包含單個元素 cd come_parent_dir ….最終將帶您到最後一個目錄鏈中的目錄或具有多個目錄的目錄(系統會詢問您要進一步處理的位置)

引用自:https://unix.stackexchange.com/questions/174896