linux - 使用 tar、gz、zip 或 bzip2 拆分文件

我需要压缩一个大约 17-20 GB 的大文件。我需要把它分成几个文件,每个文件大约 1GB。

我通过 Google 搜索了解决方案,并找到了使用 splitcat 命令的方法。但它们根本不适用于大文件。此外,它们不能在 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/

相关文章:

Python Infinity - 有什么注意事项吗?

linux - 如何检测网线/连接器的物理连接状态?

linux - 使用 Bash 自动将最后一个命令的输出捕获到变量中?

python - Python SciPy 需要 BLAS 吗?

c - 编写程序以处理导致 Linux 上丢失写入的 I/O 错误

django - 在 Django 中处理一页上的多个表单的正确方法

python - 在 scikit-learn 中将分类器保存到磁盘

python - 编码/解码有什么区别?

linux - 如何强制从另一个 SSH session 中分离 screen ?

python - ValueError : The truth value of an array