leehyeon-dv 님의 블로그
chap 9. 파일 아카이브와 압축 명령익히기 본문
✨목차
1. 파일 아카이브
2. 파일 아카이브와 압축 : jar
3. .Z 파일 : compress/ uncompress
4. .gz 파일: gzip/gunzip
5. .zip 파일 : zip/unzip
6. .bz2파일 : bzip2/bunzip2
✏️파일 아카이브 : tar
- 아카이브
- 원래 의미: 보관소, 저장소
- 유닉스에서의 의미 : 파일을 묶어 하나로 만든 것
c | tar 파일 생성 |
t | tar 파일 목록보기 |
x | tar 파일 풀기 |
f | 아카이브 파일이나 tape 장치등 지정 |
v | 표준 출력으로 실행내용 출력 |
h | 심볼릭 링크의 원본 파일 포함 |
아카이브 생성: cvf
$ tar cvf txt.tar *.txt
a 1.txt 1K
a 2.txt 1K
a 3.txt 1K
$ ls
1.txt 2.txt 3.txt tmp txt.tar
아카이브 생성확인, 목록보기 tvf
$ tar tf txt.tar
1.txt
2.txt
3.txt
$ tar tvf txt.tar
tar: blocksize = 8
-rw-r--r-- 100/10 189 4월 8 21:11 2019 1.txt
-rw-r--r-- 100/10 189 4월 8 21:11 2019 2.txt
-rw-r--r-- 100/10 189 4월 8 21:11 2019 3.txt
아카이브 풀기 : xvf
$ mkdir temp
$ mv txt.tar temp
$ cd temp
$ ls
txt.tar
$ tar xvf txt.tar
tar: blocksize = 8
x 1.txt, 189 bytes, 1 tape blocks
x 2.txt, 189 bytes, 1 tape blocks
x 3.txt, 189 bytes, 1 tape blocks
$ ls
1.txt 2.txt 3.txt txt.tar
아카이브 업데이트하기 : uvf
$ tar uvf txt.tar 2.txt
a 2.txt 1K
user1@solaris11:~/Unix/ch9/temp$ tar tvf txt.tar
tar: blocksize = 8
-rw-r--r-- 100/10 189 4월 8 21:11 2019 1.txt
-rw-r--r-- 100/10 189 4월 8 21:11 2019 2.txt
-rw-r--r-- 100/10 189 4월 8 21:11 2019 3.txt
user1@solaris11:~/Unix/ch9/temp$ touch 2.txt
user1@solaris11:~/Unix/ch9/temp$ tar uvf txt.tar 2.txt
a 2.txt 1K
user1@solaris11:~/Unix/ch9/temp$ tar tvf txt.tar
tar: blocksize = 10
-rw-r--r-- 100/10 189 4월 8 21:11 2019 1.txt
-rw-r--r-- 100/10 189 4월 8 21:16 2019 2.txt
-rw-r--r-- 100/10 189 4월 8 21:11 2019 3.txt
아카이브에 파일 추가하기: rvf
$ cp /etc/services s.txt
$ tar rvf txt.tar s.txt
a s.txt 5K
$ tar tvf txt.tar
-rw-r--r-- 100/10 189 4월 8 21:11 2019 1.txt
-rw-r--r-- 100/10 189 4월 8 21:11 2019 2.txt
-rw-r--r-- 100/10 189 4월 8 21:11 2019 3.txt
-rw-r--r-- 100/10 189 4월 8 21:16 2019 2.txt
-rw-r--r-- 100/10 4739 4월 8 21:17 2019 s.txt
✏️파일 아카이브와 압축 : jar
t | jar 파일 목차출력 |
x | jar 파일 풀기 |
i | jar파일에 색인 추가 |
u | jar파일 수정 |
f | 아카이브 파일 지정 |
m | manifest 파일 지정 |
v | 처리중인 파일 정보 출력 |
0(숫자) | 압축없이 아카이브 파일만 생성 |
아카이브 생성하고 압축 : cvf
$ jar cvf txt.jar *.txt
//Manifest를 추가함
추가하는 중: 1.txt(입력 = 3072) (출력 = 244)(92%를 감소함)
추가하는 중: 2.txt(입력 = 189) (출력 = 136)(28%를 감소함)
추가하는 중: 3.txt(입력 = 189) (출력 = 136)(28%를 감소함)
$ tar cvf txt.tar *.txt
a 1.txt 3K
a 2.txt 1K
a 3.txt 1K
$ ls -l txt.*
-rw-r--r-- 1 user1 staff 1164 4월 8 21:18 txt.jar
-rw-r--r-- 1 user1 staff 6656 4월 8 21:20 txt.tar
아카이브만 생성 : c0vf
$ jar c0vf txt2.jar *.txt
//Manifest를 추가함
추가하는 중: 1.txt(입력 = 3072)(0%를 저장함)
추가하는 중: 2.txt(입력 = 189)(0%를 저장함)
추가하는 중: 3.txt(입력 = 189)(0%를 저장함)
$ ls -l txt*.*
-rw-r--r-- 1 user1 staff 1164 4월 8 21:18 txt.jar
-rw-r--r-- 1 user1 staff 6656 4월 8 21:20 txt.tar
-rw-r--r-- 1 user1 staff 4017 4월 8 21:25 txt2.jar
아카이브 내용보기 : tvf
user1@solaris11:~/Unix/ch9$ jar tvf txt.jar
0 Mon Apr 08 21:18:10 KST 2019 META-INF/
69 Mon Apr 08 21:18:10 KST 2019 META-INF/MANIFEST.MF
3072 Mon Apr 08 21:13:14 KST 2019 1.txt
189 Mon Apr 08 21:11:50 KST 2019 2.txt
189 Mon Apr 08 21:11:54 KST 2019 3.txt
아카이브 풀기: xvf
$ mkdir temp2
$ cp txt.jar temp2
$ cd temp2
$ jar xvf txt.jar
생성됨: META-INF/
증가됨: META-INF/MANIFEST.MF
증가됨: 1.txt
증가됨: 2.txt
증가됨: 3.txt
✏️.Z 파일: compress/uncompress
- .Z인 압축파일 생성
compress {파일}
-f | 강제압축 |
-c | 압축결과를 화면에 출력 |
-v | 압축정보를 화면에 출력 |
zcat {파일명}
- .z파일 내용을 화면에 출력
uncompress [ ] {파일명}
- compress로 압축된 파일 복원
- 확장자가 .Z인 압축파일 해제
gzip [ ] { 파일명 }
- .gz인 압축파일 생성
-d | 압축해제 |
-l | 압축된 파일의 내용출력 |
-r | 현재 디렉토리부터 하위디렉토리까지 압축 |
-t | 압축 파일 검사 |
-v | 압축 정보 화면에 출력 |
-g | 최대한 압축 |
gzcat {파일명}
- .gz파일내용 화면에 출력
gunzip {파일명}
- .gz인 압축파일 해제
zip [ ] {파일명}
- .zip 압축파일 생성
-v | 압축정보 화면에 출력 |
-r | 디렉토리 압축 |
-u | 수정되거나 추가된 파일만 출력 |
unzip { 파일명 }
- 확장자가 .zip인 압축파일 해제
bzip2 [ ] {파일명}
- 오픈소스 압축명령
- gzip, zip에 비해 압축률은 높고 속도는 느림
- .bz2 파일 생성
-d | 파일 압축해제 |
-l | 압축된 파일 내용 보여줌 |
-t | 압축 파일 검사 |
-v | 압축 정보를 화면에 출력 |
--best | 최대한 압축 |
bzcat {파일명}
- .bz2 파일내용 화면에 출력
bunzip2 {파일명}
- .bz2인 압축파일 해제
✏️연습문제
1. 아카이브란?
원래 보관소, 저장소의 뜻이지만 유닉스에서는 파일을 묶어 하나로 만든 것이라는 의미로 사용된다
2. 아카이브와 압축이 어떤 용도로 사용될 수 있는지 설명
1) 이동식 저장 장치에 보관하기 위해 사용된다.
2) 다른 시스템과 파일을 주고받는다.
3) 백업을 하기 위한 용도로 사용된다.
3. archive 디렉토리의 모든 내용을 ar.tar로 묶으시오.
tar cvf ar.tar*
4. ar.tar 파일의 내용을 보는 명령어
tar tvf ar.tar
5. archive 디렉토리에 있는 파일 중 확장자가 .txt인 모든 파일을 t.jar 파일로 묶고 압축
jar cvf t.jar *.txt
6. t.jar 파일에 색인 파일을 생성하고 색인 파일의 내용 확인
jar i t.jar
jar tvf t.jar
7.ar.tar 파일을 ar1.tar 파일로 복사
cp ar.tar ar1.tar
8.7번에서 생성한 파일을 각각 pack, compress, gzip, zip, jar, bzip2로 압축
pack ar1.tar
compress ar1.tar
gzip ar1.tar
zip ar1.tar.zip ar1.tar
jar cvf ar1.jar ar1.tar
bzip2 ar1.tar
9.8번의 압축결과 압축률이 가장 높은 명령
bzip2가 압축률이 가장 높다
10.생성된 6개의 압축파일 복원
unpack ar1.tar.z
uncompress ar1.tar.Z
gunzip ar1.tar.gz
unzip ar1.tar.zip
jar xvf ar1.tar.jar
bunzip2 ar1.tar.bz2
11.archive 디렉토리 삭제
rm -r archive
'유닉스 이론과 실습' 카테고리의 다른 글
chap6 .파일 접근 권한 관리하기 (0) | 2024.12.10 |
---|---|
chap7. 파일과 디렉토리 검색 (0) | 2024.12.09 |
chap 8. 프로세스와 사용자 명령 익히기 (0) | 2024.12.09 |
chap10. 인터넷과 통신 명령 익히기 (0) | 2024.12.08 |
chap11. 유닉스 유틸리티 이용하기 (1) | 2024.12.08 |