[리눅스로 파일 압축하기]
📌 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이다. 따라서 위와 같이 명령어를 사용한 설치는 불가능할 수 밖에 없다.
그러므로 우리는 웹사이트에서 다운받도록 하자.
본인의 컴퓨터와 운영체제에 맞는 버전을 다운받으면 된다.
Download
Download .7z Any / x86 / x64 LZMA SDK: (C, C++, C#, Java)
www.7-zip.org
다운로드한 뒤에 반드시 처리해줘야하는 작업이 있는데,
바로 환경변수(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 문과생의 컴퓨터연구소