tar/gzip이 두 개의 유사한 대형 디렉토리를 압축할 수 없는 이유는 무엇입니까?

tar/gzip이 두 개의 유사한 대형 디렉토리를 압축할 수 없는 이유는 무엇입니까?

오래 전에 증분 ​​및 차등 백업을 시도하기 전에 비슷한 크기(1GB)의 여러 디렉터리를 tar/gzip으로 시도했지만 각 디렉터리를 개별적으로 tar 및 gzip으로 압축하는 것보다 나을 것이 없었습니다. 왜 작동하지 않는지에 대한 내 추측은 다음과 같습니다.

  1. tar는 중복된 파일을 합칠 수 없습니다.

  2. 파일이 멀리 떨어져 있기 때문에 별도의 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

관련 정보