如何有效地将大型数据集归档并压缩为多个部分?

如何有效地将大型数据集归档并压缩为多个部分?

目前使用以下模型,但需要双倍的磁盘空间来恢复压缩存档,因为必须将所有部分传输到 tar 才能删除它们。

$ COPYFILE_DISABLE=true tar \
  --create \
  --directory ~/data/dataset \
  --use-compress-program lz4 \
  --verbose \
  . | \
  split \
  --bytes 10G \
  --numeric-suffixes \
  - \
  dataset.tar.lz4.part
$ cat dataset.tar.lz4.part* | \
  tar \
  --extract \
  --directory ~/data/dataset \
  --use-compress-program lz4 \
  --verbose

是否有更有效的模型,可以在解压缩时按照 FIFO(先进先出)方式删除零件?

答案1

你总是可以这样做:

for part in dataset.tar.lz4.part*; do
  cat < "$part" || break
  rm -f -- "$part"
done |
  tar \
  --extract \
  --directory ~/data/dataset \
  --use-compress-program lz4 \
  --verbose

不要gzlz4- 压缩文件使用后缀,这会产生误导,gz适用于gzip.

相关内容