티스토리 뷰

Linux

리눅스의 파일 아카이브와 압축

Andrew Shin 2015. 5. 8. 19:49

아카이브에 대해서 알아볼텐데 기존에 하던 MFC 프로그래밍에서도 파일 저장및 열기를 하기 위해 자주 등장하던 용어이다.

아카이브는 원래 '보관소, 저장소' 라는 뜻이지만 리눅스에서는 '파일을 묶어서 하나로 만든 것' 이란 의미로 사용된다. 파일과 디렉터리를 하나의 아카이브 파일로 만드는 방법과 파일을 압축하는 방법을 살펴본다.


1. 파일 아카이브

tar(tape archive)은 원래 여러 파일이나 디렉터리를 묶어서 만든 마그네틱 테이프와 같은 이동식 저장 장치에 보관하기 위해 사용하는 명령이었다. 현재는 다른 시스템과 파일을 주고 받거나, 백업하기 위해 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하거나, 기존 아카이브에서 파일을 추출하는데 사용한다. tar 명령의 기본 형식은 다음과 같다.

기능 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성한다.

형식 tar 명령[옵션][아카이브 파일] 파일이름

명령 c : 새로운 tar 파일을 생성한다.

 t : tar 파일의 내용을 출력한다.

 x : tar 파일에서 원본 파일을 추출한다.

 r : 새로운 파일을 추가한다.

 u : 수정된 파일을 업데이트 한다.

옵션 f : 아카이브 파일이나 테이프 장치를 지정한다. 파일 이름을 -로 지정하면 tar 파일 대신 표준 입력에서 읽어들인다.

v : 처리하고 있는 파일의 정보를 출력한다.

h : 심벌릭 링크의 원본 파일을 보함한다.

p : 파일 복구시 원래의 접근 권한을 유지한다.

j : bzip2로 압축하거나 해제한다.

z : gzip로 압축하거나 해제한다.


아카이브 생성하기 : cvf

tar 명령을 이용하여 여러 파일이나 디렉터리를 묶어 아카이브 파일을 생성할 수 있다.

아카이브를 생성하려면c(create) 기능을 사용해야 한다. v 옵션은 처리중인 파일의 이름을 화면에 출력하는 것으로, 없어도 괜찮지만 파일이 올바로 처리되는지 확인하려면 사용하는 것이 좋다. f 옵션에는 생성될 아카이브의 이름을 지정하는데 f 다음에 오는 이름을 아카이브 이름으로 간주한다. 파일 이름에는 특별한 제약이 없지만 확장자를 .tar로 지정하면 나중에 파일 관리를 쉽게 할 수 있어서 좋다. f가 지정되어 있으면 tar은 첫번째 이름을 아카이브 이름으로, 두번째부터 마지막 이름을 묶을 파일 이름으로 간주한다.

tar 명령으로 파일을 묶어 아카이브 파일을 만들어도 원본 파일은 그대로 있다. 따라서 tar 파일을 만들었을 경우 원본 파일이나 디렉터리를 그대로 두면 디스크 용량을 2배 차지하므로 tar파일을 다른 매체로 복사하거나 원본 파일을 삭제하는 것이 바람직하다.

아카이브 내용 보기 : tvf

아카이브의 내용을 확인할 때는 t(table of contents) 기능을 사용한다. 앞서 언급 했듯이 v 옵션은 파일의 상세정보를 보기 위해 지정하는 것으로, 이 옵션을 지정하지 않으면 tar 파일에 저장된 파일의 이름만 출력된다.

아카이브 풀기 : xvf

아카이브를 풀 때는 다음과 같이 x(extract) 기능을 사용한다,.

파일들은 아카이브를 생성할 때 저장한 원래의 경로에 복사된다. 따라서 아카이브를 풀기 전에 tvf 기능을 이용하여 아카이브의 파일 경로를 확인한 후 적당한 위치로 이동하여 작업을 수행하는 것이 바람직 하다.

이 외에도 아카이브 업데이트하기 : uvf와 아카이브에 파일 추가하기 : rvf가 있지만 설명은 생략하겠다.

아카이브로 파일을 묶었을때 자세히 보면 아카이브 파일의 용량은 묶인 파일들의 용량의 합인것을 알 수 있다. 즉, 압축되지는 않고 그룹핑만 되었다는 말이다. 묶기, 보기, 풀기에 대하여 알았으니 이제 압축하기에 대해서 알아보자.


2. 파일 압축과 아카이브

아카이브를 생성하면서 동시에 압축을 할 수도 있다. 압축할 경우 생성된 아카이브 파일의 크기가 작아지므로 디스크 공간이 부족할 때 사용하면 좋을 것이다. 보통 tar로 아카이브를 만든 다음 gzip 같은 압축 명령으로 압축했으나, 동시에 처리할수 있도록 옵션이 추가되었다.

압축하기 : gzip

tar cvf ex.tar ex

여기서 ex는 디렉토리 명이다. 디렉토리명.tar로 tar파일을 생성해준다.

gzip ex.tar 이라고 gzip 명령을 사용하게 되면 ex.tar는 ex.tar.gz 파일로 변경되면서 압축에 성공한다.

아카이브를 만들면서 동시에 압축까지 처리할때는 cvf 옵션에 z를 옵션을 추가하여 cvzf 라고 입력하면 되겠다.


압축 파일의 내용 보기 : zcat

기능 : gz로 압축된 파일의 내용을 출력한다.

형식 zcat 파일 이름


압축 풀기 : gunzip

gzip로 압축한 파일은 gunzip로 복원할 수 있다. gzip는 다른 압축명령과 달리 별도의 압축 풀기 명령을 사용하지 않고 -d옵션(gzip -d ex.tar.gz)으로 압축 파일을 복원할 수 있다.

-d 옵션이나, gunzip이나 기능은 같으므로 어떤것을 사용할지는 사용자의 선택에 따른다.

기능 gz로 압축된 파일의 압축을 푼다.

형식 gunzip 파일 이름


'Linux' 카테고리의 다른 글

사용자 계정 관련 파일  (1) 2015.05.08
소프트웨어 컴파일  (0) 2015.05.08
우분투 패키지 설치  (0) 2015.05.08
작업 예약  (0) 2015.05.07
포그라운드, 백그라운드 프로세스와 작업제어  (0) 2015.05.07
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함