2016-11-04 91 views
1

在UNIX bash shell中,当我在cd类型,然后按Tab键,它会列出目录和文件的可用选项进行选择。显示目录和可能的目录链接必须直观。不会列出文件反直觉?Unix的bash的cd命令,然后选项卡显示两个目录和文件

例如,./然后选项卡仅列出具有执行权限,这是聪明的项目。

为什么不bash中有cd命令一样聪明?这是一个错误吗?

+0

我只是尝试,并没有注意到你所描述的行为;你确定吗? –

+0

显然,是的。我正在使用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

+0

托马斯,你的意思是,cd +你的目录?你在使用哪种Linux? – syam

回答

2

将以下命令添加到您的bashrc

complete -d cd # or ``complete -A directory cd'' 

那么它只会自动完成迪尔斯(包括链接到迪尔斯)为cd命令。

请参阅​​在bash的手册了解更多详情。

1

在这两种情况下,你所得到的文件名完成。 bash只有足够的内置智能来识别命令名称必须具有可执行权限,因此它将./ + Tab限制为可执行文件。完成自变量cd属于域的可编程完成(因为尽管不明智,可能会将内置命令映射为完全不同的命令而不必将目录作为参数)。

bash的可编程完成设施都还不错,但是由于各种原因,实际上它并不包括在基本安装任何此类的完成。有一个large set of completions available,但是,包括一个cd