用制表符问题完成长目录名

用制表符问题完成长目录名

我有一个简单问题,就是我需要通过 cd 进入很长的目录,但我想知道简单的方法。

mosquito@mosquito-K56CB:~/Downloads$ ls | grep Guns
Guns n' Roses - Appetite for Destruction (Japanese Edition) 1987
Guns n' Roses - Use Your Illusion I 1991

当然,我可以直接复制名称并将其放置如下:cd "Guns n' Roses - Appetite for Destruction (Japanese Edition) 1987"

但是为什么当我输入cd Gunstab 时,它会结束行:cd Guns\ n\'\ Roses\ -\那么根据我的理解,我应该开始用 tab 写 App..,它应该完成整个名称,但事实并非如此。并且按两次 tab 也没有显示任何内容。我在这里遗漏了什么?

答案1

编辑:实际上,在 中尝试相同的目录名称时bash,我得到了相同的错误。'从目录名称中删除 可以使其正常工作,所以我猜这是bash制表符补全中的一个错误。

编辑2: 根据这个问题,这是一个已知的错误,将在未来的版本中修复。

您仍然可以尝试zsh替代品并安装 Grml zsh 配置,它确实会将您带到一个全新的制表符补全水平:

sudo apt-get install zsh
wget -O ~/.zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
wget -O ~/.zshrc.local  http://git.grml.org/f/grml-etc-core/etc/skel/.zshrc
zsh

如果您喜欢它并且希望将其用作默认 shell,请运行chsh -s /usr/bin/zsh

相关内容