본문 바로가기
프로그래밍 공부/리눅스

리눅스 파일 압축, 아카이브와 백업의 차이

by 준닝 2020. 4. 4.

들어가기에 앞서!!

 

아카이브 와  백업 파일의 차이

 

백업(Backup)

 - 데이터가 사라지거나 손상되는 경우를 대비하여 저장하는 데이터 사본 

 

아카이브(Archive)

 -참고용(?) 데이터 사본 정도 , 백업은 복원 하는 의미라면  아카이브는 회수(?)  느낌이다.

 - 저장해놓고(여기서 압축파일로 저장할때를 공부해 볼것이다.)  필요할때마다 필요한 부분 꺼내 쓰는 느낌?  

 

------------------------------------------------------------------------------------------------------------------------

리눅스에서 파일을 압축하는 방법은 여러가지가 있습니다 .

 

그 중 오늘 써볼 파일 압축 명령어는  gzip , tar , xz 정도 있는데요 . 

 

각 특징을 알아야 알맞는 압축 명령어를 쓰겠죠 ??  알아봅시다!!

 

----------------------------------------------------------------------------------------------

              gzip             tar                  xz                     zip
        용량 압축 tar 파일  다시 압축? 정도로 생각

압축이 거의 되지 않음

(파일 하나로 묶기)

디렉터리 압축 불가

파일 무손실 압축

최고레벨 지원 X
        호환 정도       거의 모든 os 호환
       cpu 소모 정도   소모 정도 적음    

 

더욱 자세한 내용은 적어주고 싶지만 제가 아직 지식이 부족하여... 다음 기회에....

-------------------------------------------------------------------------------------------------------------------------------

tar

 

    -압축해준다기 보다는 파일을 하나로 묶어주는 정도로 생각하시면 되겠습니다. 

  왜 그런가 하면  tar로 묶었는데 오히려 용량이 커질 수가 있습니다.  (완전한 압축이 아닌 그냥 묶어주기 때문에)

blues , folk, jazz 를 묶었는데 collection.tar의 용량이 3개를 합친 플러스 알파로                  커진것을 볼 수 있다.

 

*tips

 

 -   -f 옵션은 필수 옵션 입니다 . (묶을 때 이름 정해주는 옵션  ,  풀때도 풀 파일 이름 지정해줄때 씁니다.)

 -    그래서 기본적으로  tar -cf  (생성될 파일 이름)  (묶을 파일들) 형식으로 명령해주면 됩니다. {해제 시 tar -xf ( 이름)}

 -    압축 해제시 해제 할 파일이 현 디렉토리에 존재하면 덮어씁니다 .. !! (주의)

 -    현재 디렉토리 밑의 모든 파일을 압축하고싶을땐 tar -cf test0404.tar *  이런 식으로 해주면 됩니다.

 -    디렉터리 채로 압축할땐  tar -cf test0404.tar hjhj/      (hjhj 디렉터리와 서브디렉터리 모두 압축)

 -

 

*options 

가장 필요한 옵션 부터 알아보겠습니다 .

  

 -c  :  create 의 약자로 새 저장 파일을 만들어요.  (옵션에 넣었지만 tar 파일을 만들때는 필수겠죠?)

 -f   :   묶을 때 이름을 정해줘요 (필수 옵션 입니다 !!  없으면 오류 발생합니다.)

 -x  :   파일 압축 해졔 할때 사용

 -v  :   파일을 압축하거나 해제 할때 과정을 보여줍니다 .(파일이 많다면 시간이 오래걸리니 과정을 보는 것이 좋겠죠?)

 -p  :  모든 퍼미션 정보 유지 (기존에 있던 파일 권한 유지)

 -t   :   압축파일 안의 파일 확인할때 쓰는 명령어

 

 

  -z  : gzip으로 압축하거나 해제

  -j  :  bz2 로 압축하거나 해제

 

 

 

--------------------------------------------------------------------------------------------------------------------------------

 

gzip

   여러 개의 파일 압축할 시에는 tar 명령어로 묶은 후  gzip 으로 압축해 줍니다.

 

 *options

  -n  :  1~9 까지이며 숫자가 클수록 압축률 증가 (그만큼 압축하는 시간이 오래걸림)

  -c  :  압축결과를 출력   ,  원본 파일은 그대로 둠

  -d  :   압축 해제

  -f   :   강제 압축

  -l   :  압축파일의 정보 출력

  -r   :  디렉토리에 포함된 모든 파일을 압축

  -t   : 압축파일 테스트

  -v  :   파일을 압축하거나 해제 할때 과정을 보여줍니다 .(파일이 많다면 시간이 오래걸리니 과정을 보는 것이 좋겠죠?)

 

-------------------------------------------------------------------------------------------------------------------

네 오늘은 리눅스에서 파일 압축에 대해 알아 보았는데요..

 

제가 아직 모르는 옵션들이 있드라구요.. 그런데 알면 편할 것 같은 옵션들이라 다음에 한번 찾아보시길 추천드려요.

확실하게 알지 못하는 것들이라 참고만 하시라고 적어봐요.

 

(다른 디렉터리에 풀때 명령어   -C 명령어로 저장할 디렉터리 지정하기    )

tar -xvf test0404.tar -C hj0404/         (hj0404 디렉터리 밑에 test0404.tar 파일 압축 해제)

 

 

(원하는 파일만 골라서 압축 해제)

tar  -xvf test0404.tar  jazz.txt             (test0404.tar 파일에 있는 jazz.txt만 추출)

 

 

(필요 없는 파일  제외하고  모두 압축  --exclude)

tar  --exclude="*.java" -zcvf test0404.tar.gz *   (java확장자 파일 제외하고 모든 파일 압축)  *은 현재 디렉토리 모든파일

 

 

(현재 압축 파일에 파일 추가  -r)

tar -rvf test0404.tar  blues.txt collection.txt    (test0404.tar 파일에 blues.txt , collection.txt 파일 추가)

 

 

(압축파일 안의 파일 확인할때 쓰는 명령어  -t)

 

 

이번 포스팅은 ~~~ 여기까지 하겠습니다. 최대한 자세히 적으려고 노력했어요 ㅠㅠ

자세히 못하는 명령어는 혹시 제가 잘못 알려드릴까봐 조마조마해서 많이 적진 못했어요 ...

 

더 자세히 아시는 분들은 댓글에 많이 알려주세요!!

댓글