tar.gz를 추출하는 가장 빠른 방법


42

어쨌든 tar.gz 파일을 더 빨리 추출 할 수 tar -zxvf filenamehere있습니까?

파일이 커서 작업을 최적화하려고합니다.


2
$ tar -zxvf메소드가 IO 또는 CPU에 바인딩되어 있음을 발견 했습니까?
EEAA

1
CPU를 믿지만 어떻게 확인할 수 있습니까?
Justin

5
직접 관련이 없지만 2004 / tar v1.1.5 이후로 'z'가 필요하지 않음 gnu.org/software/tar/#TOCreleases :)
JamesHannah

답변:


57

pigz 는 gzip의 병렬 버전입니다. 압축 해제에는 단일 스레드 만 사용하지만 읽기, 쓰기 및 검사 계산을 위해 3 개의 추가 스레드를 시작합니다. 결과는 다를 수 있지만 일부 데이터 세트의 압축 해제 기능이 크게 향상되었습니다. pigz를 설치하면 tar 파일을 다음과 같이 추출 할 수 있습니다.

pigz -dc target.tar.gz | 타르 xf-


11
+1. FWIW, 당신은 또한로 쓸 수 있습니다 tar -xvf --use-compress-program=pigz filenamehere. ( -z금액 --use-compress-program=gzip.) 또는, 당신도 할 수 있습니다 gzip에 대한 심볼릭 링크 수 pigz, 그리고 계속 사용 -zxvf.
ruakh

2
@ruakh, 내가 넣어 한 -xf--use-compress-program=pigz, 또는 나는 오류가 발생했습니다. 어떤 이유로 든 gzip그래도 사용하는 것보다 빠르지 않았습니다 .
jonderry

들어 bzip2있다 pbzip2( p평행 한 경우). tar --use-compress-program=pbzip2 -xvf file.tar.bz2.
alfC

플래그를 pv사용하는 동안 명령 을 사용하여 진행 상황 또는 동등성을 표시 하는 방법이 --use-compress-program=pigz있습니까? 압축하는 동안 할 수는 gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData있지만 untar / uncompression 중에 어떻게해야하는지 잘 모르겠습니다.
Stefan Lasiewski

13

tar ball에 많은 작은 파일이 많으면 'v'매개 변수를 취소하고 다시 시도하십시오!


3
나는 -v param을 사용하지 않습니다. 왜 사람들이 콘솔에서 그렇게 많은 소음을 필요로하는지 모르십시오.
Eimantas

9
@Eimantas 여러 기가 바이트 파일이 포함 된 무언가를 풀 때 진행 상황을 표시해야합니다. :)
Michael Hampton

@TimHughes : 정말 알고 싶습니다. 별도의 답변으로 게시하십시오!
smci

Michael Hampton 멀티 기가 바이트 파일을 가지고 있지만 작은 파일의 큰 목록과 혼합 된 경우 -v를 사용하지 말아야 할 좋은 이유가 있습니다. 내 로컬 테스트에서 원격 서버에서 tar를 실행하면 tar가 매우 느려집니다. 터미널을 통해 내가하는 일은 du -s 디렉토리를 보는 것이므로 디렉토리가 커지는 것을 볼 수 있습니다 ...
Luciano Andress Martini

그것은 가치가 사용하고있을 수 있습니다 --checkpoint=NUMBER( 디스플레이 진행 메시지마다 NUMBERth 기록 ) 대신을 -v.
Stefan Lasiewski

6

진행 상황을 보려면 다음과 같은 것을 사용하십시오 pv. 다음은 예입니다.

pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.