GNU split(UNIX 命令)在达到 "z" 后创建与模式不匹配的文件

GNU split (UNIX command) creating files not matching pattern after reaching "z"

所以我正在拆分一些大文件,一切正常,直到出现一个 81GB 的文件。 split 命令似乎成功了,但最后的文件有一个不相关的名称。看图片的右下角。

我正在使用这样的命令:

split -b 125M ./2014.txt 2014/2014_ 

有谁知道为什么不创建文件 2014_za 而创建了 2014_zaaa?

您只能有 676 个名为 [a-z][a-z] 的文件,而您的命令需要更多。

以下是 split 可以做的一些选择:

  1. 崩溃。

    这是 POSIX 强制执行的行为,macOS 也遵循此规定。

  2. 开始写更大的后缀。

    这是一个错误的选择,因为在 _zz 之后是 _aaa,但现在文件将以错误的顺序显示在 ls 中,并且 cat * 将不再按正确的顺序加入他们。

  3. 保存最后一个范围,_z,用于更长的后缀。

    这是一个不错的选择,因为在 _yz 之后是 _zaaa,它有增长的空间,同时仍按字母顺序排列。这就是 GNU 所做的,以及您所看到的行为。

如果您希望所有名称统一而不触发任何这些行为,只需使用更大的后缀长度 -a 6 以确保您有足够的空间。