在UNIX bash shell中,当我在cd
类型,然后按Tab键,它会列出目录和文件的可用选项进行选择。显示目录和可能的目录链接必须直观。不会列出文件反直觉?Unix的bash的cd命令,然后选项卡显示两个目录和文件
例如,./然后选项卡仅列出具有执行权限,这是聪明的项目。
为什么不bash中有cd命令一样聪明?这是一个错误吗?
在UNIX bash shell中,当我在cd
类型,然后按Tab键,它会列出目录和文件的可用选项进行选择。显示目录和可能的目录链接必须直观。不会列出文件反直觉?Unix的bash的cd命令,然后选项卡显示两个目录和文件
例如,./然后选项卡仅列出具有执行权限,这是聪明的项目。
为什么不bash中有cd命令一样聪明?这是一个错误吗?
将以下命令添加到您的bashrc
:
complete -d cd # or ``complete -A directory cd''
那么它只会自动完成迪尔斯(包括链接到迪尔斯)为cd
命令。
请参阅在bash的手册了解更多详情。
在这两种情况下,你所得到的文件名完成。 bash
只有足够的内置智能来识别命令名称必须具有可执行权限,因此它将./
+ Tab限制为可执行文件。完成自变量至cd
属于域的可编程完成(因为尽管不明智,可能会将内置命令映射为完全不同的命令而不必将目录作为参数)。
bash
的可编程完成设施都还不错,但是由于各种原因,实际上它并不包括在基本安装任何此类的完成。有一个large set of completions available,但是,包括一个cd
。
我只是尝试,并没有注意到你所描述的行为;你确定吗? –
显然,是的。我正在使用Linux 2.6.32-431.el6.x86_64。甚至在Linux 5.9中也是如此。 Bash版本: GNU bash,版本4.1.2(1)-release(x86_64-redhat-linux-gnu) 版权所有(C)2009自由软件基金会,Inc. – syam
托马斯,你的意思是,cd +你的目录?你在使用哪种Linux? – syam