Linux에서 .tar.gz 또는 .tar.bz2 파일을 추출하는 방법

  • Dave McKay

    @TheGurkha

  • 2019 년 4 월 5 일 오전 8:00 EDT
Fatmawati Achmad Zaenuri / .com

Tar 파일은 압축 된 아카이브입니다. Ubuntu와 같은 Linux 배포판을 사용하거나 macOS에서 터미널을 사용하는 동안에도 이러한 문제가 자주 발생합니다. tarball이라고도하는 tar 파일의 내용을 추출하거나 압축을 푸는 방법은 다음과 같습니다.

.tar.gz 및 .tar.bz2는 무엇을 의미합니까?

.tar.gz 또는 .tar.bz2 확장자는 압축 된 아카이브 파일입니다. 확장자가 .tar 인 파일은 압축되지 않지만 매우 드뭅니다.

.tar 부분 파일 확장자는 테이프 아카이브를 나타내며 이러한 두 파일 유형을 모두 tar 파일이라고 부르는 이유입니다. Tar 파일은 시스템 관리자가 파일을 테이프에 보관할 수 있도록 tar 명령이 생성 된 1979 년으로 거슬러 올라갑니다. 40 년이 지난 지금도 tar 명령을 사용하여 하드 드라이브에 tar 파일을 추출하고 있습니다. 어딘가에있는 누군가가 여전히 테이프와 함께 tar를 사용하고있을 것입니다.

광고

.gz 또는 .bz2 확장자 접미사는 gzip 또는 bzip2를 사용하여 아카이브가 압축되었음을 나타냅니다. 압축 알고리즘. tar 명령은 두 유형의 파일 모두에서 문제없이 작동하므로 어떤 압축 방법을 사용했는지는 중요하지 않으며 Bash 셸이있는 모든 곳에서 사용할 수 있어야합니다. 적절한 tar 명령 줄 옵션을 사용하기 만하면됩니다.

Tar 파일에서 파일 추출

두 개의 파일을 다운로드했다고 가정 해 보겠습니다. 악보 하나의 파일은 ukulele_songs.tar.gz이고 다른 하나는 guitar_songs.tar.bz2입니다. 이 파일은 다운로드 디렉토리에 있습니다.

우쿨렐레 노래를 추출해 보겠습니다.

tar -xvzf ukulele_songs.tar.gz 

파일이 추출되면 다음 위치에 나열됩니다. 터미널 창.

사용한 명령 줄 옵션은 다음과 같습니다.

  • -x : tar 파일에서 파일을 추출하고 검색합니다.
  • – v : Verbose, 압축 해제되는 파일을 나열합니다.
  • -z : Gzip, gzip을 사용하여 tar 파일의 압축을 풉니 다.
  • -f : 파일, tar의 이름 tar에 사용할 파일입니다. 이 옵션 뒤에 tar 파일의 이름이 와야합니다.

ls를 사용하여 디렉토리의 파일을 나열하면 Ukulele Songs라는 디렉토리가 생성되었습니다. 추출 된 파일은 해당 디렉토리에 있습니다. 이 디렉토리의 출처는 어디입니까? tar 파일에 포함되어 파일과 함께 압축이 해제되었습니다.

광고

이제 기타 곡을 추출해 보겠습니다. 이를 위해 이전과 거의 똑같은 명령을 사용하지만 한 가지 중요한 차이점이 있습니다. .bz2 확장자 접미사는 bzip2 명령을 사용하여 압축되었음을 알려줍니다. -z (gzip) 옵션을 사용하는 대신 -j (bzip2) 옵션을 사용합니다.

tar -xvjf guitar_songs.tar.bz2

다시 한 번 파일이 압축 해제되면 터미널에 나열됩니다. 명확히하기 위해 .tar.bz2 파일에 대해 tar에서 사용한 명령 줄 옵션은 다음과 같습니다.

Download 디렉토리의 파일을 보면 Guitar Songs라는 다른 디렉토리가 생성 된 것을 볼 수 있습니다.

파일을 추출 할 위치 선택

파일을 특정 위치로 추출하려는 경우 현재 디렉토리 외에 -C (지정된 디렉토리) 옵션을 사용하여 대상 디렉토리를 지정할 수 있습니다.

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
광고

Documents / Songs 디렉토리를 보면 Guitar Songs 디렉토리가 생성되었음을 알 수 있습니다.

대상 디렉토리가 이미 존재해야합니다. tar는 존재하지 않으면 생성하지 않습니다. 디렉토리를 생성하고 tar 파일을 모두 하나의 명령으로 추출하도록하려면 다음과 같이 할 수 있습니다.

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

-p (부모) 옵션을 사용하면 mkdir에서 필요한 모든 상위 디렉터리를 생성하여 대상 디렉터리를 확인합니다.

파일을 추출하기 전에 Tar 파일 내부 살펴보기

지금까지 우리는 믿음의 도약을하고 보이지 않는 파일을 추출했습니다. 도약하기 전에 살펴보고 싶을 것입니다. -t (목록) 옵션을 사용하여 압축을 풀기 전에 tar 파일의 내용을 검토 할 수 있습니다.일반적으로 less 명령을 통해 출력을 파이프하는 것이 편리합니다.

tar -tf ukulele_songs.tar.gz | less
광고

파일을 나열하기 위해 -z 옵션을 사용할 필요가 없습니다. .tar.gz 파일에서 파일을 추출 할 때 -z 옵션 만 추가하면됩니다. 마찬가지로 tar.bz2 파일에있는 파일을 나열하기 위해 -j 옵션이 필요하지 않습니다.

스크롤 출력 결과 tar 파일의 모든 내용이 Ukulele Songs라는 디렉토리에 보관되어 있고 그 디렉토리 내에 파일과 기타 디렉토리가 있음을 알 수 있습니다.

Ukulele Songs 디렉토리에는 다음과 같은 디렉토리가 포함되어 있습니다. 임의의 노래, Ramones 및 가능성.

tar 파일 내의 디렉토리에서 모든 파일을 추출하려면 다음 명령을 사용하십시오. 경로에 공백이 있으므로 경로는 따옴표로 묶여 있습니다.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"
광고

단일 파일을 추출하려면, 파일의 경로와 이름을 제공합니다.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"

와일드 카드를 사용하여 선택한 파일을 추출 할 수 있습니다. 여기서 *는 모든 문자열을 나타내고 ?는 모든 단일 문자를 나타냅니다. 와일드 카드를 사용하려면 --wildcards 옵션을 사용해야합니다.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"

디렉터리를 추출하지 않고 파일 추출

tar 파일의 디렉토리 구조가 하드 드라이브에 다시 생성되지 않도록하려면 --strip-components 옵션을 사용하십시오. --strip-components 옵션에는 숫자 매개 변수가 필요합니다. 숫자는 무시할 디렉토리 수준을 나타냅니다. 무시 된 디렉토리의 파일은 여전히 추출되지만 디렉토리 구조는 하드 드라이브에 복제되지 않습니다.

예제 tar 파일에 --strip-components=1를 지정하면 tar 파일 내의 Ukulele Songs 최상위 디렉토리는 하드 드라이브에 생성되지 않습니다. 해당 디렉토리로 추출 된 파일과 디렉토리는 대상 디렉토리에서 추출됩니다.

tar -xvzf ukulele_songs.tar.gz --strip-components=1
광고

두 개만 있습니다. 예제 tar 파일 내의 디렉토리 중첩 수준. 따라서 --strip-components=2를 사용하면 모든 파일이 대상 디렉터리에 추출되고 다른 디렉터리는 생성되지 않습니다.

tar -xvzf ukulele_songs.tar.gz --strip-components=2

Linux man 페이지를 보면 tar가 “명령 줄 옵션이 가장 많은 명령”이라는 제목에 적합한 후보라는 것을 알 수 있습니다. 고맙게도 .tar.gztar.bz2 파일에서 세부적으로 제어하여 파일을 추출 할 수 있도록하려면

Dave McKay
Dave McKay는 천공 종이 테이프가 유행 할 때 컴퓨터를 처음 사용했으며 그 이후로 프로그래밍을 해왔습니다. . IT 업계에서 30 년 이상 근무한 후 그는 현재 전임 기술 저널리스트로 일하고 있습니다. 경력 기간 동안 그는 프리랜서 프로그래머, 국제 소프트웨어 개발 팀의 관리자, IT 서비스 프로젝트 관리자로 일했으며 가장 최근에는 , 데이터 보호 책임자 Dave는 Linux 전도자이자 오픈 소스 옹호자입니다. 전체 약력 읽기 “

Leave a Reply

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다