tar.bz2 파일의 병렬 압축 해제를 수행하는 Linux 명령?


17

다소 큰 파일 (~ 50GB)이 있으며 실행하는 데 시간이 걸립니다

tar xvf file.tar.bz2

그 위에. bzip2 파일에 대해 병렬 압축을 수행 할 수 있지만 bzip2 파일에 대해 병렬 압축 해제를 수행 할 수있는 프로그램을 인식하지 못하는 프로그램을 알고 있습니다.

이를 달성 할 수있는 프로그램이 있습니까? 파일에서 추출하는 데 사용할 명령의 정확한 구문은 무엇입니까?

우분투 12.04를 사용하고 있습니다.

답변:


22

lbzip2pbzip2병렬 압축 및 압축 해제에 사용할 수있는 도구입니다.

용법:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 

-d 옵션은 압축 해제에 사용됩니다.

이 패키지를 설치하려면

lbzip2 lbzip2 설치 유형 :

sudo apt-get install lbzip2

pbzip2 pbzip2 설치 유형 :

sudo apt-get install pbzip2

따라서 올바르게 이해하면 압축을 풀고 untar해야합니까? tar xvf? 와 반대로 2 개의 명령처럼
user784637

1
예, 실행할 때 lbzip2 -d -n 2 file.tar.bz2tar 파일이 제공됩니다. 압축을 풀어야합니다.
devav2

1
pbzip2의 맨 페이지에서 (lbzip2는 비슷한 이야기를 들려줍니다.) "pbzip2로 압축 된 파일은 pbzip2를 사용하여 압축을 풀면 상당한 속도 향상을 얻을 수 있습니다. bzip2를 사용하여 압축 된 파일은 bzip2가 데이터를 단일 청크로 포장하므로 속도가 향상되지 않습니다. 프로세서간에 분리 할 수 ​​없습니다. "
Tapio

1
@Tapio 다음은 lbzip2"여러 스레드에서 Julian Seward의 libbz2를 호출하여 FILE 피연산자 또는 일반 파일 또는 표준 출력에 대한 표준 입력 압축 또는 압축 해제에 대한 설명입니다 . lbzip2 유틸리티는 .bz2 파일의 압축을 풀 때도 여러 스레드와 입력 바운드 스플리터를 사용합니다. 표준 bzip2로 만들었습니다 (하지만 아래 버그 참조). "
devav2

1
대답만으로도 두 프로그램을 어떻게 든 함께 사용해야한다는 것을 이해할 것입니다. 그러나 실제로 대안이 될까요? ( "lbzip2 및 pbzip2는 도구입니다 ...", "사용 : lbzip2 ... pbzip2 ...", "이것들을 설치합니다 ...")
Volker Siegel

11

tar 옵션을 사용하여 단일 명령으로 아카이브를 압축 해제 할 수 있습니다 -I. 그것은 당신에게 지원하는 모든 압축 유틸리티를 사용할 수있는 기능을 제공합니다-d옵션 있습니다.

tar -I lbzip2 -xvf <file.tar.bz2>

당신이 큰 아카이브로 탈선 할 때 매우 유용합니다 대상 파일 시스템에서 사용할 수있는 압축되지 않은 크기 (tar temp 파일 및 출력 파일)의 두 배가 필요하지 않기 때문에 합니다. 디스크 IO가 적을수록 빠릅니다.

물론 압축 할 때도 작동합니다.

tar -I lbzip2 -cvpf <file.tar.bz2> <file>

tar --help더 많은 옵션을 확인하십시오 .


1
다른 옵션 (예 : "tar"버전이 -I 옵션을 이해하지 못하는 경우)은lbzip2 -dc file.tar.bz2 | tar xvf -
Wodin

5

pbzip2를 -d 를 "압축 해제"플래그 .

맨 페이지에서 :

  pbzip2 -d myfile.tar.bz2

이 예제는 "myfile.tar.bz2"파일을 압축 해제 된 "myfile.tar"파일로 압축 해제합니다. 자동 감지 된 프로세서 수 (또는 자동 감지가 지원되지 않는 경우 2 개의 프로세서)를 사용합니다.

압축을 푼 후에는 파일을 압축 해제해야합니다.

 tar xf myfile.tar

tar 파일은 여러 압축 알고리즘을 적용 할 수있는 컨테이너 일뿐입니다. 예를 들어 서로 다른 압축 알고리즘이 적용된 ".tar.gz"또는 ".tar.bz2"가있을 수 있습니다. 따라서 pbzip2는 아카이브 압축을 풀지 만 파일을 추출하지는 않으며 파일 tar을 추출하는 데 사용합니다. 아카이브가 이미 압축되지 않았으므로 파일을 추출하기 만하면 Tar는 오래 걸리지 않습니다. (우리는 tar 명령에서 'z'플래그 또는 'j'플래그를 사용하지 않습니다. 이는 파일의 압축을 풀고 싶다는 것을 나타냅니다)


1
: 매뉴얼 페이지는 몇 가지 유용한 예제가 manpages.ubuntu.com/pbzip2
사바스 Radevic

@Sam 답변 주셔서 감사합니다-다른 답변에 남은 의견에 답변 할 수
있습니까

2

pbzip2는 표준 .bz2 파일의 압축 해제 속도를 높일 수 있지만 pbzip2는 그렇게하지 않기 때문에 lbzip2는 pbzip2보다 훨씬 좋습니다. (단지로드 된 쿼드 코어에서 lbzip2의 경우 17 초, pbzip2의 경우 56 초) 테스트했습니다.

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