많은 파일에 가장 빠른 압축 방법은 무엇입니까?


14

총 약 100GB에 이르는 약 350,000 개의 매우 작은 파일로 디렉토리를 압축해야합니다. OSX를 사용하고 있으며 현재이 디렉토리를 .zip 파일로 변환하는 표준 "Compress"도구를 사용하고 있습니다. 더 빠른 방법이 있습니까?


실제로 압축하지 않고 아카이브 만 가능하므로 특정 옵션을 사용하지 않으면 tar를 이길 수 없습니다. 답변에서, 나는 증거를보고 싶다. 의견이 없다 ...
Daniel Beck

1
원하는 압축 정도에 따라 다릅니다.
ta.speot.은 (는)

1
나는 tar를 사용하여 끝내고 속도 때문에 아직 압축하려고 시도하지 않았습니다. 내가 필요한 것을 제 시간에 완성 할 수있었습니다. 감사!
Spike

@DanielBeck, tar의 문제점은 디렉토리 트리를 표시하지 않는다는 것입니다. 따라서 "보기"를 얻으려면 전체 타르를 압축 해제해야합니다. 디렉토리보기를 표시하는 tar에 대한 대안이 있습니까?
Pacerier

답변:


15

디렉토리의 경우 max-compression과 함께 tar파이프를 사용합니다 bzip2.

가는 간단한 방법은

tar cfj archive.tar.bz2 dir-to-be-archived / 

아카이브에서 작은 파일 세트를 가져 오지 않고
필요할 때마다 모든 것을 추출 하려고 계획하는 경우에 효과적 입니다.
그러나, 당신이 경우에 할 수 는 너무 나쁜, 파일의 작은 집합을 얻을합니다.

이러한 아카이브를 호출 filename.tar.bz2하고 ' xfj'옵션으로 추출 하는 것을 선호합니다 .

최대 압축 파이프는 다음과 같습니다.

tar cf-아카이브 될 디렉토리 / | bzip2 -9-> archive.tar.bz2  
# ^ 파이프 타르볼을 여기에서 압축 파일로 아카이브 파일에 넣습니다 ^. 

참고 : ' bzip2'방법과 더 많은 압축은 gzip' tar cfz' 에서 일반보다 느리게 진행 됩니다.

네트워크 속도가 빠르고 아카이브를 다른 머신에 배치
하려는 경우 네트워크에서 파이프를 사용하여 속도를 높일 수 있습니다 (효과적으로 두 머신을 함께 사용).

타르 CF-dir / | ssh user @ server "bzip2 -9-> /target-path/archive.tar.bz2"  
# ^ 네트워크를 통한 파이프 타르볼을 압축하여 ^ 원격 시스템에 보관합니다.

일부 참고 문헌

  1. 리눅스 저널 : 압축 도구 비교 , 2005 년 7 월 28 일
  2. gzip vs. bzip2 , 2003 년 8 월 26 일
  3. 빠른 벤치 마크 : Gzip vs. Bzip2 vs. LZMA , 2005 년 5 월 31 일

2
질문자는 가장 빠른 방법을 요청했는데 100Gb 타르를 압축하는 데 평생이 걸릴 것입니다! 디스크 공간이 너무 저렴하여 가능한 한 모든 중복 비트를 짜내기 위해 이온을 사용하는 것이 절대적으로 필요한 경우를 제외하고는 의미없는 자원 낭비입니다. 대부분의 디스크 사용량이 여유 공간에서 차지하는 경우, tar를 -1로 압축하면 작업을 충분히 수행 할 수 있으며 몇 개월 전에 다음 작업으로 넘어갈 수 있습니다!
앤디 리 로빈슨

100GB 파일이 전체를 압축 할 가치가 없다는 데 동의하지만 bzip2가 1GB와 비교하여 100GB에 대해 선형 적으로 더 많은 시간이 걸리지 않을 것이라고 생각합니다. 두 가지 방법을 보여주기 위해 일부 이론이나 데이터를보고 싶습니다.
nik

bzip2의 사전은 적응 형이므로 검색 창에서 파일 끝까지 새로운 중복성을 지속적으로 찾고 있습니다. 파일 엔트로피의 균일성에 따라 상대적으로 선형이어야합니다. 파일의 시작 부분에서 나머지 부분을 빠르게 압축 할 수 있기 위해 필요한 모든 것이 있다고 가정 한 나쁜 압축기 일 수도 있지만, 경우에 따라 오래된 것보다 더 오래 성장하는 더 좋은 방법이 있지만 필요한 경우도 있습니다. 100GB 데이터 셋으로 경험적으로!
앤디 리 로빈슨

7

사람 은 그것에 대해 약간의 연구를했습니다. .zip은 더 큰 파일을 더 빨리 압축하는 것으로 보입니다. 그러나 가장 큰 압축 크기 중 하나를 생성합니다. 그는 Windows 유틸리티를 사용하고있는 것처럼 보이지만 OSX의 유틸리티는 거의 최적화되어 있습니다.

다음 은 수많은 압축 유틸리티가 많은 파일의 속도에 대해 벤치마킹 된 훌륭한 웹 사이트입니다. 해당 사이트에 가장 유용한 유틸리티를 결정하기 위해 볼 수있는 다른 많은 테스트가 있습니다.

대부분의 속도는 사용하는 프로그램과 관련이 있습니다. Windows 용 7zip 유틸리티를 사용했는데 매우 빠릅니다. 그러나 많은 파일을 압축하는 데 시간이 오래 걸리므로 밤새도록 보내주십시오. 또는 전체 내용을 압축하고 압축하지 않을 수도 있습니다 ... 개인적으로 큰 아카이브를 압축 해제하는 것을 싫어하므로 원하는 경우 조심해야합니다.


0

나는 사용하는 것을 선호합니다

tar cf - dir-to-be-archived/ | bzip2 -9 - > archive.tar.bz2

파일을 다른 서버로 옮기고 동시에 덮기


1
@nik의 최고 답변에서 이미 제안 된 것입니다. 강조하기 위해 복제 할 필요가 없습니다. 실질적인 내용이 있지만 관련 답변을 제공하지 않으려면 다른 답변을 찬성하거나 의견을 추가하십시오. ; o)
pbhj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.