리눅스에서 tar, gz, zip 압축 및 압축해제 방법 완벽 정리
리눅스에서 tar, gz, zip 압축 및 압축해제 방법 완벽 정리
리눅스 서버를 운영하다 보면 로컬 PC와 리눅스 서버 간 파일들을 주고받아야 할 경우들이 많습니다. 이때 대부분의 파일은 묶음, 압축 파일의 형태로 보내게 되는데요. 리눅스에서 가장 많이 사용하는 압축파일인 tar, gz, zip 파일의 압축방법과 압축해제 방법을 완벽하게 정리해 보겠습니다!
tar 명령어 사용법
tar는 Tape ARchiver의 앞글자를 딴 말로, 정확히 말하자면 압축방식은 아니고 일종의 묶음 형태입니다. tar파일은 리눅스 및 유닉스에서 가장 많이 사용되는 형태로써 tar로 묶이기 전 파일들의 속성과 디렉터리 구조등을 모두 보존할 수 있고 압축 & 압축해제 등의 작업을 거치면서 파일이 변경, 소실될 염려가 없기 때문에 소스 배포 파일을 만드는 용도로 자주 사용됩니다.
tar 압축하기
tar -cvf [파일명.tar] [대상 폴더명]
# 현재 위치의 pjt폴더를 test.tar 로 묶기
tar -cvf test.tar pjt
tar 압축해제
tar -xvf [파일명.tar]
# 현재 위치의 test.tar 를 압축해제
tar -xvf test.tar
tar 명령어 주요 옵션은 다음과 같습니다: - -f: 대상 tar 아카이브 지정. (기본 옵션) - -c: tar 아카이브 생성. 기존 아카이브 덮어쓰기. (파일 묶을 때 사용) - -x: tar 아카이브에서 파일 추출. (파일 풀 때 사용) - -v: 처리되는 과정(파일 정보)을 자세하게 나열. - -z: gzip 압축 적용 옵션. - -j: bzip2 압축 적용 옵션. - -t:
tar 아카이브에 포함된 내용 확인. - -C: 대상 디렉토리 경로 지정. 예를 들어 현재 디렉토리의 모든 파일과 디렉토리를 tar로 묶고 gzip으로 압축하려면 tar zcvf test.tar.gz * 명령을 사용하면 됩니다!!
gzip 명령어 사용법
리눅스에서 주로 파일을 압축하는 방식은 위에서 설명한 tar를 사용하여 여러 개의 파일을 하나로 묶고 이 묶은 tar 파일을 gzip 명령어를 사용하여 .gz 형식으로 압축을 많이 합니다. gz은 gzip파일의 약자입니다.
gzip 압축하기
gzip [옵션] [파일명]
# test.txt 를 test.gz 로 압축하기
gzip test.txt
gzip 압축해제
gzip -d [파일명]
# test.gz 압축해제
gzip -d test.gz
gzip 명령어 주요 옵션은 다음과 같습니다: - -n: n은 1부터 9까지 숫자의 설정으로, 1이 가장 빠르지만 압축률은 가장 낮음 - -c: 압축된 파일 내용을 출력하고 원본파일은 그대로 보존 - -d: 압축 해제 - -f: 사용중인 파일도 강제로 압축 - -l: 압축 파일의 정보 출력 - -r: 지정한 디렉터리 안에 포함된 모든 파일을 압축하거나 해제합니다. - -t: 압축 파일 테스트 (실제로 압축이 풀리지는 않음) - -v: 압축 혹은 압축 해제를 할 때 자세한 정보 출력
zip / unzip 명령어 사용법
윈도우에서 주로 사용하는 압축 형태인 zip 파일을 리눅스 서버로 옮겨서 작업하는 경우도 종종 있습니다. zip은 여러 파일을 묶고 압축할 수 있는 유틸리티로 tar와는 달리 아카이빙과 압축을 함께 할 수 있습니다.
zip 압축하기
zip [압축 파일명] [압축할 파일명]
# mylog.log 를 mylog.zip 으로 압축하기(단일 파일 압축)
zip mylog.zip mylog.log
# mylog1.log, mylog2.log, mylog3.log 를 mylog.zip 으로 압축하기(다중 파일 압축)
zip mylog.zip mylog1.log mylog2.log mylog3.log
# 현 위치 디렉토리와 하위 디렉토리를 모두 test.zip 으로 압축
zip -r test.zip ./*
zip 압축해제
unzip [파일명]
# test.zip 압축 해제
unzip test.zip
zip 명령어 주요 옵션은 다음과 같습니다: - -n: n은 1부터 9까지 숫자의 설정으로, 1이 가장 빠르지만 압축률은 가장 낮음 - -r: 하위 디렉터리까지 포함하여 압축 - -e: zip 파일에 암호 설정 - -x: 압축시 파일 제외 - -P: 압축 파일 생성 시 암호를 입력하여 생성 - -d: 지정된 위치에 압축 해제 아울러 unzip 명령어 주요 옵션으로는 -a, -L, -C, -o, -n 등이 있습니다. 압축된 파일의 내용을 자동으로 변환, 대소문자 변환, 파일 덮어쓰기 여부 등을 설정할 수 있습니다. 와! 정말 다양한 압축 방식과 명령어들이 있어 보이네요? 리눅스에서 실제 서버를 운영하다 보면 이런 기능들을 정말 많이 활용하게 됩니다. 오늘 배운 내용을 잘 숙지하여 실제 업무에 적용해 보시기 바랍니다 :) 궁금한 점이 더 있다면 언제든 말씀해 주세요!
댓글