忽略带有bash选项卡完成的路径条目

忽略带有bash选项卡完成的路径条目,bash,autocomplete,path,ignore,tab-completion,Bash,Autocomplete,Path,Ignore,Tab Completion,我有两个命令,foo和foobar,其中foo是指向foobar的符号链接。我希望能够键入f+TAB(假设路径上只有这两个命令以f开头),并完成其中一个命令(即全名和后面的空格) 但最终发生的是,由于foo-bar,它只完成了foo(没有空格)。很明显,点击空格键并没有太大的工作量,但这打断了我的思路 其他一些细节: foo和foo-bar位于同一目录中 删除/移动foo不是一个选项(我隐藏了一些细节) 有没有办法忽略特定的路径条目?试试看: FIGNORE=foo-bar 您可以使用FI

我有两个命令,
foo
foobar
,其中
foo
是指向
foobar
的符号链接。我希望能够键入
f
+TAB(假设路径上只有这两个命令以
f
开头),并完成其中一个命令(即全名和后面的空格)

但最终发生的是,由于
foo-bar
,它只完成了
foo
(没有空格)。很明显,点击空格键并没有太大的工作量,但这打断了我的思路

其他一些细节:

  • foo
    foo-bar
    位于同一目录中
  • 删除/移动
    foo
    不是一个选项(我隐藏了一些细节)
有没有办法忽略特定的路径条目?

试试看:

FIGNORE=foo-bar

您可以使用FIGNORE,尽管它有一些奇怪的属性

FIGNORE需要一个合适的后缀。因此,要忽略foo-bar,以下任何一项都可以:

FIGNORE=bar
FIGNORE=-bar
FIGNORE=r
FIGNORE=oo-bar

导入的东西是尝试
FIGNORE=foo-bar
,因为它不是一个合适的后缀。

这几乎可以工作,但正如公认的解决方案中所指出的,FIGNORE需要一个合适的后缀。@Ed:对不起,我误解了你的问题,我将其设置为忽略foo而不是foo-bar。然而,
FIGNORE=foo-bar
对我有效。奇怪的是,不确定为什么
FIGNORE=foo-bar
对你有效(对我无效)
FIGNORE=oo bar
对我来说确实有用。@Ed:我在Cygwyn和Bash3.2.49(23)版本以及Ubuntu和4.0.33(1)版本上都试用过。你的版本是什么?我在Bash3.2.39(1)发行版(openSUSE 11.1)、Bash3.2.48(1)发行版(OS X 10.6)和Bash4.0.35(1)发行版(Fedora Core 12)上进行了测试。在所有这些版本中,只有当我使用正确的后缀时,它才起作用。不知道你为什么会看到不同的东西。