![대규모 데이터 세트를 여러 부분으로 효율적으로 보관하고 압축하는 방법은 무엇입니까?](https://linux55.com/image/202794/%EB%8C%80%EA%B7%9C%EB%AA%A8%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%84%B8%ED%8A%B8%EB%A5%BC%20%EC%97%AC%EB%9F%AC%20%EB%B6%80%EB%B6%84%EC%9C%BC%EB%A1%9C%20%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EB%B3%B4%EA%B4%80%ED%95%98%EA%B3%A0%20%EC%95%95%EC%B6%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
현재 다음 모델이 사용되고 있지만 삭제하려면 모든 부분을 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
.