bash 中的互動式迭代資料夾過濾

bash 中的互動式迭代資料夾過濾

假設我有一個很深的資料夾結構,例如:

/home/user1/Pictures/web/flickr/2023/02/02/pic.jpg

顯然,每一步都有不同的資料夾。例如在頂部有

/etc
/home
/usr

以及什麼不是。然後在/home下有這樣的東西:

/home/user1
/home/user2
/home/user3

然後在 /home/user1 下有以下內容:

/home/user1/Downloads
/home/user1/Pictures
/home/user1/Videos

等等,你就明白了。有沒有一種方法可以互動式地過濾資料夾以取得葉資料夾或檔案?例如我想做類似的事情:

$ vim /

然後Tab讓它列出所有頂級完成(等等,上面範例中的 home 和 usr)。然後如果我輸入

$ vim /h

它應該只顯示包含字母的內容h(上例中的/home)。如果它是唯一的,它將完成單一選擇,所以我將得到:

$ vim /home/

然後讓它列出 /home 下的所有選項(上例中的 user1、user2 和 user3)。現在,如果我輸入 1,它會縮小為:

$ vim /home/user1/

因為這是唯一可以匹配的選項。

我知道 bash 有完成功能,但我不確定是否有類似的東西。有什麼提示嗎?

相關內容