[리눅스로 파일 압축하기]
📌 tar, gzip
가장 일반적으로 사용되는 압축 도구 중 하나는 tar
와 gzip
을 함께 사용하는 방법이다.
.zip 형태의 압축파일은 GUI 환경에서도 쉽게 압축하거나 압축을 해제할 수 있다는 장점이 있지만,
다른 압축방법보다 압축률이 낮다.
따라서 리눅스 환경에서는 다른 형태의 압축 방식을 사용하며,
tar
, gzip
명령어를 이용하여 압축을 진행한다.
위 방식으로 얻고자하는 형태는 파일.tar.gz
이고 이를 위해서는 tar와 gz를 차례로 실행해야 한다.
반대로 압축을 해제하고 싶을 때는 gz를 해제한 후 tar를 해제하면 된다.
1. 파일 또는 디렉토리를 tar로 압축
// 사용법
$ tar -czvf [압축파일명].tar.gz [원본파일명 또는 디렉토리명]
// 예시
$ tar -czvf afterzip.tar.gz beforezip/
// beforezip 이라는 디렉토리를 afterzip 이라는 이름으로 압축
-c
: 새로운 아카이브(압축파일) 생성
-z
: gzip을 사용한 압축/압축해제
-v
: 진행 상황을 표시
-f
: 파일 이름 지정
2. tar로 압축 해제
// 사용법
$ tar -xzcf [압축파일명].tar.gz
-x
: 아카이브를 해제
3. gzip로 압축 및 압축 해제
// 사용법
$ gzip [파일명] // 파일 압축
$ gzip -d [파일명].gz // 파일 압축 해제
📌 unzip
// 사용법
$ unzip [파일명].zip
// 예시
$ unzip Modesty.zip
압축된 '.zip' 파일의 압축을 해제하려면, unzip
명령어를 사용하여 해제하면 된다.
📌 zip
// 사용법
$ zip [압축파일명].zip [원본파일명]
zip 형식으로 압축이 가능한 zip
명령어
📌 7z
7z는 고압축률을 자랑하는 압축 도구로,
다양한 플랫폼에서 사용이 가능하며 7-Zip 압축 포맷을 지원한다.
해당 압축툴은 7z형식으로 압축하거나 압축을 해제할 수 있다.
리눅스를 사용하면서 대부분의 경우, 인터넷에 연결되어 있다면 Shell에서 바로 웹 제고 패키지를 설치할 수 있다.
1. 7z 설치하기
// 설치 방법
$ sudo apt-get install p7zip // Debain 또는 Ubuntu 기반 시스템
$ sudo yum install p7zip // Red Hat 또는 CentOS 기반 시스템
지금 우리는 리눅스라는 OS의 명령어에 대해 배우고 있지만,
사실상 실습하는 환경은 WINDOW이다. 따라서 위와 같이 명령어를 사용한 설치는 불가능할 수 밖에 없다.
그러므로 우리는 웹사이트에서 다운받도록 하자.
본인의 컴퓨터와 운영체제에 맞는 버전을 다운받으면 된다.
다운로드한 뒤에 반드시 처리해줘야하는 작업이 있는데,
바로 환경변수(path)에 7zip을 추가하는 작업이다.
윈도우 검색창에서 "환경 변수"라고 검색하면 "시스템 환경 변수 편집" 프로그램이 검색된다.
이제 7z 명령어를 사용할 수 있다.
cf) 환경변수란?
우리가 다운받은 7-zip이라는 프로그램을 GUI상으로 프로그램을 실행시켜서 원하는 파일을 압축시킬 수는 있지만,
하지만, 우리는 CLI 콘솔 상에서 압축을 진행하는 것이 목적이다.
저번 가이드에서 다룬 ls
, pwd
와 같은 명령어는 기본적으로 시스템이 인식하고 있는 명령어다.
하지만 7z
과 같이 설치 등으로 생성된 명령어는 막상 CLI에서 실행해보면
"Command not found" 라는 메세지가 출력될 것이다. 이 말은 시스템이 모르는 명령어라는 뜻.
쉽게 말해서 우리가 다운받은 명령어가 어딨는지 시스템은 모른다는 것이다.
따라서 CLI 상에서 위와 같은 명령어를 사용하기 위해 시스템한테 명령어 위치를 알려주는 작업이 필요하고
그 작업이 바로 Path(경로)에 7z 명령어가 담긴 폴더의 디렉토리를 등록시켜주는 것이다.
2. 7z 사용법
① 파일 압축하기
// 사용법
$ 7z a [압축파일명].7z [원본파일명 또는 디렉토리 경로]
// 예시
$ 7z a afterzip.7z beforezip/
$ 7z a afterzip.7z * // 현재 디렉토리에 있는 모든 파일을 압축
// * : 모든 파일이라는 뜻
② 여러 파일 동시에 압축하기
// 사용법
$ 7z a [압축파일명].7z [파일1] [파일2] [디렉토리1] [디렉토리2]
③ 압축 해제하기
// 사용법
$ 7z e [압축파일명].7z
$ 7z e -o[출력디렉토리] [압축파일명].7z
// 예시
$7z e -odirectory myarchive.7z
참조 : 리눅스 기본 명령어 by 문과생의 컴퓨터연구소