LINUX
2016.11.03 / 10:24

리눅스 zip 압축하기 and 압축풀기

기리아빠
추천 수 12

리눅스에서 zip 압축을 풀기 위해서는  (여기에도 작성해두었지만.. http://ngee.tistory.com/215)


zip 압축 풀기 

리눅스에서 zip 압축을 풀기위해서는 unzip 이라는 패키지가 설치되어 있어야 합니다. 


우분투를 깔면 자동으로 설치되는지는 제가 잘 모르겠구요. unzip 패키지가 없으면 


apt-get install unzip을 통해서 설치하시면 됩니다.


그럼 zip 압축을 풀기위해서는요. 예로 happy.zip 이라는 파일이 있다고 가정하면 


명령어 : unzip happy.zip 


이러면 압축이 풀리겠죠? :)


덧) 2014/11/07)

특정 폴더에 압축 풀고 싶으시죠? 그럼 -d 옵션을 주시면 됩니다. 

예로 happy.zip 을 ./target 이라는 폴더에 압축을 풀고 싶으면


명령어 : unzip happy.zip -d ./target





zip 압축 하기

리눅스에서 zip으로 압축하기 위해서는 zip 이라는 명령어를 사용하시면 됩니다.


예를 들어서 현재 폴더에 있는 모든 것을 zip으로 압축하는데, 그 파일명이 test.zip 이라고 가정하면.


명령어 : zip test.zip ./*


라고 하시면 됩니다. zip으로 묶이는 데, 그 파일이름이 test.zip 이라는 것이구요. ./* 는 현재 폴더의 모든 것이라는 뜻이구요.


현재 폴더에 여러 하위 폴더가 있는데, 그것도 다 같이 압축하기 위해서는 -r 이라는 옵션을 주면 되구요.


명령어 : zip -r test.zip ./*  


라고 하시면 되겠죠. 뜻은 test.zip으로 압축하고 현재 폴더의 모든 것과 현재 폴더의 하위 폴더들도 모두 압축해라 입니다.



+++덧 20160206)


zip의 r 옵션을 위와 같이 사용하는 경우에는 별다른 문제가 없지만 

스크립트로 사용할 때 문제가 될 수 있다.

상대경로가 아니라 절대경로로 설정하여 압축한 경우에는 압축을 풀었을 때 /var/www/html/fflflflf/flflflf 이런식으로 나올 수 있기 때문이다.

이것은 -j 옵션으로 해결 가능하다. 하지만 -j옵션과 -r 옵션은 같이 사용될 수 없다.


그래서 결론은 스크립트로 사용할 때에는 -r 옵션을 그대로 사용하되 cd로 이동한 다음에 zip으로 압축하면 

하위폴더는 포함하고 경로에 해당하는 모든 폴더를 안봐도 된다.


ex) cd /var/www/html && zip -r test.zip ./*





리눅스에서 tar 압축을 해제하거나, 압축하기에 대해서 궁금하시면 아래 포스팅을 참고하세요. :)