본문 바로가기
OS 운영체제/LINUX

tar (archive 파일 작업 명령어)

by yororing 2024. 3. 28.

00 서론

0. 용어 정리

  • archive file: 하나 또는 여러개의 파일을 압축한 파일. 파일을 압축하여 저장 공간 절약하며 데이터의 휴대성을 높임

01 tar이란

1. tar의 정의

$ tar [options] [archive-file] [file or dir to be archived]
  • 'Tape Archive'의 약자
  • Linux 명령어
  • archive 파일 관련 작업 기능 제공

2. tar 옵션

옵션 설명
-c archive file 생성 (create)
-x archive file 추출 ( extract)
-f archive file의 이름을 지정 (specify filename)
-v 터미널에 tar operation의 verbose info 출력 (print verbose info)
*verbose: 장황하게 말이 많은 연설자/장황한 문체 → 상세 정보
-t archive file 안에 있는 파일들 목록 출력 (list)
-u 파일 보관(archive) 후 존재하는 archive file에 추가
-r .tar file 안에 있는 파일/디렉토리 업데이트 (update file/dir inside .tar file)
-z gzip 압축으로 tar file 생성 (gzip)
-j bzip2 압축으로 archive file 생성 (bzip2)
-W archive file을 verify

3. tar 사용하기

1) archive file 생성

  • 압축 suffix (-z, -j 등) 사용하여 gzip (-z), bzip2 (-j), xz와 같은 압축 방법으로 지정된 파일/폴더를 담은 archive file 생성 가능
  • <문법>
    $ tar -cvf <생성될 archive file 이름>  <archive할 파일/폴더1> <archive할 파일/폴더2> ...
    • <archive할 파일/폴더>는 띄어쓰기를 사용하여 무한으로 넣기 가능
  • <예시>
    $ tar -czvf sales.tar.gz  sales1.pdf sales2.pdf sales3.pdf
    $ tar -cjvf sales.tar.bz2 sales1.pdf sales2.pdf sales3.pdf
    $ tar -cvf home.tar /home/james​
    •  첫번째 명령줄 설명:
      • 3개의 파일 (sales1.pdf, sales2.pdf, sales3.pdf)을 압축하여 sales.tar.gz라는 archive file 생성
    • 두번째 명령줄 설명:
      • 첫번째와 같이 3개의 파일을 압축하지만 -z 대신 -j 옵션으로 sales.tar.bz2라는 archive file 생성
    • 세번째 명령줄 설명:
      • /home/james 폴더를 압축하여 home.tar이라는 tar archive file 생성

2) archive file 안 파일/폴더 출력

  • -t 옵션 사용하여 archive file을 추출하지(풀지) 않고도 안의 내용들 확인 가능
  • <문법>
    $ tar -tf <확인할 archive file>
  • <예시>
    $ tar -tf sales.tar.gz
    sales1.pdf
    sales2.pdf
    sales3.pdf

3) archive file 안 모든 파일/폴더 추출 1 - 현재 경로

  • -x 옵션 사용하여 현재 작업하고 있는 폴더/디렉토리에 archive file 추출 가능
  • <문법>
    $ tar -xvf <추출할 archive file>
  • <예시>
    $ tar -xvf documents.tar.gz
    file1.txt
    file2.txt
    file3.txt
    $ ls -l
    total 4
    -rw-rw-r--	1	james	james 136	Mar	29	08:50	documents.tar.gz
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file1.txt
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file2.txt
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file3.txt

4) archive file 안 모든 파일/폴더 추출 2 - 지정된 경로

  • -C 옵션 사용하여 대상 경로에 archive file 추출 가능
  • <문법>
    $ tar -xvf <추출할 archive file> -C <추출될 경로>
  • <예시>
    $ tar -xvf documents.tar.gz -C /tmp/files
    file1.txt
    file2.txt
    file3.txt
    $ ls -l /tmp/files
    total 0
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file1.txt
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file2.txt
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file3.txt

5) archive file 안 특정한 파일 추출 3

  • 명령줄에 추출할 archive file 뒤에 추출하고 싶은 파일/폴더를 입력하여 특정한 파일/폴더 추출 가능
  • 사전에 archive file 안에 어떤 파일/폴더들이 있는지 알고 있어야 함 (-t 옵션 사용하여 내용 확인 가능)
  • <문법>
    $ tar -xvf <추출할 archive file> <특정한 파일/폴더1> <특정한 파일/폴더2> ...
    • <특정한 파일/폴더>은 <추출할 archive file> 안에 있는 파일/폴더로, 띄어쓰기를 사용하여 무한으로 쓰기 가능
  • <예시>
    $ tar -xvf documents.tar.gz file1.txt file2.txt
    file1.txt
    file2.txt
    $ ls -l
    total 4
    -rw-rw-r--	1	james	james 	136	Mar	29	09:30	documents.tar.gz
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file1.txt
    -rw-rw-r--	1	james	james 	0	Mar	29	08:48	file2.txt

6) .tar achive file에 파일 추가

  • -r 옵션 사용하여 .tar archive file에 파일/폴더 추가 가능
    • 주의: 다른 종류의 archive file (예: tar.Z)은 안 되는 것 같음
  • <문법>
    $ tar -rvf <archive file> <파일/폴더1> <파일/폴더2> ...
    • <파일/폴더>는 띄어쓰기를 사용하여 무한으로 추가 가능
  • <예시>
    $ tar -tf archives.tar
    file1.txt
    file2.txt
    $ tar -rvf archives.tar file3.txt
    file3.txt
    $ tar -tf archives.tar
    file1.txt
    file2.txt
    file3.txt

7) .tar archive file에서 파일 제거

  • -delete 옵션 사용하여 .tar archive file에 들어있는 파일/폴더 삭제 가능
  • <문법>
    $ tar --delete -f <.tar archive file> <파일/폴더1> <파일/폴더2> ...
  • <예시>
    $ tar -tf archives.tar
    file1.txt
    file2.txt
    file3.txt
    $ tar --delete -f archives.tar file3.txt
    $ tar -tf archives.tar
    file1.txt
    file2.txt

참조

  1. https://linuxhint.com/linux-tar-command/ 
  2.  
  3.  

 

'OS 운영체제 > LINUX' 카테고리의 다른 글

find (파일 검색 명령어)  (0) 2024.04.05
swap (가상 저장 공간)  (0) 2024.04.04
scp (서버간 파일 복사 명령어)  (0) 2024.03.20
Linux 디렉토리 구조  (0) 2024.03.20
Environment Variables  (0) 2024.03.18