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 有补全功能,但我不确定是否有类似的东西。有什么提示吗?

相关内容