대규모 데이터 세트를 여러 부분으로 효율적으로 보관하고 압축하는 방법은 무엇입니까?

대규모 데이터 세트를 여러 부분으로 효율적으로 보관하고 압축하는 방법은 무엇입니까?

현재 다음 모델이 사용되고 있지만 삭제하려면 모든 부분을 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

gz압축 파일 에 - 접미사를 사용 하지 마십시오 lz4. 이는 오해의 소지가 있으며 gz에 적용됩니다 gzip.

관련 정보