忽然发现这几天在终端下 bash 在目录补全很奇怪。
如
$ ls fo 会被补全为 $ ls
foo
其实foo是一个目录,正常情况下
$ls fo 补全为 $ ls foo/
显然,
补全的时候, foo 被当成一个文件名来进行补全。
在bashcompletion软件包中,目录补全的是
_filedir()函数来实现的。在进行查找才发现。
原来__ /etc/bash_completion.d/acroread.sh __ 文件中对定义了函数
_filedir().它很可能覆盖了系统真正的实现。
这个文件是在安装 adobe reader 时并入系统的。
Okay, 那只要将 acroread.sh 中 _filedir() 重
命令成 _filedir_foo() 就好了。
世界又再一次安静了。
阅读(1918) | 评论(0) | 转发(0) |