Answers:
简短的回答:是的。
从bash手册页:
拆分单词后,除非已设置-f选项(请参阅内置内置集),否则Bash会在每个单词中扫描字符'*','?'和'['。如果出现这些字符之一,则将该单词视为一个模式,并替换为与该模式匹配的按字母顺序排序的文件名列表。
ls
在同一系统上相同的输出。
简短的答案是肯定的,但是您需要知道它认为字母数字顺序应该是什么,因为它可能与您所想到的自然顺序不符。
例如,对如何处理大写和小写以及在数字序列上进行一些测试。
我在排序全局文件返回的文件列表时遇到的一个常见问题是编号文件。我经常看到文件编号如下:
blah_1.txt
blah_2.txt
...
blah_10.txt
blah_11.txt
但是,使用的全局变量*
不会按此顺序返回它们,相反,您将得到类似以下内容的信息:
blah_1.txt
blah_10.txt
blah_11.txt
...
blah_2.txt
blah_20.txt
...
所以-避免这个问题你要么需要做的文件,或使个位数重命名的文件返回的列表上的一些操作有前导零(即blah_01.txt
,blah_02.txt
等)。
$LC_COLLATE
)。