tar (Tape Archiver)
tar는 여러 개의 파일이나 디렉터리를 하나의 파일로 묶거나(Archiving), 이를 압축(Compression)할 때 사용하는 명령어입니다. 원래 테이프 백업 장치를 위해 만들어졌으나, 현재는 리눅스 소프트웨어 배포 및 백업의 표준으로 사용됩니다.
[Image of Linux tar command process showing multiple files being bundled into a single .tar archive]
1. 기본 사용법
tar [옵션] [파일명.tar] [대상]
2. 필수 옵션 (외워두면 좋은 조합)
tar는 옵션 앞에 하이픈(-)을 붙이지 않아도 작동하는 경우가 많습니다.
| 옵션 | 이름 | 설명 |
|---|---|---|
| c | create | 새 아카이브 파일을 생성합니다. (묶기) |
| x | extract | 아카이브 파일에서 내용을 추출합니다. (풀기) |
| v | verbose | 작업 과정을 화면에 상세히 출력합니다. |
| f | file | 아카이브 파일의 이름을 지정합니다. (필수 옵션) |
| z | gzip | gzip을 사용하여 압축하거나 해제합니다. (.tar.gz) |
| j | bzip2 | bzip2를 사용하여 압축하거나 해제합니다. (.tar.bz2) |
3. 실무 활용 예시
① 폴더 전체를 하나로 묶고 압축하기 (가장 많이 쓰임)
my_project 폴더를 project.tar.gz라는 이름으로 압축합니다.
tar -cvzf project.tar.gz my_project/
② 압축된 파일 풀기
현재 디렉터리에 압축을 해제합니다.
tar -xvzf project.tar.gz
③ 압축을 풀지 않고 내부 목록만 확인하기
tar -tvf project.tar.gz
④ 특정 디렉터리에 압축 풀기
tar -xvzf project.tar.gz -C ./target_folder/
4. [팁] tar vs zip
- zip: 개별 파일을 압축한 후 하나로 합칩니다. 윈도우와 호환성이 좋습니다.
- tar: 먼저 하나로 묶은 후 전체를 압축합니다. 리눅스의 파일 권한(Permission)과 심볼릭 링크 정보를 그대로 보존하기 때문에 서버 백업에는 반드시
tar를 사용해야 합니다.