在Bash中,通配符扩展是否保证有序?

Modified on: Sat, 02 Nov 2019 06:20:02 +0800

Bash中通配符的扩展是否保证按字母顺序排列?我被迫将一个大文件拆分成10 Mb片段,以便我的Mercurial存储库可以接受它们。

所以我以为我可以使用:

split -b 10485760 Big.file BigFilePiece.

然后代替:

cat BigFile | bigFileProcessor

我能做到:

cat BigFilePiece.* | bigFileProcessor

取而代之。

然而,我找不到任何保证星号(又名通配符,又名*)扩展总是按字母顺序排列的地方,以便.aa来到在.ab之前(而不是时间戳排序或类似的东西)。

另外,我的计划有什么缺陷吗? cat整合文件的性能成本有多大?

最佳答案

是的,全球扩张是按字母顺序排列的。

来自Bash man页面:

  

路径名扩展

  
  

分词后,除非设置了-f选项,否则bash会扫描
      每个单词的字符为*?[。如果其中一个字符
      出现,然后这个词被视为一个模式,并替换为
      按字母顺序排序的匹配模式的文件名列表。


相关问答

添加新评论