想要改进这个问题? Update the question所以它是on-topic堆栈溢出。
关闭 13 年前。
我需要压缩一个大约 17-20 GB 的大文件。我需要把它分成几个文件,每个文件大约 1GB。
我通过 Google 搜索了解决方案,并找到了使用 split
和 cat
命令的方法。但它们根本不适用于大文件。此外,它们不能在 Windows 中工作。我需要在 Windows 机器上提取它。
最佳答案
您可以使用 split
带有 -b
选项的命令:
split -b 1024m file.tar.gz
它可以在 Windows 机器上使用 @ Joshua 重新组装。的答案。
copy /b file1 + file2 + file3 + file4 filetogether
编辑:正如@Charlie 在下面的评论中所说,您可能需要明确设置前缀,否则它将使用 x
,这可能会造成混淆。
split -b 1024m "file.tar.gz" "file.tar.gz.part-"
// Creates files: file.tar.gz.part-aa, file.tar.gz.part-ab, file.tar.gz.part-ac, ...
编辑:编辑帖子,因为问题已关闭,最有效的解决方案非常接近此答案的内容:
# create archives
$ tar cz my_large_file_1 my_large_file_2 | split -b 1024MiB - myfiles_split.tgz_
# uncompress
$ cat myfiles_split.tgz_* | tar xz
此解决方案避免了在(解)压缩时使用中间大文件的需要。使用 tar -C 选项为生成的文件使用不同的目录。顺便说一句,如果存档仅包含单个文件,则可以避免使用 tar 并且仅使用 gzip:
# create archives
$ gzip -c my_large_file | split -b 1024MiB - myfile_split.gz_
# uncompress
$ cat myfile_split.gz_* | gunzip -c > my_large_file
对于 Windows,您可以下载相同命令的移植版本或使用 cygwin。
https://stackoverflow.com/questions/1120095/