런타임노트

[Linux] tar / tar.gz / zip 압축 및 압축 해제 본문

Linux

[Linux] tar / tar.gz / zip 압축 및 압축 해제

D269 2023. 9. 12. 14:50
728x90

 

 

출처 : https://recipes4d ev.tistory.com/146

 

보통 리눅스에서 파일을 압축 파일을 다룰 때, "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

출처 : https://eehoeskrap.tistory.com/555

728x90
반응형