파일 압축
- 시스템 파일이나 데이터를 백업할 때 필요 참고) rsync
- 압축을 통해 디스크 공간으 절약하거나 데이터 전송 시간을 줄일 수 있음
- 다양한 압축 기술이 존재
- 공간 효율과 압축 속도에서 차이가 남, gzip, bzip2, xz, zip 등
gzip 명령
- 압축 파일의 형식이자 파일의 압축과 해제를 위한 프로그램
- 가장 널리 사용되는 리눅스의 기본 압축 프로그램
- 초기 Unix 시스템의 압축 프로그램을 GNU 프로젝트에서 수정한 버전
gzip [options] [files]
- 압축한 후 원본 파일은 .gz 확장자를 갖는 파일로 대체됨
- gzip file을 수행하면 file은 없어지고 file.gz이 만들어짐
옵션 | 설명 |
-c | 결과를 표준 출력으로 보내고 원본 파일은 그대로 유지됨 |
-d | 압축을 풀 때 사용하며 gunzip 명령과 같음 |
-r | 인수로 디렉터리가 주어질 때 디렉터리에 포함된 모든 파일을 재귀적으로 탐색하여 압축함 |
-t | 압축 파일의 무결성을 검사함 |
-v | 압축 또는 해제하면서 파일의 이름과 압축률을 출력해줌 |
-number | 압축률을 의미하는 1~9 사이의 값을 주며 기본값은 6 -1은 압축을 빨리, -9 압축률을 높이여라 |
gunzip 명령
- .gz, .Z, .tgz, .taz 등의 확장자를 가진 압축파일을 풀고 확장자를 제거함(.tgz은 .tar.gz, .taz는 .tar.Z을 의미)
옵션 | 설명 |
gzip foo.txt | 압축 파일 foo.txt.gz이 만들어지고 원본 파일은 없어짐 |
gzip -d foo.txt.gz | 압축을 풀고 원본 파일을 다시 만듦. 압축 파일은 없어짐 |
gzip *.txt | 확장자가 .txt인 모든 파일에 대해 개별적으로 압축함 |
gunzip -d *.gz | 모든 압축 파일을 풀고 원본 파일을 만듦 |
gzip -c file1 > bar.gz gzip -c file2 >> bar.gz |
file1을 압축하여 bar.gz을 만들고 file2를 압축하여 bar.gz에 추가함 |
gunzip -c bar.gz | 압축을 풀고 결과를 표준 출력으로 보냄. 기존 압축 파일은 그대로 유지함 |
gzip -c file1 file2 > baz.gz | 두 파일을 각각 압축한 후 연결시켜 압축 파일 bar.gz을 만듦 |
bzip2 명령
- 블록 정렬 압축 알고리즘을 사용한 파일 압축 프로그램
- gzip과 유사하나 압축 효율이 매우 좋음(압축 속도는 느림)
- 압축 후 파일 크기가 매우 작아짐(큰 파일에 사용하면 좋음)
- 사용법은 gzip과 유사하며 압축 파일의 확장자로 .bz2를 사용
- bzip2 file은 원본 파일을 없애고 file.bz2를 만듦
- bzip2 -k file 는 원본 파일을 보존함
- bzip2 -d file.bz2 은 bunzip2 file.bz2과 같음
- bunzip2 -c file.bz2는 bzcat file.bz2와 같음
tar 명령
- 여러 파일을 하나의 아카이브 파일로 묶거나 아카이브 파일에서 파일을 추출하는 명령
- 아카이브는 백업 등의 목적으로 여러 파일을 하나로 묶은 것
- tar mode [options] [tarfile] [pathnames ...]
- tarfile은 아카이브 (묶음 파일)을 의미
- pathname은 아카이브에 넣을 파일이나 디렉터리
- 아카이브 파일의 확장자는 보통 .tar를 사용함
- 모드나 옵션을 사용할 때 대시(-)를 사용하지 않는 편임
모드 | 설명 |
A | tar 파일을 아카이브에 추가 |
c | 새로운 아카이브의 생성 |
x | 아카이브로부터 파일을 추출 |
r | 아카이브에 파일을 추가 |
t | 아카이브에 포함된 파일의 목록을 출력 |
옵션 | 설명 |
f | 아카이브 파일을 지정(사용하지 않으면 아카이브 내용이 화면으로 출력됨) |
v | 처리 과정에서 대상 파일을 보여줌 |
z | tar 명령에서 gzip을 사용(.tar.gz) |
j | tar 명령에서 bzip2를 사용(.tar.bz2) |
옵션 | 설명 |
tar cvf foo.tar *.c | 현재 디렉터리에서 .c로 끝나는 모든 파일을 foo.tar로 묶어 만들고 진행 결과를 출력함 |
tar tvf foo.tar | 아카이브 foo.tar에 있는 파일 목록을 출력함 |
tar xvf foo.tar | 현재 디렉터리에 아카이브 foo.tar를 풀어줌 |
tar cvf bar.tar backup/ | 디렉터리 backup의 내용을 묶어 아카이브 bar.tar를 만듦 |
tar cvfz baz.tar.gz backup/ | 위와 같으나 아카이브를 만들 때 gzip을 이용하여 압축함 |
tar xvfz baz.tar.gz | gzip으로 압축된 아카이브를 풀어줌 |
'기록하는 중 > UNIX' 카테고리의 다른 글
[Unix] 변수의 사용 (0) | 2023.12.22 |
---|---|
[Unix] 셸 스크립트 (0) | 2023.12.21 |
[Unix] DNF (0) | 2023.12.17 |
[Unix] RPM (0) | 2023.12.17 |
[Unix] 패키지 관리 (0) | 2023.12.12 |