在 Ubuntu 11.04 64 位上的 bash 中,不区分大小写的文件名通配符不起作用。指定的 shell 选项.bashrc
如下:
shopt -s nocaseglob
shopt -s nocasematch
shopt 还表明nocaseglob
和nocasematch
是on
。但对于目录更改或打开文件,它在不区分大小写模式下不起作用。
我想检查是否需要任何其他选项来启用不区分大小写的文件名通配。
答案1
你真的在做通配符扩展吗?例如,假设您有一个名为 的目录Foobar
。然后
cd foobar
不进行通配符操作,因为没有通配符。当您准确指定文件名时,由应用程序决定如何处理它,并且由于 UNIX 文件名区分大小写,因此Foobar
如果您告诉应用程序打开名为 的文件,应用程序将不会打开名为的文件foobar
。
另一方面,
cd foo*
如果您设置了该选项,将更改为该Foobar
目录(假设没有其他匹配项) 。nocaseglob
您也可以使完成不区分大小写。放入set completion-ignore-case on
,~/.inputrc
或
bind 'set completion-ignore-case on'
在~/.bashrc
。然后输入cd foo
并按下后Tab,shell就完成了Foobar
。