![tar/gzip이 두 개의 유사한 대형 디렉토리를 압축할 수 없는 이유는 무엇입니까?](https://linux55.com/image/176661/tar%2Fgzip%EC%9D%B4%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%9C%A0%EC%82%AC%ED%95%9C%20%EB%8C%80%ED%98%95%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A5%BC%20%EC%95%95%EC%B6%95%ED%95%A0%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
오래 전에 증분 및 차등 백업을 시도하기 전에 비슷한 크기(1GB)의 여러 디렉터리를 tar/gzip으로 시도했지만 각 디렉터리를 개별적으로 tar 및 gzip으로 압축하는 것보다 나을 것이 없었습니다. 왜 작동하지 않는지에 대한 내 추측은 다음과 같습니다.
파일이 멀리 떨어져 있기 때문에 별도의 gzip DEFLATE 청크로 압축되지 않으므로 함께 압축되지 않습니다.얼마나 멀리)
이 추론이 맞나요?
답변1
예, tar는 파일을 확장자별로 정렬하지 않고(더 높은 압축률을 달성하는 데 도움이 될 수 있음) gzip
비교적 적당한 사전(32KB)을 사용하는 매우 오래된 압축 알고리즘이기 때문에 귀하의 추론은 정확합니다.
xz
또는 대신 사용해 보세요 p7zip
.
다음은 Linux에서 가장 높은 압축 비율을 달성할 수 있는 압축 문자열입니다.
7za a -mx=9 -myx=9 -mfb=273 -bt -slp -mmt4 -md=1536m -mqs archive.7z [list of files]
이를 위해서는 많은 메모리(최소 32GB RAM)가 필요합니다. 제거 -mmmt4
하고 사전 크기를 1024m로 줄이면 16GB이면 충분합니다.
tar
몇 년 전에 저는 다음과 같은 스크립트를 작성했습니다 .https://github.com/birdie-github/useful-scripts/blob/master/tar_sorted