我刚刚输入了一个带小写模式的rm命令,期望它只删除匹配的小写文件,但发现一些大写文件也被删除了:
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.1/plugins/ui.multiselect.min.css"
integrity="sha384-ZiGiMTFP/JPxu5YXtclEjVDGZHbKOP2RBpOke65fQkSTg9yVHjpIBz3heEG6/7ja"
crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.13.1/plugins/ui.multiselect.min.js"
integrity="sha384-NrAnGBGjwjZspUViA2F5wJAZyC03l65Oaz39yB5Y3YDclQeASNM5luBMgPfDJRKE"
crossorigin="anonymous"></script>
我在三个不同的Linux上尝试了这个,结果相同。这是预期的行为吗?我认为Linux严格区分大小写,而不是Windows。另外,我很惊讶[x-z]选择大写字符,但[x]没有。
答案 0 :(得分:2)
您的语言区域是什么?设置区域设置可以影响字符的排序方式。
$ touch X
$ LC_ALL=C
$ ls [a-z]
ls: cannot access '[a-z]': No such file or directory
$ LC_ALL=cs_CZ
$ ls [a-z]
X
答案 1 :(得分:1)
也许您已经在bash中设置了nocasematch
选项?看看
shopt -p nocasematch
如果回复显示 shopt -s nocasematch ,则表示已设置此选项。如果它显示 shopt -u nocasematch ,则表示未设置此选项。
答案 2 :(得分:1)
可能是由于nocaseglob
已启用。
使用此命令检查:
shopt nocaseglob
要关闭它,请使用:
shopt -u nocaseglob
要打开它:
shopt -s nocaseglob
开启时:
shopt -s nullglon
shopt -s nocaseglob
touch X
echo [x-z]
# finds the file with uppercase X
X
关闭时:
shopt -u nocaseglob
echo [x-z]
# nothing here