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

0
591
Unity 데스크탑 컨셉의 배쉬 쉘
Fatmawati Achmad Zaenuri / Shutterstock.com

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

.tar.gz와 .tar.bz2은 무슨 뜻입니까?

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

그만큼 .tar 파일 확장자의 일부는 원숭이 ar이러한 파일 형식을 모두 tar 파일이라고하는 이유입니다. 타르 파일은 1979 년으로 거슬러 올라갑니다. tar 시스템 관리자가 파일을 테이프에 아카이브 할 수 있도록 명령이 작성되었습니다. 40 년 후 우리는 여전히 tar tar 파일을 하드 드라이브에 추출합니다. 어딘가에 누군가가 여전히 사용 중일 것입니다 tar 테이프로.

그만큼 .gz 또는 .bz2 확장자 접미사는 아카이브를 압축했음을 나타냅니다. gzip 또는 bzip2 압축 알고리즘. 그만큼 tar 명령은 두 파일 형식 모두에서 행복하게 작동하므로 어떤 압축 방법을 사용하든 상관없이 Bash 셸이있는 모든 곳에서 사용할 수 있습니다. 당신은 적절한을 사용해야합니다 tar 명령 행 옵션.

Tar 파일에서 파일 추출

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

downloads 디렉토리에있는 두 개의 tar 파일

우쿨렐레 노래를 추출해 봅시다 :

tar -xvzf ukulele_songs.tar.gz

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

tar 파일에서 모든 파일 추출

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

  • -엑스: tar 파일에서 파일을 추출하고 검색하십시오.
  • -V: 상세, 추출중인 파일을 나열하십시오.
  • -지: Gzip, gzip을 사용하여 tar 파일을 압축 해제하십시오.
  • -에프: File, 원하는 tar 파일 이름 tar 함께 일합니다. 이 옵션 뒤에 tar 파일의 이름이 와야합니다.

디렉토리의 파일을 ls Ukulele Songs라는 디렉토리가 생성 된 것을 볼 수 있습니다. 추출 된 파일은 해당 디렉토리에 있습니다. 이 디렉토리는 어디에서 왔습니까? 그것은에 포함되었다 tar 파일과 함께 추출되었습니다.

다운로드 디렉토리에 작성된 우쿨렐레 노래 디렉토리

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

tar -xvjf guitar_songs.tar.bz2

다운로드 폴더에서 기타 노래 타르 파일 추출

다시 한 번, 파일이 추출 될 때 파일이 터미널에 나열됩니다. 명확히하기 위해 우리가 사용했던 명령 줄 옵션 tar 를 위해 .tar.bz2 파일은 다음과 같습니다

  • -엑스: tar 파일에서 파일을 추출하고 검색하십시오.
  • -V: 상세, 추출중인 파일을 나열하십시오.
  • -제이: Bzip2, bzip2를 사용하여 tar 파일을 압축 해제하십시오.
  • -에프: 파일, tar가 작업 할 tar 파일의 이름.

다운로드 디렉토리에 파일을 나열하면 Guitar Songs라는 다른 디렉토리가 생성 된 것을 볼 수 있습니다.

다운로드 디렉토리에 작성된 기타 노래 디렉토리

파일을 추출 할 위치 선택

현재 디렉토리가 아닌 다른 위치에 파일을 추출하려면 다음을 사용하여 대상 디렉토리를 지정할 수 있습니다. -C (지정된 디렉토리) 옵션.

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

Documents / Songs 디렉토리를 보면 Guitar Songs 디렉토리가 생성 된 것을 볼 수 있습니다.

Documents / Songs 디렉토리에 작성된 기타 노래 디렉토리

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

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

그만큼 -p (부모) 옵션 원인 mkdir 필요한 모든 상위 디렉토리를 작성하여 대상 디렉토리를 작성하십시오.

압축을 풀기 전에 Tar 파일 내부 조사

지금까지 우리는 방금 믿음의 도약을보고 보이지 않는 파일을 추출했습니다. 도약하기 전에보고 싶을 수도 있습니다. 당신은의 내용을 검토 할 수 있습니다 tar 파일을 추출하기 전에 -t (목록) 옵션. 일반적으로 출력을 파이프로 연결하는 것이 편리합니다 less 명령.

tar -tf ukulele_songs.tar.gz | less

우리는 사용할 필요가 없습니다 -z 파일을 나열하는 옵션입니다. 우리는 단지 -z 우리가 옵션 적출 에서 파일 .tar.gz 파일. 마찬가지로, 우리는 필요하지 않습니다 -j 에 파일을 나열하는 옵션 tar.bz2 파일.

덜 관통 된 tar 파일의 내용

출력을 스크롤하면 tar 파일의 모든 것이 Ukulele Songs라는 디렉토리 내에 있고 해당 디렉토리 내에 파일 및 기타 디렉토리가 있음을 알 수 있습니다.

덜 관통 된 tar 파일 내용의 두 번째보기

Ukulele Songs 디렉토리에는 Random Songs, Ramones 및 Possibles라는 디렉토리가 포함되어 있습니다.

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

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

tar 파일에서 단일 폴더 추출

단일 파일을 추출하려면 파일의 경로와 이름을 제공하십시오.

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

tar 파일에서 단일 파일 추출

와일드 카드를 사용하여 선택한 파일을 추출 할 수 있습니다. 여기서 * 문자열을 나타냅니다. ? 단일 문자를 나타냅니다. 와일드 카드를 사용하려면 --wildcards 선택권.

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

와일드 카드로 tar에서 노래 추출

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

tar 파일의 디렉토리 구조를 하드 드라이브에서 다시 만들지 않으려면 --strip-components 선택권. 그만큼 --strip-components 옵션에는 숫자 매개 변수가 필요합니다. 숫자는 무시할 디렉토리 레벨 수를 나타냅니다. 무시 된 디렉토리의 파일은 여전히 ​​추출되지만 디렉토리 구조는 하드 드라이브에 복제되지 않습니다.

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

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

--strip-components = 1을 사용하여 tar 파일에서 파일 추출

예제 tar 파일에는 디렉토리 중첩 수준이 두 가지뿐입니다. 우리가 사용한다면 --strip-components=2모든 파일이 대상 디렉토리에 추출되고 다른 디렉토리는 작성되지 않습니다.

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

--strip-components = 2를 사용하여 tar 파일에서 파일 추출

Linux man 페이지를 보면 tar “명령 줄 옵션이 가장 많은 명령”이라는 제목에 적합합니다. 고맙게도, 파일을 추출 할 수 있도록 .tar.gztar.bz2 세밀한 제어가 가능한 파일의 경우,이 옵션 중 일부만 기억하면됩니다.