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