ls 命令:如何在不通配的情况下忽略大小写

ls 命令:如何在不通配的情况下忽略大小写

我使用shopt -s nocaseglob命令忽略大小写,但如果我使用不带 glob 的字符串,它似乎不起作用。

在此输入图像描述

只是出于好奇的一个问题,是否可以在不通配符的情况下忽略大小写?即ls a会输出两者AA

答案1

不与ls不。但是,您可以使用类似以下的内容:

$ ls [Aa]
$ find . -iname a
$ echo [aA]

其背后的原因是该shopt命令仅影响 shell 扩展 glob 的方式。所以,当你跑步时ls *a 运行该shopt命令,该命令会被您的 shell 扩展为

ls a A 

因此,正如 @Kevin 所说,全局已扩展被传递给ls,因此nocaseglob当您给出一个简单的字符串而不是一个 glob 时,它将不起作用。

答案2

ls不会。Glob 扩展在调用之前就由 shell 处理。

相关内容