게으름을 위한 부지런한 게으름뱅리' 블로그

[Linux] tar 압축하기, 압축풀기(명령어 총정리) 본문

IT/Linux

[Linux] tar 압축하기, 압축풀기(명령어 총정리)

LazismLee 2024. 8. 18. 23:04
반응형

♪  tar 압축하기

tar 명령어는 파일과 디렉토리를 압축하고 아카이브하는 데 많이 사용됩니다. 여기서는 다양한 방법으로 디렉토리를 압축하는 예시를 소개하겠습니다.

 

1. 기본 tar 아카이브 만들기
디렉토리를 .tar 형식으로 압축합니다.

tar -cvf archive.tar /path/to/directory

 

2. gzip으로 압축하기

tar -czvf archive.tar.gz /path/to/directory 
또는
tar -czvf archive.tgz /path/to/directory

 

3. bzip2로 압축하기

tar -cjvf archive.tar.bz2 /path/to/directory

 

4. xz로 압축하기

tar -cJvf archive.tar.xz /path/to/directory

 

5.압축하지 않고 아카이브만 만들기

tar -cf archive.tar /path/to/directory

 

6.압축을 풀면서 아카이브 생성하기

tar -xzf archive.tar.gz

 

7.압축된 아카이브에서 특정 파일만 추출하기

tar -xzf archive.tar.gz path/to/file

 

8. 압축 파일을 특정 디렉토리로 추출하기

.tar.gz 아카이브를 /extract/path 디렉토리로 추출합니다.

tar -xzf archive.tar.gz -C /extract/path

 

9. 압축 파일의 내용 보기

.tar.gz 아카이브의 내용을 압축을 풀지 않고 확인합니다.

tar -tzf archive.tar.gz

 

10. 파일 목록을 제외하고 압축하기

.tar.gz 아카이브를 만들 때 특정 파일이나 디렉토리를 제외합니다.

tar -czvf archive.tar.gz --exclude='*.log' /path/to/directory

 

11.다중 파일을 하나의 아카이브로 압축하기

여러 파일을 하나의 .tar.gz 아카이브로 압축합니다.

tar -czvf archive.tar.gz file1 file2 /path/to/directory

 

12. 디렉토리의 하위 디렉토리 및 파일을 포함하여 압축하기

특정 깊이까지 디렉토리와 파일을 포함하여 압축합니다.

tar -czvf archive.tar.gz --directory=/path/to --exclude='*.tmp' directory

 

13. 압축된 파일에서 디렉토리와 파일 이름 변경하기

아카이브를 생성할 때 특정 파일의 이름을 변경합니다.

tar -czvf archive.tar.gz --transform='s/oldname/newname/' /path/to/directory

 


위에서 사용한 옵션들에 대하여 설명합니다.

 

  • -c (create)
    새로운 아카이브를 생성합니다. 예를 들어 tar -cf archive.tar /path/to/directory는 /path/to/directory를 archive.tar라는 아카이브 파일로 생성합니다.
  • -x (extract)
    아카이브에서 파일을 추출합니다. 예를 들어 tar -xzf archive.tar.gz는 archive.tar.gz 파일에서 데이터를 추출합니다.
  • -v (verbose)
    처리 중인 파일이나 디렉토리의 목록을 출력합니다. tar -cvf archive.tar /path/to/directory와 같이 사용하면 파일이 아카이브에 추가될 때마다 출력됩니다.
  • -f (file)
    아카이브 파일의 이름을 지정합니다. -f 옵션 뒤에 아카이브 파일의 이름을 명시해야 합니다. 예: tar -cf archive.tar /path/to/directory.
  • -z (gzip)
    gzip으로 압축합니다. .tar.gz 또는 .tgz 파일 형식을 생성합니다. 예를 들어 tar -czvf archive.tar.gz /path/to/directory는 gzip으로 압축된 아카이브를 생성합니다.
  • -j (bzip2)
    bzip2로 압축합니다. .tar.bz2 형식을 생성합니다. 예를 들어 tar -cjvf archive.tar.bz2 /path/to/directory는 bzip2로 압축된 아카이브를 생성합니다.
  • -J (xz)
    xz로 압축합니다. .tar.xz 형식을 생성합니다. 예를 들어 tar -cJvf archive.tar.xz /path/to/directory는 xz로 압축된 아카이브를 생성합니다.
  • -C (directory)
    아카이브를 추출할 디렉토리를 지정합니다. 예를 들어 tar -xzf archive.tar.gz -C /extract/path는 /extract/path 디렉토리에 파일을 추출합니다.
  • -t (list)
    아카이브의 내용을 나열합니다. 압축을 풀지 않고 파일 목록을 확인할 때 사용합니다. 예를 들어 tar -tzf archive.tar.gz는 archive.tar.gz 파일의 목록을 출력합니다.
  • --exclude
    특정 파일 또는 디렉토리를 아카이브에서 제외합니다. 예를 들어 tar -czvf archive.tar.gz --exclude='*.log' /path/to/directory는 .log 파일을 제외하고 압축합니다.
  • --transform
    파일 또는 디렉토리 이름을 아카이브 내에서 변환합니다. 정규 표현식을 사용하여 이름을 변경할 수 있습니다. 예를 들어 tar -czvf archive.tar.gz --transform='s/oldname/newname/' /path/to/directory는 아카이브 내에서 oldname을 newname으로 바꿉니다.

 

♪  tar 압축풀기

1.기본 tar 아카이브 (.tar) 압축 해제
.tar 형식의 아카이브를 현재 디렉토리에 추출합니다.

tar -xvf archive.tar

 

2.gzip으로 압축된 tar 아카이브 (.tar.gz 또는 .tgz) 해제
.tar.gz 또는 .tgz 형식의 아카이브를 현재 디렉토리에 추출합니다.

tar -xzvf archive.tar.gz
또는
tar -xzvf archive.tgz

 

3.bzip2로 압축된 tar 아카이브 (.tar.bz2) 해제
.tar.bz2 형식의 아카이브를 현재 디렉토리에 추출합니다.

tar -xjvf archive.tar.bz2

 

4.xz로 압축된 tar 아카이브 (.tar.xz) 해제
.tar.xz 형식의 아카이브를 현재 디렉토리에 추출합니다.

tar -xJvf archive.tar.xz

 

5.특정 디렉토리로 압축 해제
.tar.gz 아카이브를 /extract/path 디렉토리로 추출합니다.

tar -xzvf archive.tar.gz -C /extract/path

 

6.압축 해제할 때 특정 파일만 선택적으로 추출
.tar.gz 아카이브에서 특정 파일만 추출합니다.

tar -xzvf archive.tar.gz path/to/file

 

7.압축 해제 후 파일 목록 보기
.tar.gz 아카이브를 추출하면서 처리 중인 파일의 목록을 출력합니다.

tar -xzvf archive.tar.gz

 

8.압축 해제 시 다른 아카이브 포맷을 이용하여 출력
.tar.bz2 아카이브를 표준 출력으로 추출하고 그 결과를 다른 파일로 저장합니다.

tar -xjvf archive.tar.bz2 -O > extracted_files.txt

 

9.압축 해제 시 파일 또는 디렉토리 이름 변경
.tar.gz 아카이브를 추출하면서 파일 이름을 변경합니다.

tar -xzvf archive.tar.gz --transform='s/oldname/newname/'

 

10.압축 해제 시 아카이브에서 일부 파일 제외
.tar.gz 아카이브를 추출하면서 특정 파일을 제외합니다.

tar -xzvf archive.tar.gz --exclude='*.tmp'

 

11.압축 해제 시 아카이브 내 파일의 수정 권한 변경
.tar.gz 아카이브를 추출하면서 파일의 권한을 수정합니다.

tar -xzvf archive.tar.gz --no-same-permissions

 

12. 압축 해제 시 아카이브의 소유자와 그룹 변경
.tar.gz 아카이브를 추출하면서 소유자와 그룹을 변경합니다.

tar -xzvf archive.tar.gz --no-same-owner

 


위에서 사용한 옵션들에 대하여 설명합니다.

 

  • -x (extract)
    아카이브에서 파일을 추출합니다. 압축을 푸는 기본 옵션입니다. 예: tar -xvf archive.tar는 archive.tar 파일에서 데이터를 추출합니다.
  • -v (verbose)
    추출하는 파일이나 디렉토리의 목록을 출력합니다. -x와 함께 사용하면 처리 중인 파일의 목록을 볼 수 있습니다. 예: tar -xzvf archive.tar.gz는 압축을 푸는 동안 처리되는 파일을 출력합니다.
  • -f (file)
    아카이브 파일의 이름을 지정합니다. 이 옵션 뒤에 아카이브 파일의 이름을 명시해야 합니다. 예: tar -xvf archive.tar에서 archive.tar가 아카이브 파일 이름입니다.
  • -z (gzip)
    gzip으로 압축된 아카이브를 처리합니다. .tar.gz 또는 .tgz 파일 형식으로 압축된 아카이브를 추출합니다. 예: tar -xzvf archive.tar.gz는 gzip으로 압축된 아카이브를 추출합니다.
  • -j (bzip2)
    bzip2로 압축된 아카이브를 처리합니다. .tar.bz2 파일 형식으로 압축된 아카이브를 추출합니다. 예: tar -xjvf archive.tar.bz2는 bzip2로 압축된 아카이브를 추출합니다.
  • -J (xz)
    xz로 압축된 아카이브를 처리합니다. .tar.xz 파일 형식으로 압축된 아카이브를 추출합니다. 예: tar -xJvf archive.tar.xz는 xz로 압축된 아카이브를 추출합니다.
  • -C (directory)
    아카이브를 추출할 디렉토리를 지정합니다. 이 옵션 뒤에 추출할 디렉토리의 경로를 명시해야 합니다. 예: tar -xzvf archive.tar.gz -C /extract/path는 /extract/path 디렉토리로 파일을 추출합니다.
  • --transform
    아카이브에서 파일 또는 디렉토리의 이름을 변환합니다. 정규 표현식을 사용하여 이름을 변경할 수 있습니다. 예: tar -xzvf archive.tar.gz --transform='s/oldname/newname/'는 아카이브 내에서 oldname을 newname으로 바꿉니다.
  • --exclude
    아카이브에서 특정 파일 또는 디렉토리를 제외합니다. 패턴을 사용하여 제외할 항목을 지정할 수 있습니다. 예: tar -xzvf archive.tar.gz --exclude='*.tmp'는 .tmp 확장자를 가진 파일을 제외하고 압축을 해제합니다.
  • -O (stdout)
    아카이브의 내용을 표준 출력으로 보내며, 이를 통해 출력된 데이터를 다른 파일로 저장할 수 있습니다. 예: tar -xjvf archive.tar.bz2 -O > extracted_files.txt는 추출된 파일의 내용을 extracted_files.txt에 저장합니다.
  • --no-same-permissions
    추출된 파일의 권한을 원본 아카이브의 권한과 동일하게 하지 않습니다. 사용자가 설정한 기본 권한으로 추출됩니다. 예: tar -xzvf archive.tar.gz --no-same-permissions는 권한을 기본값으로 설정하여 추출합니다.
  • --no-same-owner
    추출된 파일의 소유자와 그룹을 원본 아카이브의 소유자와 그룹으로 설정하지 않습니다. 기본 사용자 및 그룹 권한으로 추출됩니다. 예: tar -xzvf archive.tar.gz --no-same-owner는 파일의 소유자 및 그룹을 변경하지 않고 추출합니다.

 

tar man page로 이동하기

 

반응형
Comments