tar
쉽게 말하면
여러 파일과 폴더를 상자 하나(파일 하나)로 묶거나 푸는 명령이에요. 묶기만 하면 크기는 그대로이고, 압축 옵션을 같이 주면 크기도 줄어요.
시험용 정의
tar(Tape ARchive)는 여러 파일·디렉터리를 하나의 아카이브 파일로 묶고 푸는 명령이다. 압축 프로그램과 함께 써서 .tar.gz(.tgz), .tar.bz2, .tar.xz를 만든다.
비유로 이해하기
이사할 때 물건을 박스 하나에 담는 것(tar)과, 그 박스를 진공 압축 팩으로 줄이는 것(gzip)은 다른 일이다.
자세히
동작 옵션 (하나만 고름)
| 옵션 | 뜻 |
|---|---|
| c | 묶기 (create) |
| x | 풀기 (extract) |
| t | 내용 목록 보기 (list) |
| r | 기존 아카이브 끝에 추가 (append) |
| u | 바뀐 파일만 추가 (update) |
함께 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| f 파일 | 아카이브 파일 이름 (바로 뒤에 파일명이 와야 함) |
| v | 처리 과정 표시 (verbose) |
| z | gzip (.tar.gz, .tgz) |
| j | bzip2 (.tar.bz2) |
| J | xz (.tar.xz) |
| C 디렉터리 | 그 디렉터리에 풀기 |
| p | 권한 유지 |
| --exclude=패턴 | 제외 |
자주 쓰는 형태
| 명령 | 뜻 |
|---|---|
| tar cvf a.tar dir | 묶기 |
| tar xvf a.tar | 풀기 (현재 디렉터리) |
| tar tvf a.tar | 목록 |
| tar czvf a.tar.gz dir | gzip 압축 묶기 |
| tar xzvf a.tar.gz -C /opt | gzip 풀기를 /opt에 |
| tar cjvf a.tar.bz2 dir | bzip2 압축 묶기 |
| tar cJvf a.tar.xz dir | xz 압축 묶기 |
f의 위치 함정
tar cvf a.tar dir은 맞지만 tar cfv a.tar dir은 f 뒤의 v를 파일 이름으로 받아 v라는 아카이브를 만들려 한다. 옵션을 붙여 쓸 땐 f를 맨 끝에 두자. 대시(-)는 붙여도 되고 안 붙여도 된다(tar -cvf = tar cvf).
시험에 나오는 그 밖의 말
| 말 | 뜻 |
|---|---|
| 압축 옵션 | z는 gzip(.gz), j는 bzip2(.bz2), J는 xz(.xz). x 풀기, t 목록 보기, c 묶기 |
| 예 | tar xjvf a.tar.bz2 (bz2 풀기), tar tJvf a.tar.xz (xz 안 목록 보기) |
시험에 이렇게 나와요
- 옵션 조합 해석(매 회): 묶기
cvf, 풀기xvf, 목록tvf, gzipz, bzip2j, xz J - .tar.gz 풀기 →
tar xzvf, .tar.bz2 풀기 →tar xjvf, .tar.xz 내용 보기 →tar tJvf - C 소스 파일만 묶기 →
tar cvf source.tar *.c, 다른 디렉터리에 풀기 →-C 디렉터리
확인 문제
Q1. tar cvf backup.tar /etc를 실행하면 backup.tar의 크기는 /etc와 비교해 어떨까?
- 거의 같다 (묶기만 함)
- 두 배
- 0바이트
- 훨씬 작다 (압축됨)
정답 보기
1번 거의 같다 (묶기만 함)
tar는 여러 파일을 하나로 묶기만 한다(아카이브). 압축은 하지 않는다. 압축까지 하려면 z(gzip), j(bzip2), J(xz) 옵션을 더한다: tar czvf backup.tar.gz /etc.
Q2. backup.tar.xz를 풀지 않고 안에 든 파일 목록만 보는 명령은?
- tar tJvf backup.tar.xz
- tar cJvf backup.tar.xz
- tar tzvf backup.tar.xz
- tar xJvf backup.tar.xz
정답 보기
1번 tar tJvf backup.tar.xz
tar tJvf backup.tar.xz다. t는 목록, J는 xz 압축이다. x는 풀기, c는 묶기, z는 gzip이다.
Q3. 현재 디렉터리의 .c 파일만 source.tar로 묶는 명령은?
- tar xvf source.tar *.c
- tar tvf source.tar *.c
- tar cvf source.tar *.c
- tar cvf *.c source.tar
정답 보기
3번 tar cvf source.tar *.c
c + f 뒤에 아카이브 이름, 그다음 대상.
Q4. backup.tar.gz 파일을 /tmp 디렉터리에 푸는 명령은?
- tar tzvf backup.tar.gz /tmp
- tar czvf backup.tar.gz /tmp
- tar xzvf backup.tar.gz -C /tmp
- tar xvf -C /tmp backup.tar.gz
정답 보기
3번 tar xzvf backup.tar.gz -C /tmp
x(풀기) z(gzip) -C 대상.
Q5. tar 아카이브의 내용을 풀지 않고 목록만 보는 옵션은?
- x
- t
- c
- r
정답 보기
2번 t
t(list)다. 묶음 안의 파일 목록만 보여 준다. x는 풀기, c는 묶기, r은 덧붙이기다.
Q6. tar에서 xz 압축을 사용하는 옵션은?
- z
- J
- x
- j
정답 보기
2번 J
대문자 J다. 소문자 z는 gzip, j는 bzip2다. 소문자 x는 압축 종류가 아니라 풀기 옵션이다.
Q7. tar로 묶을 때 bzip2로 압축하는 옵션 조합은?
- cxvf
- czvf
- cJvf
- cjvf
정답 보기
4번 cjvf
cjvf다. j가 bzip2, z가 gzip, 대문자 J가 xz 압축이다.
헷갈리기 쉬운 O·X
tar cvf 명령만으로 파일이 압축되어 크기가 줄어든다.
정답 보기
X 묶기만 한다. 압축은 z·j·J.
tar 옵션 f 뒤에는 바로 아카이브 파일 이름이 와야 한다.
정답 보기
O 맞는 설명이다.
tgz 확장자는 tar.gz와 같은 형식이다.
정답 보기
O 맞는 설명이다.