logo

예제가 포함된 Linux/Unix의 Tar 명령

tar 명령은 다음과 같이 짧습니다. 테이프 아카이브 리눅스에서. 이 명령은 아카이브를 생성하고 아카이브 파일을 추출하는 데 사용됩니다. ~ 안에 리눅스 , 아카이빙 기능을 용이하게 하는 필수 명령 중 하나입니다. 이 명령을 사용하면 압축되지 않은 아카이브 파일과 압축된 아카이브 파일을 생성하고 수정하고 유지할 수도 있습니다.

Tar는 컴퓨팅에서 여러 파일을 단일 아카이브 파일로 수집하는 컴퓨터 소프트웨어 유틸리티입니다. 종종 백업 및 배포 목적으로 tarball로 알려져 있습니다. 이 제목은 실제로 파일 시스템을 전혀 사용하지 않는 순차 I/O 장치에 대한 데이터를 지정하기 위해 개발되었기 때문에 '테이프 아카이브'에서 따온 것입니다. tar로 만든 아카이브 데이터 그룹에는 디렉토리 구성, 파일 액세스 권한, 소유권, 타임스탬프 및 이름과 같은 많은 파일 시스템 매개변수가 포함됩니다. pax를 선호하여 POSIX는 tar를 포기했지만 tar는 아직 널리 사용되고 있습니다.

첫째, 1979년 1월 Unix 버전 7에서 tp 프로그램을 대체하여 발표되었습니다. 데이터를 저장하기 위해 파일 구조는 POSIX.1-1988 및 이후 POSIX.1-2001에서 표준화되었으며 거의 ​​모든 최신 파일 보관 시스템에서 지원하는 패턴이 되었습니다. Unix 계열 운영 체제에는 일반적으로 bzip2 및 gzip과 같이 tar 파일을 지원하는 도구와 해당 파일을 압축하는 데 사용되는 유틸리티가 포함되어 있습니다.
Microsoft 2018년 4월 10일 업데이트 이후 BSD-tar는 Microsoft Windows에 포함되었으며 Windows에서 이러한 패턴을 읽고 쓸 수 있는 두 개 이상의 타사 도구가 있습니다.

tar의 파일 형식

현재 및 과거 형식을 포함하여 다양한 tar 파일 형식을 사용할 수 있습니다. POSIX에서는 pax와 ustar라는 두 가지 tar 형식이 작성됩니다.

머리글

파일 헤더 레코드에는 파일의 메타데이터가 포함됩니다. 헤더 레코드에서 정보는 고유한 바이트 순서를 사용하여 고유한 아키텍처 전반에 걸쳐 유연성을 보장하기 위해 ASCII 표준으로 인코딩됩니다. 따라서 모든 파일이 아카이브의 ASCII 텍스트 파일이고 ASCII 이름을 포함하는 경우 아카이브는 ASCII 텍스트 파일(여러 NUL 문자 포함)입니다.

다음 표에는 실제 Unix tar 형식으로 정의된 여러 필드가 언급되어 있습니다. 링크 파일/표시기 유형 테이블에는 몇 가지 최신 확장이 포함되어 있습니다. 필드가 사용되지 않은 경우 다양한 NUL 바이트로 채워집니다.

POSIX.1-1988 이전 tar 헤더:

필드 필드 크기 필드 오프셋
파일 이름 100 0
파일 모드 8 100
소유자의 숫자 사용자 ID 8 108
그룹의 숫자 사용자 ID 8 116
바이트 파일 크기 12 124
숫자 Unix 시간 형식의 마지막 수정 시간 12 136
헤더 레코드의 체크섬 8 148
링크 표시 1 156
링크된 파일 이름 100 157

Ustart 형식

Ustar 형식에서는 거의 모든 최신 tar 프로그램이 1988년 POSIX IEEE P1003.1 표준에 의해 발표된 아카이브를 쓰고 읽습니다. 여기에는 추가 헤더 필드가 도입되었습니다. 이전 tar 프로그램은 추가 정보를 피했지만 새 프로그램은 'Ustar' 문자열 존재를 확인하여 최신 형식이 사용 중인지 결정합니다.

필드 필드 크기 필드 오프셋
이전 형식과 같은 많은 필드 156 0
플래그 유형 1 156
이전 형식과 유사한 필드 100 157
'ustar' Ustar 표시자, 그 다음에는 NUL 6 257
'00' 우스타 버전 2 263
소유자의 사용자 이름 32 265
소유자의 그룹 이름 32 297
장치의 주요 번호 8 329
장치의 부 번호 8 337
파일 이름 접두어 155 3. 4. 5

POSIX.1-2001/인원

Sun은 1997년에 tar 형식에 확장을 추가하는 기술을 제안했습니다. 나중에 POSIX.1-2001 표준에 대해 승인되었습니다. 형식을 pax 형식 또는 확장 tar 형식이라고 합니다. mtime, atime, linkpath, gname, uname, size, gid, uid 및 그룹/사용자 이름과 경로 이름에 대한 문자 집합 정의를 포함한 일부 태그는 POSIX 표준에 의해 지정됩니다.

tar의 주요 구현

주요 구현은 원본 순서에 언급되어 있습니다.

    솔라리스 타르 실제 Unix V7을 기반으로 하는 Solaris OS에서는 기본값으로 제공됩니다. GNU 타르 거의 모든 Linux 배포판의 기본값입니다. 이는 1987년에 시작된 공개 도메인 구현 pdtar를 기반으로 합니다. 최신 버전은 GNU, pax, v7 및 ustar와 같은 다양한 형식을 사용할 수 있습니다. FreeBSD 타르 Mac OS X와 ​​같은 거의 모든 Berkeley Software Distribution 기반 OS의 기본 tar가 되었습니다. 쉴리 타르 몇 가지 확장 기능이 유명했기 때문에 역사적으로 중요합니다. 1997년 4월에 처음 출시되었습니다. 파이썬 타르파일 gnu, pax 및 ustar와 같은 두 개 이상의 tar 형식을 지원합니다. SunOS tar 확장 및 V7 형식을 읽을 수는 있지만 만들 수는 없습니다. pax는 아카이브 생성을 위한 기본 형식입니다. 2003년부터 사용자에게 제공되었습니다.

또한 대부분의 cpio 및 pax 구현은 두 개 이상의 tar 파일 유형을 만들고 읽을 수 있습니다.

tar 명령 구문:

 tar [options] [archive-file] [directory or file to be archived] 

tar 명령의 옵션

tar 명령의 다양한 옵션은 다음과 같습니다.

    -씨:이 옵션은 아카이브를 생성하는 데 사용됩니다.-에프:이 옵션은 제공된 파일 이름과 함께 아카이브를 생성하는 데 사용됩니다.-엑스:이 옵션은 아카이브를 추출하는 데 사용됩니다.-안에:기존 아카이브 파일에 아카이브를 추가하는 데 사용할 수 있습니다.-티:보관된 파일 내의 파일을 표시하거나 나열하는 데 사용됩니다.-ㅏ:이 옵션은 아카이브 파일을 연결하는 데 사용됩니다.-안에:자세한 정보를 표시하는 데 사용할 수 있습니다.-제이:tbzip을 사용하여 아카이브 tar 파일을 필터링하는 데 사용됩니다.-와 함께:zip 파일이며 gzip의 도움으로 tar 파일을 만드는 tar 명령을 알려줍니다.-아르 자형:이 옵션은 기존 .tar 파일의 디렉터리나 파일을 업데이트하고 추가하는 데 사용됩니다.-안에:이 옵션은 아카이브 파일을 확인하는 데 사용됩니다.

아카이브 파일 소개

아카이브 파일은 메타데이터가 포함된 여러 파일을 포함하는 파일로 정의할 수 있습니다. 이러한 파일은 보다 쉬운 저장 및 이동성을 위해 하나 이상의 데이터 파일을 개별 파일로 수집하는 데 사용됩니다. 또한 저장 공간을 덜 사용하기 위해 파일을 압축하는 데에도 사용할 수 있습니다.

tar 명령의 예

tar 명령에서 널리 사용되는 중요한 예는 다음과 같습니다.

1. -cvf 옵션을 사용하여 압축되지 않은 tar 아카이브 만들기

이 옵션을 사용하면 tar 파일이 다음과 같이 알려집니다. 파일.tar . 내부의 모든 .txt 파일의 아카이브입니다. 마이디르 예배 규칙서.

명령은 다음과 같습니다:

 $ tar cvf file.tar *.txt 

Linux의 Tar 명령

2. -xvf 옵션을 사용하여 아카이브를 통해 파일 추출

이 옵션은 아카이브를 통해 파일을 추출할 수 있습니다.

명령은 다음과 같습니다:

하위 문자열 문자열 자바
 $ tar xvf file.tar 

Linux의 Tar 명령

3. -z 옵션을 사용하여 tar 아카이브를 통한 gzip 압축

이 옵션을 사용하면 tar 파일이 다음과 같이 알려집니다. 파일.tar.gz. 모든 .txt 파일의 아카이브입니다.

명령은 다음과 같습니다:

 $ tar cvzf file.tar.gz *.txt 

Linux의 Tar 명령

4. -xvzf 옵션을 사용하여 gzip tar 아카이브 추출

이 옵션은 file.tar.gz tar 아카이브 파일을 통해 파일을 추출할 수 있습니다.

명령은 다음과 같습니다:

 $ tar xvzf file.tar.gz 

Linux의 Tar 명령

5. -j 옵션을 사용하여 압축된 tar 파일 만들기

이 옵션은 아카이브 파일을 생성하고 압축하는 데 도움이 됩니다. 압축 해제와 압축 모두 gzip에 비해 시간이 더 걸립니다.

명령은 다음과 같습니다:

 $ tar cvfj file.tar.tbz hello1.txt 

Linux의 Tar 명령

6. Linux에서 지정된 단일 디렉터리 또는 파일의 압축을 풉니다.

이 옵션은 현재 디렉토리 또는 -C 옵션을 사용하여 지정된 디렉토리 내부의 모든 파일을 압축 해제하는 데 사용됩니다.

명령은 다음과 같습니다:

지도 자바 반복자
 $ tar -xvf file.tar -C file's path in the directory 

Linux의 Tar 명령

또는,

 $ tar -xvf file.tar 

Linux의 Tar 명령

7. Linux에서 여러 .tar.tbz, .tar.gz, .tar 파일을 압축 해제합니다.

이 옵션은 다음을 수행하는 데 도움이 됩니다. 확산 또는 tar.bz2, tar.gz 및 tar 아카이브 파일에서 두 개 이상의 파일을 추출합니다.

이 옵션의 예는 다음과 같습니다.

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Linux의 Tar 명령

또는,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Linux의 Tar 명령

또는,

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Linux의 Tar 명령

8. 기존 tar.tbz, tar.gz, tar 파일의 크기를 확인하세요.

이 명령은 위에서 언급한 아카이브 파일의 크기를 킬로바이트(KB) 단위로 표시하는 데 도움이 됩니다.

명령은 다음과 같습니다:

 $ tar -czf - file2.tar.tbz | wc -c 

또는,

 $ tar -czf - file1.tar.gz | wc -c 

또는,

 $ tar -czf - file.tar | wc -c 

Linux의 Tar 명령

9. 기존 tar 파일 업데이트

Linux에서 기존 tar 파일을 업데이트하는 명령은 다음과 같습니다.

 $ tar rvf file.tar *.txt 

10. tf 옵션을 사용하여 콘텐츠 목록 및 tar 파일 설명

이 옵션은 전체 아카이브 파일 목록을 나열하는 데 도움이 됩니다. 또한 tar 파일 내의 특정 콘텐츠를 나열할 수도 있습니다.

명령은 다음과 같습니다:

 $ tar tf file.tar 

Linux의 Tar 명령

11. -tvf 옵션을 사용하여 아카이브 보기

Linux에서는 -tvf 옵션을 사용하여 아카이브를 볼 수 있습니다.

명령은 다음과 같습니다:

C의 부울
 $ tar -tvf file.tar 

Linux의 Tar 명령

12. 파일 이름을 인수로 전달하여 tar 파일을 찾습니다.

이 옵션을 사용하면 보관된 파일과 해당 정보를 볼 수 있습니다.

명령은 다음과 같습니다:

 $ tar tvf file.tar filename 

Linux의 Tar 명령

13. 파이프를 사용하여 'grep 명령'을 던져 우리가 찾고 있는 것을 검색합니다.

이 옵션은 언급된 이미지나 텍스트만 나열하는 데 도움이 됩니다. 꽉 붙잡음 보관된 파일을 통해.

명령은 다음과 같습니다:

 $ tar tvf file.tar | grep 'filename.file' 

또는,

 $ tar tvf file.tar | grep 'text to search' 

Linux의 Tar 명령

와일드카드 소개

또는 와일드카드를 Linux에서는 와일드카드 문자 또는 와일드 문자라고 합니다. 여러 문자를 표현하거나 대체하는데 사용되는 기호입니다.

일반적으로 와일드카드는 개별 문자를 나타내는 물음표(?) 또는 여러 문자를 나타내는 별표(*)입니다.

예-

14. .webp 형식 이미지 찾기

file.tar 아카이브에서 .webp 확장자를 가진 파일만 추출하는 데 도움이 됩니다. -wildcards 옵션은 추출할 파일 이름의 와일드카드를 해석하도록 tar에 알립니다.

파일 이름(*.webp)은 쉘에서 잘못 확장되는 것을 방지하기 위해 와일드카드(*)를 보호하기 위해 작은따옴표로 묶입니다.

명령은 다음과 같습니다:

 $ tar tvf file.tar --wildcards '*.webp' 

Linux의 Tar 명령

참고: 위 명령에서는 해당 특정 디렉터리에서 사용 가능한 각 파일을 가져오기 위해 파일 이름 위치에 '*' 기호가 적용됩니다.

15. tar 아카이브에서 파일 삭제

파일과 tar 아카이브를 제거하려면 --delete 옵션을 사용할 수 있습니다.

명령은 다음과 같습니다:

 $ tar --delete -f archive.tar file_name 

예:

 tar -delete -f file.tar hello1.txt 

산출:

Linux의 Tar 명령

hello1.txt 파일이 file.tar 아카이브에서 제거되었습니다:

Linux의 Tar 명령