Chinaunix首页 | 论坛 | 博客
  • 博客访问: 244899
  • 博文数量: 47
  • 博客积分: 1229
  • 博客等级: 中尉
  • 技术积分: 568
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-20 10:06
文章分类

全部博文(47)

文章存档

2014年(1)

2013年(7)

2012年(1)

2011年(38)

分类: LINUX

2011-06-04 12:37:51

忽然发现这几天在终端下 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() 就好了。

世界又再一次安静了。
阅读(1923) | 评论(0) | 转发(0) |
0

上一篇:更新 gentoo-2008

下一篇:文件后缀名绑定

给主人留下些什么吧!~~