tar는 복수의 파일들을 하나의 Tape 또는 파일 Archive로 묶거나 풀기 위한 프로그램이며, 파일들을 묶어서 압축하거나 압축을 해제하는 기능을 한다. 이 포스트에서는 tar 명령어에 대한 설명과 실제 사용법을 알아본다.
Tape ARchive
tar는 Tape Archive의 줄임말이다.
tar는 풀네임에서 유추할수 있듯이 원래 Tape 저장 매체에 대한 작업을 수행하기 위한 명령어인데
요즘은 특별한 경우 아니면 Tape에 대한 작업에 사용되는 경우는 많지 않을 것 같고 보통 파일 압축 및 압축 해제에 사용한다.
보다 분명한 이해를 위해 Tape에 대해 알고 넘어가는 것을 추천한다. 자기 테이프에 대해 설명한 포스트의 내용을 보자.
사용법
아래와 같은 형태로 명령어를 사용할 수 있다.
1
tar <option> <FILE> ...
명령어 옵션
Main Operation
tar 명령어 인자에는 반드시 아래의 동작 인자 중 하나가 포함되어야 한다.
Main Operation은 optional 인자가 아니며 명령어를 사용하기 위한 필수 인자이다.
아래의 주요 operation 외에 여러가지 operation이 있지만 생략한다.
-c
새 Archive를 생성한다.-x
옵션의 반대 기능 수행.
새로 생성한 Archive 파일명에는.tar
확장자를 추가로 붙여준다.-x
Archive로부터 파일을 추출한다.-c
옵션의 반대 기능 수행.-t
Archive의 목록을 본다.
옵션
아래는 Main Operation과 함께 쓰이는 주요 optional 인자들이다.
-v
verbose를 의미한다.-f <archive path>
<archive path>
위치의 파일 또는 장치에 대해 Main Operation을 수행한다.
이 옵션을 생략하면 환경 변수TAPE
의 값을 자동으로 사용하는데 우리는 테이프 저장매체에 대한 작업으로tar
명령어를 사용하는 경우는 없으므로tar
명령어를 사용할때 이 옵션이 항상 함께 사용된다고 생각해도 좋다.-z
,--gzip
Archive가 gzip 프로그램을 거치도록 한다.
gzip 알고리즘으로 Archive를 압축하거나 압축을 해제할때 사용한다. 이 방식으로 압축한 Archive 파일명에는.gz
확장자를 추가로 붙여준다.-j
,--bzip2
Archive가 bzip2 프로그램을 거치도록 한다.
bzip2 알고리즘으로 Archive를 압축하거나 압축을 해제할때 사용한다. 이 방식으로 압축한 Archive 파일명에는.bz2
확장자를 추가로 붙여준다.-J
,--xz
Archive가 xz 프로그램을 거치도록 한다.
xz 알고리즘으로 Archive를 압축하거나 압축을 해제할때 사용한다. 이 방식으로 압축한 Archive 파일명에는.xz
확장자를 추가로 붙여준다.
자주쓰는 tar 명령어 옵션 조합
gzip으로 압축하기
1
tar cvzf <archive path> <file or dir> <file or dir> ...
- 예
아래 예제 명령어를 실행하면 bin/
, env/
, src/
, build/
4개 디렉토리가 하나의 Archive가 되고
gzip을 이용하여 project_v2.tar.gz
파일로 압축한다.
1
tar cvzf project_v2.tar.gz bin/ env/ src/ build/
tar.gz
파일 압축 해제
1
tar xvzf <archive path>
- 예
아래 예제 명령어를 실행하면 gzip을 이용하여 project_v2.tar.gz
파일의 압축을 해제한다.
1
tar xvzf project_v2.tar.gz
archive 내용 보기
1
tar tvf <archive path>
- https://recipes4dev.tistory.com/146
- https://man7.org/linux/man-pages/man1/tar.1.html
- https://en.wikipedia.org/wiki/Tar_(computing)
- https://en.wikipedia.org/wiki/Archive_file
- https://stackoverflow.com/questions/11534918/are-tar-gz-and-tgz-the-same-thing
- https://en.wikipedia.org/wiki/Gzip
- https://en.wikipedia.org/wiki/Bzip2
- https://tukaani.org/xz/
Leave a comment