我设置了几个文件来理解bash的set构造通配符,即[]。
ls *
1 2 A bob darlene dave ed frank fred LS_example.sh Z
我希望ls [a-z]*
返回的文件只包含以小写字母开头的文件,但在下文中,还会返回以大写字母开头的文件:
ls [a-z]*
A bob darlene dave ed frank fred LS_example.sh
你能解释一下这种行为吗?
答案 0 :(得分:2)
在您的语言环境(以及它在您的操作系统中定义的方式)中,[a-z]
包括大写和小写字母。如果要可靠地匹配小写字母,请执行以下操作:
ls [[:lower:]]*