본문 바로가기
my_lesson/_Linux

Linux - 압축, 압축해제 하기 [zip, war, gz, tar, bz2,rar]

by boolean 2017. 7. 8.
728x90

Linux - 압축, 압축해제 하기 [zip, war, gz, tar, bz2,rar]

zip 압축 및 압축 해제

Usage : $ zip [-option] [file_list ...]

option: man zip

 -d : directory

  -r : recursive

sudo apt-get install unzip             //zip 설치

unzip test.zip                             //현재 폴더에 압축해제
unzip test.zip -d targetdir             //지정 폴더에 압축해제
zip test.txt ./*                            //현재 폴더 폴더가 아닌 모든내용 압축
zip -r test.txt ./*                         //현재 폴더 하위폴더까지 모든내용 압축
cd /var/www/html && zip -r test.txt ./*
                                              // var/www/html 폴더로 이동후  해당폴더 하위폴더까지 모든내용 압축

                                              //스크립트로 사용할 때 사용

war 압축 및 압축 해제

zip과 동일

tar 압축 및 압축 해제(묶음 : 주로 백업 용도)

Usage : $ tar [-option] [tar_file | tar_folder] [file_list |folder_list ...]
option : man tar

 -c 파일을 tar로 묶음 
 -p 파일 권한을 저장 
 -v 묶거나 파일을 풀 때 과정을 화면으로 출력 
 -f 파일 이름을 지정 
 -C 경로를 지정
 -x tar 압축을 풂 
 -z gzip으로 압축하거나 해제함 zcvf  ztvf  zxvf

 -j bzip2로 압축하거나 해제함   jcvf  jtvf   jxvf
 

sudo apt-get install tar         //tar 설치
tar cvf test.tar test.txt           //test.txt파일을 test.tar로 묶음
tar cvf testdir.tar testdir        //testdir폴더를 testdir.tar로 묶음
tar tvf test.tar                     //test.tar의 내용을 출력함

tar xvf test.tar -C testdir       //test.tar을 testdir폴더에 묶음해제함


tar압축패키지로 Linux 전체 시스템 백업하기

백업에 제외할 디렉토리를 정한다.(ex :  --exclude=/proc...) 쓸모없는 디렉토리와, 백업파일 자신을 꼭 제외시켜주어야 한다. 또한 다른 파티션의 하드를 마운트한 /mnt 등의 디렉토리도 제외시켜야 불필요한 용량증가와 시간을 줄일 수 있다. . /media   /dev 등의 디렉토리도 빼주자. /sys, /dev 는 가상적인 디렉토리이다. 백업이 완료된 후 에러매세지를 볼수가 있는데 대부분의 경우 무시해도 된다.

 

백업 

#cd /            //루트로 이동

#tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /        //전체 시스템 백업.   마지막에 / 또는 . 을 생략하면 Error : Cowardly refusing to create an empty archive 발생원인이 된다.

 

복구

#cd /            //루트로 이동        

#tar xvpfz backup.tgz -C /       //압축을 풀어 복구. 마지막의 -C / 옵션때문에 백업파일이 루트가 아닌 다른 곳에 저장되어있는 상태라도 상관없다.

주의할 것은 압축 해제 할때 -C 옵션을 넣기 때문에 대상 디렉토리는 무조건 /가 되어야한다는 것. 그래야 원래 압축할 떄와 동일한 경로에 풀린다.

 

백업에서 제외했던 디렉토리는 직접 만들어 주어라

#mkdir proc

#mkdir lost+found

#mkdir mnt

#mkdir sys

재부팅을 하면 백업전과 똑같은 상태로 돌아 갈 것이다.

gz(gzip) 압축 및 압축 해제(tar와 같이사용하면 좋음)

Usage : $ gzip [-option] [file_list ...]

option : man gzip

 -d : decompress

 -v : percentage for compressed or decompressed


sudo apt-get install gzip         //gzip 설치

gzip -d test.txt.gz                  //test.txt.gz 파일을 test.txt 로 압축 해제

gunzip test.txt.gz                  //test.txt.gz 파일을 test.txt 로 압축 해제

tar zxvf test.tar.gz -C ../         //test.tar.gz 파일을상위 폴더에 원래 파일명으로 압축 및 믂음 해제

gzip -9 test.txt                    //test.txt파일을 test.txt.gz로 압축


bz2(bzip2) 압축 및 압축 해제(tar와 같이 사용하면 좋음)

Usage : bzip2 [-option] [file_list ...]

option : man bzip2

 - k : keep 원본 파일 보존 이 옵션을 사용안하면 원본이 지워짐 사용 추천

 -d : decompress

sudo apt-get install bzip2          //bzip2 설치

bzip2 -kd test.txt.bz2                //원본 파일 유지하며 test.txt.bz2파일을 test.txt로 압축해제

bzip2 -k test.txt                       //원본 파일을 유지하며 test.txt파일을 test.txt.bz2로 압축함

tar jxvf test.tar.bz2 -C /etc         //test.tar.bz2파일을 etc폴더에 원본파일 이름으로 압축해제함


rar 압축 및 압축 해제

Usage : $ unrar [-option] [file_list ...]

option: man zip

 -d : directory

  -r : recursive

sudo apt-get install unrar                 // rar 설치

man rar                                        // rar메뉴얼

mkdir test                                     // 저장할 폴더이름 생성

unrar  e test.rar  test                       // 현재 폴더에 압축해제

unzrar test.zip -d targetdir               // 지정 폴더에 압축해제


댓글