我正在处理大数据,我需要归档一个大于64 to的目录。我不能在我的文件系统上创建如此大的文件(存档)。不幸的是,所有在Linux上创建多部分存档的解决方案都建议先创建存档,然后使用split命令将其拆分为较小的文件。
我知道用f.e是有可能的。但不幸的是,我不得不使用RedHat 6- tar,gzip,bzip2.
我想知道如何创建一个脚本来询问用户的最大卷大小。它会用gzip归档每个文件,分割那些太大的文件,然后手动将它们合并成多个具有所选大小的tars。这是个好主意吗
使用基本Linux命令实现大归档分区还有其他的可能性吗?
更新:
我已经用受限的最大文件大小在文件系统上测试了解决方案,并且它工作了。将tar输出直接重定向到split命令的管道按预期工作:
tar -czf - HugeDirectory | split --bytes=100GB - MyArchive.tgz.
所创建的文件已经很小,合并时不会创建超大型文件:
cat MyArchive.tgz* | tar -xzf -
发布于 2018-06-29 07:04:50
如果您有足够的空间存储压缩的归档文件,那么可以一次性创建并拆分归档文件(假设GNU split):
tar -c -vz -f - directory | split --additional-suffix=.gz.part -b 1G这将创建名为xaa.gz.part、xab.gz.part等的文件,每个文件都是tar存档的1G压缩位。
要解压缩档案:
cat x*.gz.part | tar -x -vz -f -如果文件系统无法存储压缩的归档文件,则需要将归档部分写入另一个文件系统,以替代某些远程位置。
例如,在那个偏远的地方:
ssh user@serverwithfiles tar -c -vz -f - directory | split --additional-suffix=.gz.part -b 1G这将通过ssh将压缩的存档从具有大目录的机器传输到本地计算机,并将其拆分。
发布于 2018-06-28 23:34:28
使用基本的UNIX命令,除了拆分一个现有文件之外,我看不出有什么办法。
但是如何安装star并使用来自star的多卷功能呢?
这样做的好处是可以检查部件是否按正确的顺序提供。
https://unix.stackexchange.com/questions/452472
复制相似问题