【发布时间】:2012-01-12 00:50:42
【问题描述】:
我的 bash 中的目录列表区分大小写有问题。例如
$ touch nohupa nohuPb
$ ls nohup*
nohupa nohuPb
但我确实希望它只列出 nohupa 而不是 nohuPb。因为 nohuPb 有大写 P。 我不知道我的 .bashrc 集中的哪个变量可以忽略大小写。
有什么想法吗?
【问题讨论】:
标签: bash bash-completion
我的 bash 中的目录列表区分大小写有问题。例如
$ touch nohupa nohuPb
$ ls nohup*
nohupa nohuPb
但我确实希望它只列出 nohupa 而不是 nohuPb。因为 nohuPb 有大写 P。 我不知道我的 .bashrc 集中的哪个变量可以忽略大小写。
有什么想法吗?
【问题讨论】:
标签: bash bash-completion
是nocaseglob 造成的。
nocaseglob
如果设置,bash 匹配不区分大小写的文件名 执行路径名扩展时的时尚(请参阅路径名扩展 以上)。
测试
$ touch fooab fooAb
$ ls
fooAb fooab
$ shopt -s nocaseglob
$ ls fooa*
fooAb fooab
$ shopt -u nocaseglob
$ ls fooa*
fooab
【讨论】:
看起来你的 shell 设置了nocaseglob。您可以使用名为shopt 的shell built-in 取消设置。使用-s 选项到enable 它和-u 选项到disable 它。
更多参考您可以访问here。
【讨论】: