| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 상속
- 객체지향프로그래밍
- JavaScript
- 성수맛집
- 헤드퍼스트디자인패턴
- 객체지향
- 주니어개발자
- JAVA개발자
- 깨끗한코드
- Linux
- 직장인
- 성수직장인
- 독서
- 책읽기
- DesignPattern
- 성수
- docker
- 독서일지
- 오브젝트
- 책너두
- 헤드퍼스트
- 직장인점심
- Java
- IntelliJ
- 코딩
- 성수핫플
- 클린코드
- 성수볼거리
- 디자인패턴
- 개발자
- Today
- Total
런타임노트
[Linux] tar / tar.gz / zip 압축 및 압축 해제 본문

보통 리눅스에서 파일을 압축 파일을 다룰 때, "tar로 압축(compress)한다"는 표현을 쓰는 경우가 많은데, 정확히 말하자면 tar 자체는 "데이터의 크기를 줄이기 위한 파일 압축"을 수행하지 않는다. 단지 여러 파일을 하나의 파일로 묶는 용도로 사용될 뿐이다. 대신, tar를 통해 하나로 합쳐진 파일을 gzip 또는 bzip2 방식을 사용하여 압축할 수 있다. (명령어로 수행 가능)
tar가 널리 쓰이게 된 이유 중 한 가지는, 단순 아카이버 기능에 더해, tar로 묶여지기 전 파일들의 속성과 심볼릭 링크, 디렉토리 구조 등을 그대로 가져갈 수 있는 특징 때문이다. 그래서 최근에는 리눅스 용 프로그램, 데이터, 소스 및 라이브러리 등을 배포하는 용도로 많이 사용된다.
0. tar 명령어 옵션 (.zip 파일은 해당 되지 않음)
tar [OPTION...] [FILE]...
-f : 대상 tar 아카이브 지정. (기본 옵션)
-c : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용)
-x : tar 아카이브에서 파일 추출. (파일 풀 때 사용)
-v : 처리되는 과정(파일 정보)을 자세하게 나열.
-z : gzip 압축 적용 옵션.
-j : bzip2 압축 적용 옵션.
-t : tar 아카이브에 포함된 내용 확인.
-C : 대상 디렉토리 경로 지정.
-A : 지정된 파일을 tar 아카이브에 추가.
-d : tar 아카이브와 파일 시스템 간 차이점 검색.
-r : tar 아카이브의 마지막에 파일들 추가.
-u : tar 아카이브의 마지막에 파일들 추가.
-k : tar 아카이브 추출 시, 기존 파일 유지.
-U : tar 아카이브 추출 전, 기존 파일 삭제.
-w : 모든 진행 과정에 대해 확인 요청. (interactive)
-e : 첫 번째 에러 발생 시 중지.
1. 압축하기
- c : compress, tar 아카이브 생성 (기존 아카이브 덮어쓰기)
- v : 처리되는 과정을 나열
- f : 대상 tar 아카이브 지정 (기본 옵션)
tar 압축
$ tar -cvf [파일명.tar] [폴더명]
$ tar -cvf test.tar test_folder
tar.gz 압축
$ tar -zcvf [파일명.tar.gz] [폴더명]
$ tar -zcvf test.tar.gz test_folder
zip 압축
$ zip [파일명.zip] [폴더명]
현재 폴더의 전체를 압축
$ zip test.zip ./*
현재 폴더의 모든 것과 현재 폴더의 하위 폴더들까지 모두 압축
$ zip test.zip -r ./*
2. 압축 해제 하기
- x : extract, tar 아카이브에서 파일 추출
- v : 처리 되는 과정을 나열
- f : 대상 tar 아카이브 지정 (기본 옵션)
tar 압축 해제
$ tar -xvf [파일명.tar]
tar파일 압축해제는 경로를 지정하지 않고 그 자리에서 풀려버리니 주의
tar.gz 압축 해제
$ tar -zxvf [파일명.tar.gz]
$ tar -zxvf test.tar.gz
zip 압축 해제
$ unzip [파일명.zip]
$ unzip test.zip
특정 폴더에 압축 해제
$ unzip test.zip -d ./target_folder
참고자료 1 : recipes4dev.tistory.com/146
참고자료 2 : brownbears.tistory.com/161
'Linux' 카테고리의 다른 글
| [Linux] awk와 gawk의 차이점 (0) | 2023.11.09 |
|---|---|
| [Linux] jar 파일 실행하는 shell script 뜯어보며 작성하기 (0) | 2023.11.09 |
| [Linux] $ pwd --version 했을 때, invalid option 뜨는 이유 (0) | 2023.09.04 |
| [Linux] scp 이용하여 다른 서버로 파일 보내기(단일파일, 복수파일, 디렉토리) (0) | 2023.08.29 |
| [Linux] find 명령어 (파일 찾기, 검색) (0) | 2023.08.22 |