아카이브 vs 압축
- 아카이브(archive) = 여러 파일 혹은 디렉토리를 모아서 파일1개로 만들기
- 압축: 파일 크기를 작게 만들기
window, macOS => 아카이브와 압축이 구분되지 않음. 같이 수행됨. 주로 zip 을 사용 linux => 아카이브와 압축을 구분함. 아카이브는 tar, 압축은 gzip, bzip2 등을 사용 |
Tar
파일의 권한, 소유자, timestamp 등 속성을 유지하면서 파일을 한데 묶는다. 이것이 cp 명령어와 다른데, cp는 파일 단순복사이기 때문이다. 속성까지 복사하기 때문에, 만약 권한이 없는 파일을 아카이빙한다면 아카이브 해제시 속성이 올바로 복원되지 않는다.
Tar 명령으로 권한이 없는 파일까지 아카이브 시에는 권한을 부여받거나 root 사용자로 실행해야한다.
옵션 | 내용 |
c | (create) 새로운 아카이브 생성 |
d | (diff) 아카이브에 있는 파일과 비교 |
f | (file) 아카이브 생성시 파일명 지정 혹은 아카이브 해제시 디렉토리명 지정 |
r | (append) 아카에브에 지정한 파일 추가 |
t | (list) 아카이브 목록 출력 |
x | (extract) 지정한 파일은 아카이브에서 제외 |
v | (verbose) 처리과정 화면에 출력 |
원래 tar 명령으로는, window 처럼 파일을 모아 zip으로 만들 수 없었다. 기존에는 여러 파일을 압축시 tar 명령으로 아카이브 파일을 생성한 뒤 gzip 명령으로 아카이브 명령으로 파일을 압축했다. 압축명령이 포함된 지금은 tar로 바로 압축파일을 생성할 수 있다.
옵션 | 내용 |
J | .xz 파일로 압축 |
z | .gzip 파일로 압축 |
Z | .compress 파일로 압축 |
tar [옵션] [파일명] 과 같이 명령을 내린다. 옵션 앞에 - 를 붙여도 되고, 안붙여도 된다. 일반적으로 - 없이 알파벳만 붙인다.
ex)
tar tvf ./xxx.tgz: 아카이브에서 모든 파일목록 출력
tar xf ./xxx.tgz: 아카이브에서 모든 파일 추출
tar tvf ./xxx.tgz | grep "scouter.conf": 아카이브에서 목록을 출력하되 scouter.conf 파일이 있는지 확인하기
tar cf xxx.tar.gz dir01
tar czf xxx.tar.gz test01: test01 경로에 있는 파일을 xxx.tar.gz 라는 이름으로 아카이브+압축하기
파일 압축 및 해제
확장자 | 압축 | 해제 | 비고 |
.Z | compress | uncompress | 압축률 낮다 |
.gz | gzip | gunzip | 일반적인 경우에 많이 사용되는 명령 |
.bz2 | bzip2 | bunzip2 | |
.xz | xz | unxz | 압축률 높다 |
compress
옵션 | 내용 |
-d | (decompress) 파일 압축 해제 |
-c | .Z 외 확장자를 지정해 압축 |
-v | (verbose) 압축과정 화면에 표시(view) |
-V | compress 명령어 Version 정보 |
gzip
옵션 | 내용 |
-d | (decompress) 파일 압축 해제 |
-l | (list) 압축된 파일 목록 출력 |
-v | (verbose) 압축과정 표시 |
-1 | 빠른 압축(대신 덜 압축) |
-9 | 느린 압축(대신 더 압축) |
ex) compTest01.txt 압축하고 해제하기
ex) compTest01.txt 압축시 압축률 확인하고, 압축된 파일 목록 확인하기
xz
옵션 | 내용 |
-z | 강한 파일 압축 |
-d | (decompress) 강한 파일 압축 해제 |
-l | .xz 파일의 정보 출력 |
-v | (verbose) 압축과정 표시 |
'컴퓨터 기본 > Linux' 카테고리의 다른 글
[Linux] 주변장치(printer, sound card, scanner) 연결 (0) | 2022.09.01 |
---|---|
[Linux] 프로세스 유틸리티 명령어 (0) | 2022.08.30 |
[Linux] 프로세스 관리 (1) | 2022.08.28 |
[Linux] 셸(shell) 종류, 환경설정, history 명령 (0) | 2022.08.27 |
리눅스 linux 명령어 (0) | 2021.12.22 |