我有一段时间遇到这个问题了。说/ home / me /我有" cat3"作为目录。现在,在我的Bash shell中,我做了" $ cat [tab]"。我的标签循环:cat,catchsegv,catman。但没有" cat3"。如果我做" cd cat [tab]"然后它立即给cat3。这很烦人,因为有时我会有一个脚本" cat3 / test.py"获得555许可。
理想情况下,我想键入" c [tab] t [tab] [enter]"运行脚本。但我必须输入" cat3 / t [tab] [enter]" ...
如何让标签考虑目录& CWD中的可执行文件,在查看来自/ usr / bin或其他什么的东西之前?
谢谢你的帮助!
答案 0 :(得分:2)
如果cat3
是一个目录,那么在启动时shell不会自动完成它,就像您要在路径中执行命令一样。一个简单的解决方案是从当前目录符号开始,即'。':
$ ./c[tab]
或者,您可以在〜/ bin中创建一个符号链接到cat3中的脚本,并将〜/ bin添加到您的路径中:
export PATH=~/bin:$PATH
如果你真的想要将当前目录添加到你的路径中,你仍然可以这样做(但是,这是一个非常糟糕的主意,因为至少当你想要自动完成非常常用的命令时它会让你感到惊讶): / p>
export PATH=.:$PATH