在unix bash shell中,当我输入cd
然后按Tab键时,它会将目录和文件列为可供选择的选项。显示目录和可能的目录链接必须是直观的。不会直接列出文件计数器吗?
例如,。/然后选项卡仅列出具有执行权限的项目,这是智能的。
为什么bash与cd命令没有相同的智能?这是一个错误吗?
答案 0 :(得分:2)
将以下命令添加到bashrc
:
complete -d cd # or ``complete -A directory cd''
然后它只会为cd
命令自动完成dirs(包括符号链接到dirs)。
有关详细信息,请参阅bash手册中的 Programmable Completion Builtins 。
答案 1 :(得分:1)
在这两种情况下,您都将获得文件名完成。 bash
具有足够的内置智能来识别命令名必须具有可执行权限,因此它将./
+ Tab限制为可执行文件。完成参数到cd
属于可编程完成的范围(因为虽然不明智,但可能完全遮蔽内置命令)不同的命令,不必将目录作为参数)。
bash
的可编程完成工具非常好,但无论出于何种原因,它实际上并不包括基本安装中的任何此类完成。但是有一个large set of completions available,其中一个用于cd
。