MSYS
我在 Windows 7 上使用,我非常喜欢TABBash 控制台的自动完成功能。但是,该功能似乎会查询 Windows$PATH
变量中的所有目录,这需要我大大缩小选择范围。
有没有办法让 bash 只考虑当前目录中的文件?
答案1
在 bash 中(以及据我所知具有自动完成功能的所有其他 shell 中),当您开始输入命令名称并点击 时Tab,shell 将搜索目录中的目录$PATH
并返回名称以您输入的内容开头的命令。这样,您就可以运行命令,而不必位于该特定可执行文件所在的同一目录中。这让您的生活变得轻松很多。
如果您只对当前目录中的可执行文件感兴趣,只需./
在您输入的名称开头添加一个。./
表示当前目录(至少在 *nix 系统上,我不确定他们在移植到 Windows 时是否更改了格式)因此bash
将尝试扩展当前目录中的文件名:
$ ls
foo.pl
$ foo <TAB> ## lists many possible completions
$ ./foo <TAB> ## only lists foo.pl