리눅스에서 여러 파일이나 디렉터리를 하나로 묶거나 압축, 해제할 때 가장 많이 사용하는 명령어가 바로 tar입니다. 본 글에서는 tar 명령어의 기본 개념과 자주 쓰이는 옵션, 그리고 실무에서 바로 쓸 수 있는 다양한 예제를 소개합니다.
◎ tar 명령어란?
tar(Tape ARchiver)는 여러 파일과 디렉터리를 하나의 아카이브 파일로 묶거나, 반대로 풀 때 사용하는 명령어입니다. 원래는 테이프 백업을 위해 만들어진 도구지만, 현재는 파일 묶음(아카이브) 생성, 배포, 백업 등 다양한 용도로 활용되고 있습니다.
tar 자체는 파일 압축이 아니라, 여러 파일을 하나로 묶는 역할을 합니다. 하지만 gzip, bzip2 등과 조합해 압축 기능도 함께 사용할 수 있습니다.
◎ 자주 사용하는 tar 옵션
아래 표는 tar 명령어에서 자주 사용하는 옵션과 설명입니다.
옵션 설명
| 옵션 | 설명 |
| -c | 새로운 아카이브 생성 |
| -x | 아카이브에서 파일 추출(풀기) |
| -v | 처리 과정을 자세히 출력 |
| -f | 사용할 아카이브 파일명 지정 |
| -z | gzip 압축 사용(‘.tar.gz’, ‘.tgz’) |
| -j | bzip2 압축 사용(‘.tar.bz2’, ‘.tbz2’) |
| -t | 아카이브 내용 확인 |
| -C | 파일을 풀 디렉터리 지정 |
| -p | 파일 권한 및 소유자 정보 유지 |
| -A | 아카이브에 tar 파일 추가 |
| -r | 아카이브 끝에 파일 추가 |
| -u | 변경된 파일만 추가 |
◎ tar 명령어 기본 예제
1. 파일/디렉터리 묶기
현재 디렉터리의 모든 파일과 디렉터리를 myarchive.tar로 묶기:
| # tar cvf myarchive.tar * |
특정 디렉터리(/home/user/data)를 아카이브로 묶기:
| # tar cvf myarchive.tar /home/user/data |
특정 파일만 묶기:
| # tar cvf myarchive.tar file1.txt file2.txt |
2. 아카이브 풀기
현재 디렉터리에 아카이브 풀기:
| # tar xvf myarchive.tar |
특정 디렉터리에 아카이브 풀기:
| # tar xvf myarchive.tar -C /target/directory |
3. 아카이브 내용 확인
아카이브 내 파일 목록 보기:
| # tar tvf myarchive.tar |
◎ 압축과 함께 사용하는 tar 예제
1. gzip으로 압축
아카이브를 gzip으로 압축:
| # tar zcvf myarchive.tar.gz /home/user/data |
압축된 아카이브 풀기:
| # tar zxvf myarchive.tar.gz |
2. bzip2로 압축
아카이브를 bzip2로 압축:
| # tar jcvf myarchive.tar.bz2 /home/user/data |
압축된 아카이브 풀기:
| # tar jxvf myarchive.tar.bz2 |
◎ 기타 유용한 예제
1. 파일 추가 및 업데이트
아카이브 끝에 파일 추가:
| # tar rvf myarchive.tar newfile.txt |
변경된 파일만 추가:
| # tar uvf myarchive.tar updatedfile.txt |
2. 파일 권한 유지하며 풀기
권한 및 소유자 정보를 유지하며 아카이브 풀기:
| # tar xvpf myarchive.tar |
3. 아카이브에 tar 파일 추가
다른 tar 파일을 아카이브에 추가:
| # tar -A -f myarchive.tar -f another.tar |
◎ 실무에서 자주 쓰는 조합
백업: tar cvf backup.tar /data
압축 백업: tar zcvf backup.tar.gz /data
특정 디렉터리에 복원: tar xvf backup.tar -C /restore
아카이브 내용 확인: tar tvf backup.tar
파일 추가: tar rvf backup.tar newfile.txt
변경된 파일만 추가: tar uvf backup.tar updatedfile.txt
◎ 마무리
tar 명령어는 리눅스 시스템 관리에서 자주 사용하는 필수 도구입니다. 파일 묶기, 압축, 해제, 백업 등 다양한 용도로 활용할 수 있으니, 위 예제들을 참고해 실무에 바로 적용해 보세요.
'IT > Linux' 카테고리의 다른 글
| [Linux] 리눅스 tcpdump 명령어 기본과 실전 활용 예제 (0) | 2025.06.11 |
|---|---|
| [Linux] 리눅스 cat과 zcat 명령어 기본과 실전 활용 예제 (0) | 2025.06.11 |
| [Linux] Ubuntu에서 SSH 서버가 기본 설치되지 않는 이유와 OpenSSH 설치, 백업, 보안 설정 방법 (1) | 2025.06.07 |
| [Linux] 가상 서버(LVS:Linux Virtual Server)로 부하 분산 서버(Load Balancer) 구성하기 (0) | 2023.08.06 |
| [Linux] CentOS 패키지/커널 업그레이드 관련 내용 (1) | 2017.04.18 |