티스토리 뷰

Technology/Linux

Tar 옵션에 대한 모든 것

캡틴테크 2023. 2. 17. 11:16
반응형

파일이나 폴더를 압축할 때 리눅스에서는 Tar를 유틸을 많이 사용하는데요. Tar가 갖고 있는 옵션들이 상당히 많습니다. 많이 쓰는 옵션은 아니어도 알아두면 좋은 옵션들이 있으니 오늘은 한번 정리해 보고 가도록 하겠습니다.

Tar 옵션

우선 가장 많이 쓰는 옵션 먼저 한번 집고 가도록 하겠습니다.

  • [압축할 때] tar -cvzf 파일명.tar.gz <디렉토리> 또는 파일
  • [압축해제] tar -xzvf 파일명.tar.gz

x : 묶음을 해제

c : 파일을 묶음

v : 묶음/해제 과정을 화면에 표시

z : gunzip을 사용

f : 파일 이름을 지정

p : 권한을 원본과 동일하게 유지 

기능 옵션

-A, --catenate, --concatenate : 저장 파일에 tar 파일을 추가한다. 
-c, --create : 새 저장 파일을 만든다. 
-d, --diff, --compare : 저장 파일 혹은 파일 시스템 간의 다른 점을 찾는다. 
--delete : 저장 파일에서 지운다.
-r, --append : 저장 파일의 끝에 파일을 덧붙인다. 
-t, --list : 저장 파일의 내용 목록을 보여준다. 
-u, --update : 저장 파일에 저장된 사본보다 새로운 파일만을 덧붙인다. 
-x, --extract, --get : 저장된 것에서 풀어낸다.

부가적인 옵션 

--atime-preserve : 덤프된 파일의 접근 시간을 바꾸지 않는다. 
-b, --block-size N : 블럭 크기를 N x 512 바이트로 정한다. (기본값 N = 20) 
-B, --read-full-blocks : 읽은 만큼 블럭을 재지정한다. (4.2BSD 파이프를 읽기 위함) 
-C, --directory DIR : DIR 디렉토리로 바꾸고 작업을 한다. 
--checkpoint : 저장 파일을 읽는 동안 디렉토리 이름을 출력한다. 
-f, --file [HOSTNAME:]F : 저장 파일 혹은 장치 파일 F에 저장한다. (기본 "-", 표준입/출력을 나타낸다.) 
--force-local : colon 문자가 있더라도 저장 파일을 지역 파일로 처리한다. 
-F, --info-script F --new-volume-script F : run script at end of each tape (implies -M) 테이프의 끝에 도달하면 스크립트를 실행한다. (-M 이 포함된다.) 
-G, --incremental : 이전 GNU 형식으로 incremental 백업을 만들거나 목록을 보거나 풀어낸다. 
-g, --listed-incremental F : 새로운 GNU 형식으로 incremental 백업을 만들거나 목록을 보거나 풀어낸다. 
-h, --dereference : 심볼릭 링크를 묶지 않는다. 그것이 가리키는 파일을 묶는다. 
-i, --ignore-zeros : 크기가 0인 것은 무시한다. (보통 EOF를 의미한다.) 
-j, --bzip2 : bzip2 필터를 사용하여 .bz2 파일을 푼다. 
--ignore-failed-read : 읽을 수 없는 파일이 있더라도 종료 코드 0을 출력하지 않는다. 
-k, --keep-old-files : 기존에 있는 파일을 유지한다. 파일이 있으면 덮어쓰지 않는다. 
-K, --starting-file F : 저장 파일에 있는 파일 F에서부터 시작한다. 
-l, --one-file-system : 저장 파일을 만들 때 로컬 파일 시스템 안의 놓는다. 
-L, --tape-length N : N * 1024 바이트를 쓴 다음 테이프를 바꾼다. 
-m, --modification-time : 파일의 변경 시간 정보를 유지하지 않는다. 
-M, --multi-volume : 여러 개로 나눠진 저장 파일로 만들거나 목록을 보거나 풀어낸다. 
-N, --after-date DATE, --newer DATE : 주어진 DATE 보다 새로운 파일만 저장한다. 
-o, --old-archive, --portability : ANSI 형식 대신 V7 형식으로 저장한다. 
-O, --to-stdout : 표준 출력으로 파일들을 풀어낸다. 
-p, --same-permissions, --preserve-permissions : 모든 퍼미션 정보를 유지한다. 
-P, --absolute-paths : 파일 이름의 맨 앞 `/' 문자를 버리지 않는다. 
--preserve : -p 옵션과 -s 옵션을 함께 사용한 것과 같다. 
-R, --record-number : 저장 파일의 레코드 번호를 각각의 메시지로 보여준다. 
--remove-files : 파일을 저장 파일에 덧붙인 다음 파일을 지운다. 
-s, --same-order, --preserve-order : 저장 파일 목록과 똑같은 순서로 풀어낸다. 
--same-owner : 같은 사용자 소유권으로 파일들을 풀어낸다. 
--numeric-owner : user/group 이름으로 항상 숫자를 사용한다. 
-S, --sparse : 듬성한 파일을 효율적으로 다룬다. 
-T, --files-from F : 파일 F에서 목록을 읽어 추출하거나 만든다. 
--null : -T reads null-terminated names, disable -C -C를 비활성화하고, -T로 읽을 때 null로 끝나는 이름을 읽는다. 
--totals : --create로 만들어진 바이트 총합을 출력한다. 
-v, --verbose : 처리중인 파일을 자세하게 보여준다. 
-V, --label NAME : 저장 파일의 볼륨 이름을 NAME으로 한다. 
--version : tar 프로그램의 버전 정보를 출력한다. 
-w, --interactive, --confirmation : 각각을 처리할 때 마다 물어본다. 
-W, --verify : attempt to verify the archive after writing it 저장 파일을 쓴 후에 저장 파일을 점검한다. 
--exclude=FILE : FILE을 제외한다. 
-X, --exclude-from FILE : FILE 목록에 있는 것을 제외한다. 
-Z, --compress, --uncompress 
compress로 압축하거나 푼다. 
-z, --gzip, --ungzip : gzip으로 압축하거나 푼다. 
--use-compress-program PROG : PROG로 저장 파일을 다시 처리한다. (PROG은 반드시 -d를 처리해야 한다.) 
--block-compress : 테이프에 저장할 때 압축 프로그램의 출력을 막는다. 
--rsh-command=CMD : `rsh' 대신 원격 COMMAND를 사용한다. 이 옵션은 표준 `rsh' 대신 원격 장치에 접근할 수 있는 다른 것(예를 들어, Kerberized `rsh')을 사용하는 사람들을 위해 필요하다. 
-[0-7][lmh] : 드라이브와 밀도를 지정한다.

모든 옵션들을 다 사용할 일은 없겠지만, 가끔 보다보면 사용할 때 편한 옵션들이 있습니다. 특정 파일 빼고 압축한다던지 특정 date 이후의 파일만 압축한더던지 등등, 실무에서 데이터 파일들을 이동하고 복사하면서 압축하고 풀고 이런일들이 빈번했었는데요 기억해 뒀다가 나중에 이용하시면 좋겠습니다.

 

반응형
댓글