大規模なデータセットを複数の部分に効率的に保存して圧縮する方法は?

大規模なデータセットを複数の部分に効率的に保存して圧縮する方法は?

現在、次のモデルが使用されていますが、削除するにはすべての部分をtarに転送する必要があるため、圧縮アーカイブを復元するには2倍のディスク容量が必要です。

$ 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

gz圧縮ファイルにサフィックスを使用しないでくださいlz4。これは誤解を招くgz可能性がありますgzip

関連情報