7-zip 명령줄 도구를 사용하여 .tar.bz2를 부풀리고 추출하는 방법

7-zip 명령줄 도구를 사용하여 .tar.bz2를 부풀리고 추출하는 방법

7-zip 명령줄 도구를 통해 압축을 풀고 추출하려는 .tar.bz2 파일이 있습니다.

그래서 기본적으로 나는

tar -xjf foo.tar.bz2

7-zip의 경우 "x" 옵션만 추출에 사용되므로 이렇게 하세요.

7z x foo.tar.bz2

tar의 모든 디렉토리를 압축 해제하는 대신 비대해진 foo.tar 파일을 제공합니다. 7z에 해당하는 옵션은 무엇입니까?

답변1

단일 명령으로는 이 작업을 수행할 수 없지만 다음을 사용할 수 있습니다.쉘 파이프라인다음과 같이 두 개의 7z 명령을 하나의 명령줄에 연결합니다.

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar

답변2

7zip을 사용하면 명령을 두 번 실행해야 합니다. 한 번은 압축을 풀고 한 번은 압축을 풀어야 합니다. tar 파일 형식은 끝에서 끝까지 연결된 모든 것의 "덩어리"일 뿐입니다. 그런 다음 전체 tar 파일은 다양한 압축 알고리즘(귀하의 경우 bzip)을 사용하여 압축됩니다. 기본적으로 생성된 파일에는 두 개의 레이어가 있습니다. bzip 레이어를 "추출"하면 tar 파일이 생성되고, tar 파일을 추출하면 여러 개의 개별 파일이 생성됩니다.

7zip은 두 개의 레이어를 처리할 수 있지만 동시에 여러 레이어를 처리할 수 없습니다.

7z x foo.tar.bz2
7z x foo.tar

실제로 표준 UNIX 도구는 동일한 방식으로 작동합니다.

bunzip2 foo.tar.bz2
tar xf foo.tar

그러나 Unix 명령에는 tartar 부분을 처리하기 전/후에 다른 프로그램을 사용하여 2차 압축 및 압축 해제 단계를 호출하는 편리한 기능이 있습니다. 기본적으로 -j매개변수는 bzip2/ 를 호출하므로 bunzip2두 번째 단계는 표시되지 않습니다. / etc 도 -z호출됩니다 .gzipgunzip

답변3

stdout과 파이프를 사용하여 7z와 tar를 결합한 더 짧은 버전은 어떻습니까?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -

답변4

7z x -so foo.tar.bz2 | 7z x -si -ttar

관련 정보