如何在不区分大小写的 mksh 中使文件名匹配

how to make filename match in mksh case insensitive

我在 Windows 10 上使用 mksh(MirBSD Korn Shell)。我习惯了旧的 UWin ksh,不关心 Win7 上的大小写,并且已经被绊倒了好几次由于大小写 'ls' 看不到文件的次数:

    PC> ls *old
    ls: cannot access '*old': No such file or directory
    PC> ls *OLD
    filename.OLD  testing.OLD

我尝试过 "set completion-ignore-case on"、"typeset -l"、"shopt -s nocaseglob" 和类似的 bash 主义。什么适用于 ksh?

注意:这不是要求在正则表达式中不区分大小写。 谢谢

mksh 开发者在这里。

这不会发生(尤其是因为文件系统通常是 case-sensitive,甚至在 Windows/NT 和 Mac OSX 上也可以设置为它) .

您可以使用 ls *.[Oo][Ll][Dd] 明确地 glob case-insensitively,仅此而已。