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
可以做的一些选择:
崩溃。
这是 POSIX 强制执行的行为,macOS 也遵循此规定。
开始写更大的后缀。
这是一个错误的选择,因为在 _zz
之后是 _aaa
,但现在文件将以错误的顺序显示在 ls
中,并且 cat *
将不再按正确的顺序加入他们。
保存最后一个范围,_z
,用于更长的后缀。
这是一个不错的选择,因为在 _yz
之后是 _zaaa
,它有增长的空间,同时仍按字母顺序排列。这就是 GNU 所做的,以及您所看到的行为。
如果您希望所有名称统一而不触发任何这些行为,只需使用更大的后缀长度 -a 6
以确保您有足够的空间。
所以我正在拆分一些大文件,一切正常,直到出现一个 81GB 的文件。 split 命令似乎成功了,但最后的文件有一个不相关的名称。看图片的右下角。
我正在使用这样的命令:
split -b 125M ./2014.txt 2014/2014_
有谁知道为什么不创建文件 2014_za
而创建了 2014_zaaa
?
您只能有 676 个名为 [a-z][a-z]
的文件,而您的命令需要更多。
以下是 split
可以做的一些选择:
崩溃。
这是 POSIX 强制执行的行为,macOS 也遵循此规定。
开始写更大的后缀。
这是一个错误的选择,因为在
_zz
之后是_aaa
,但现在文件将以错误的顺序显示在ls
中,并且cat *
将不再按正确的顺序加入他们。保存最后一个范围,
_z
,用于更长的后缀。这是一个不错的选择,因为在
_yz
之后是_zaaa
,它有增长的空间,同时仍按字母顺序排列。这就是 GNU 所做的,以及您所看到的行为。
如果您希望所有名称统一而不触发任何这些行为,只需使用更大的后缀长度 -a 6
以确保您有足够的空间。