본문 바로가기

OS/리눅스

[리눅스] 'tar', 압축을 해보자!







리눅스



 윈도우에서 보통 대용량의 자료를 조금 적은 용량으로 관리하거나, 많은 수의 자료를 하나의 자료 데이터로 보관하고자 할때 다들 '압축' 파일을 만들곤 하는데요, 이번에는 리눅스에서의 압축에 대해서 알아볼 겁니다.

 리눅스에서의 압축은 TAR, GZIP,BZIP2 프로그램을 통해서 이루어지는데요, 이들은 대표적인 리눅스 압축 유틸리티로 쓰입니다. 그중에서 gzip(=GZIP)이 가장 많이 쓰입니다. 리눅스용 윈도우의 zip이라 생각하시면 되겠습니다.

 명령어를 하기에 앞서서 알아야될 것은 실제로 TAR 방식은 용량을 줄이는 압축이라는 것 보다는, 단지 파일을 하나로 관리하기 위해서 한데 모아놓을 수 있는 기술이라 보시면 되겠습니다. 실제로도 용량이 줄지않고, 압축 후 크기를 보시면 용량이 늘어나는 것을 확인 할 수 있습니다.
 - 저도 여기에 의문이 들어 내용을 찾아봤더니, 압축용량이 커지는 대신에 압축하는 시간과 푸는 시간이 짧아지므로 보통 여러 파일을 관리할때 쓴다고 합니다. 확인된 내용은 아니니, 참고하시기 바랄게요 ^^. 이것에 대해서 자세히 아시면 댓글 부탁드립니다.

 우선 '압축 해제 명령어'를 살펴 보도록 할게요.
[~] $ tar [옵션] 파일명

 다음은 '압축 명령어' 입니다.
[~] $ tar [옵션] 파일명 압축대상파일

 이에 해당되는 옵션은 다음과 같습니다.
-c : 파일을 묶어서 새로운 파일 생성 [압축시 사용]
-x : 압축 해제 [압축해제시 사용]
-z : gzip으로 압축·해제
-j : bzip2으로 압축·해제
-v : 압축 진행과정을 보여줌.
-p : 퍼미션(Permission) 유지

 '-Z' 옵션으로 compress 방식으로 압축하고 해제를 할 수 있는데요, 이 방식은 zip파일이 나오기 이전에 쓰이던 것으로, 현재는 많이 쓰이지 않는 것으로 알고 있습니다. 확장자명은 '.Z' 가 됩니다.

 보통 옵션을 쓰는 방법은 gzip 방식은 '-cvzf' 나 '-xvzf', bzip2 에서는 '-cvjf', '-xvjf' 이 쓰이는데 여기서 '-p' 옵션을 더해서 쓰기도 합니다.

  위에서 말한 TAR 를 이용한 압축을 해보고 어떠한 결과가 나오는지 한번 보도록 할게요.
우선, 압축할 파일을 확인해 봅니다.

[실행화면]

 위에서 확인되는 파일 두개 file1.txt, file2.txt를 압축해 보도록 합니다.

 다음과 같이 명령어를 작성합니다.
[~]$ tar -cvf file.tar file1.txt file2.txt

[실행화면]

 

 file.tar 라는 새로운 파일로 파일이 압축되었습니다. 하지만 'ls -l' 명령어로 확인해본 결과는 위의 두개의 파일의 합인 54+81의 합보다는 큰 것으로 보입니다.

 그래서 압축 방법인 gzip 방식을 통해서 다음과 같이 압축해 보고 확인합니다.

[실행화면]


-z 옵션을 사용해서 gzip으로 압축을 해줬더니 크기가 10240 tar파일이 155로 줄어든 것으로 확인할 수 있습니다.
그렇다면 다음 bzip2를 사용해서 gzip과 비교를 해보겠습니다.

[실행화면]

 gzip 방식과 비교해서 bzip2의 압축률이 조금 저조한 것을 확인할 수 있네요.
위에서 알려드린 방법 외에도 최대의 압축률을 보장하는 7zip 파일도 있는데, 리눅스용으로는 p7zip으로 나오니 참고하시길 바랄게요 ^^

 마지막으로 파일 형식을 잘보시면, 명시적으로 어떻게 파일을 압축했는지 알수 있도록 표시하기 위해서, 위와 같이 파일을 압축을 했습니다. 모든 사용자들의 규칙이니 알아두도록 합시다.


도움 되셨다면 밑의 추천(손가락 표시)과 댓글 부탁드립니다.