큰 .gz 파일이 있습니다. 저는 그것을 100개의 더 작은 gzip 파일로 나누고 싶습니다. 각 파일은 개별적으로 압축을 풀 수 있습니다. 즉, 나는 .gz 파일을 압축을 풀기 위해 다시 모아야 하는 덩어리로 자르는 방법을 찾고 있지 않습니다. 각각의 작은 파일을 독립적으로 압축 해제할 수 있기를 원합니다.
전체 파일을 다시 압축하지 않고도 수행할 수 있나요?
원본파일을 압축해도 괜찮나요 --rsyncable
? ("압축된 데이터 스트림의 내부 구조를 주기적으로 재설정하여 rsync 프로그램을 더 잘 충족시킵니다." 이러한 재설정 지점이 분할하기에 좋은 장소인 것처럼 들리며 전면에 헤더를 추가할 수도 있습니다.)
다른 압축 형식에도 사용할 수 있나요? 나는 bzip2
이것이 작동한다고 생각합니다. 왜냐하면 그것이 덩어리로 압축되어 있기 때문입니다.
답변1
대용량 파일을 분할하고 병합하는 것은 효율적이지만, 기본 정보가 데이터 세트 전체에 분산되어 있기 때문에 압축 파일의 개별 부분을 압축 해제하는 것은 불가능합니다. 다른 방법은 압축되지 않은 파일을 분할하고 개별 부분을 압축하는 것입니다. 이제 각 섹션의 압축을 풀 수 있습니다. 그런데 왜? 추가 처리를 하기 전에 압축을 푼 모든 부분을 병합해야 합니다.
답변2
내 실수는 제쳐두고, 파일을 변경하지 않고 대용량 파일을 재구성하고 압축을 풀 수 있는 능력을 잃는 것은 가능하지 않다고 생각합니다. 왜냐하면 첫 번째 큰 파일 압축에서 메타데이터(헤더 및 트레일러)가 손실되기 때문입니다. 작은 파일 각각에는 존재하지 않습니다.
하지만 래퍼를 만들어서 다음을 수행할 수 있습니다.
- (선택사항) 대용량 파일 압축
- 큰 파일을 100개의 작은 청크로 나누기
- gzip으로 각 청크를 압축
- gzip에서 각 청크를 압축 해제합니다.
- 청크를 큰 파일로 연결합니다.
- (선택사항) 대용량 파일 압축 해제
참고: 저장 공간을 절약하려는 목적이 무엇인지 잘 모르겠습니다. 네트워크 전송 시간을 절약하시겠습니까? 제한된 공간 시스템에 대한 기본 요구 사항은 무엇입니까?
감사합니다