将大文件分成小块


Answers:


79

您可以使用splitcat

例如类似

$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.

(其中输入文件名是foo,最后一个参数是输出前缀)。这将创建类似foo.000 foo.001...的文件

带有短选项的相同命令:

$ split -b 100k -d -a 3 foo foo

如果希望它在行边界上分割,而不是仅精确的字节数,也可以指定“ --line-bytes”。

要重新组装生成的零件,可以使用例如:

$ cat foo.* > foo_2

(假设shell对shell globbing的结果进行了排序,并且零件数不超过参数的系统相关限制)

您可以通过以下方式比较结果:

$ cmp foo foo_2
$ echo $?

(应该输出0)

另外,您可以结合使用find / sort / xargs重新组装零件:

$ find -maxdepth 1 -type f -name 'foo.*'  | sort | xargs cat > foo_3

2
尝试以下命令:man split cat md5sum
Kevin M

6
组装时,我建议最后一块预期的零件cat foo.{000..NNN}在哪里NNN。这样,如果其中一件丢失,您将收到一条错误消息。但是请注意,-d获取数字后缀特定于GNU split。在其他平台上,你必须凑合着用foo.aaafoo.aab
吉尔斯

1
而且要记住的是,对于split,KB = 1000,K = 1024,MB = 1000 * 1000,M = 1024 * 1024等等
Zorawar

1
... cat > foo_3不是... cat >>foo_3吗?
2015年

1
如果您决定使用实用程序减轻痛苦。rar并且7zip经常用于使此类拆分更易于重组跨平台
固定时间为

4

如果您希望使用GUI,也可以使用Archive Manager进行此操作。在“保存->其他选项->分成多个卷”下查看。


5
我将其标记为“命令行”,但感谢您的回答:)
Stefan 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.