可以将“ cd”的命令完成修改为仅显示目录并忽略文件吗?


12

当我在bash中的目录中并按时cd Space Tab,它可能会显示目录中的所有内容。(Show all 1000 possibilities?)当我所在的目录中包含许多常规文件且目录相对较少时,这确实很麻烦。

因此,是否可以选择cd仅包含目录的自动完成功能?

我知道我可以通过执行以下操作获取目录中的目录列表

ls -d */

但我不确定如何从那里继续。

我正在使用CentOS 6.6 Final

Answers:


25

只需添加

complete -d cd

在您的~/.bashrc(或其他bash配置文件中)。


有用!谢谢。我必须输入bash后才能重新加载~/.bashrc文件
chiliNUT 2015年

那很有意思。这是我在Debian安装中的默认行为,但是complete没有显示输入-d cd或类似的内容。显然,这里已经用其他方式完成了。
Tom Zych

@TomZych有流行的bash完成脚本,您的发行版很可能默认安装了它。
jimmij 2015年

2
要重新阅读,请~/.bashrc输入. ~/.bashrc。这可能无法启动子外壳。
ctrl-alt-delor

1
@richard还可以在当前的交互式shell中重新键入/粘贴此命令。
jimmij 2015年

2

应该在许多发行版的典型安装中自动发生。
如果不是,则可能是缺少该bash-completion软件包:

  • Ubuntu: sudo apt-get install bash-completion
  • 拱: sudo pacman -S bash-completion
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.