반응형
tar 명령어란?
tar은 파일 및 디렉토리를 하나의 아카이브 파일로 묶거나 풀 때 사용하는 리눅스 명령어입니다.
"tape archive"의 약자로, 데이터를 백업하거나 전송할 때 유용합니다. 아카이브 파일의 확장자는 보통 .tar입니다.
압축 자체는 지원하지 않지만, gzip, bzip2 등의 압축 도구와 결합하여 사용됩니다.
- tar 명령어는 여러 파일을 하나로 묶거나(아카이브), 해제하는 데 사용.
- **압축 옵션(-z, -j, -J)**과 결합하여 데이터를 효율적으로 관리.
- -c, -x, -t 등의 옵션을 조합해 다양한 파일 관리 작업 수행 가능.
1. tar 명령어 기본 구문
tar [옵션] [아카이브 파일 이름] [대상 파일/디렉토리]
- 옵션:
- -c: 아카이브 생성 (Create).
- -x: 아카이브 추출 (Extract).
- -t: 아카이브 내용 확인 (List).
- -v: 진행 상태를 상세히 출력 (Verbose).
- -f: 아카이브 파일 이름 지정 (File).
- -z: gzip으로 압축하거나 압축 해제 (gzip).
- -j: bzip2로 압축하거나 압축 해제 (bzip2).
- -J: xz로 압축하거나 압축 해제 (xz).
- -r: 기존 아카이브에 파일 추가 (Append).
2. 주요 사용 사례
2-1. 아카이브 생성
- 디렉토리를 하나의 아카이브로 묶기:
- archive.tar: 생성될 아카이브 파일 이름.
- mydir/: 묶으려는 디렉토리.
- tar -cvf archive.tar mydir/
- gzip으로 압축하여 생성:
- -z: gzip 압축 추가.
- tar -czvf archive.tar.gz mydir/
- bzip2로 압축하여 생성:
- -j: bzip2 압축 추가.
- tar -cjvf archive.tar.bz2 mydir/
2-2. 아카이브 추출
- 아카이브 파일 풀기:
- tar -xvf archive.tar
- gzip으로 압축된 파일 추출:
- tar -xzvf archive.tar.gz
- bzip2로 압축된 파일 추출:
- tar -xjvf archive.tar.bz2
- 특정 파일만 추출:
- tar -xvf archive.tar mydir/file1.txt
2-3. 아카이브 내용 확인
- 아카이브 파일의 내용 보기:
- tar -tvf archive.tar
- gzip 아카이브 내용 보기:
- tar -tzvf archive.tar.gz
3. 유용한 옵션
옵션 설명
-c | 새로운 아카이브 생성. |
-x | 아카이브 파일 추출. |
-t | 아카이브 내용 확인. |
-v | 처리 중인 파일을 상세히 출력. |
-f | 아카이브 파일 이름 지정. |
-z | gzip 압축/해제. |
-j | bzip2 압축/해제. |
-J | xz 압축/해제. |
--exclude | 특정 파일 또는 디렉토리를 아카이브에서 제외. |
-C | 특정 디렉토리로 이동 후 작업 수행. |
4. 실전 예제
4-1. 특정 파일 제외하고 아카이브 생성
tar --exclude='*.log' -cvf archive.tar mydir/
- .log 파일을 제외하고 mydir의 내용을 아카이브.
4-2. 디렉토리 변경 후 아카이브 추출
tar -xvf archive.tar -C /tmp
- /tmp 디렉토리로 이동 후 추출.
4-3. 파일 추가
tar -rvf archive.tar newfile.txt
- archive.tar에 newfile.txt 추가.
4-4. 손상된 아카이브 복구
tar --ignore-failed-read -xvf archive.tar
- 읽기 오류를 무시하고 가능한 파일만 추출.
5. 자주 사용하는 조합
- gzip + tar
- 생성:
tar -czvf archive.tar.gz mydir/
- 추출:
tar -xzvf archive.tar.gz
- 생성:
- bzip2 + tar
- 생성:
tar -cjvf archive.tar.bz2 mydir/
- 추출:
tar -xjvf archive.tar.bz2
- 생성:
- xz + tar
- 생성:
tar -cJvf archive.tar.xz mydir/
- 추출:
tar -xJvf archive.tar.xz
- 생성:
6. 출력 예제
아카이브 생성
tar -cvf archive.tar file1 file2
file1
file2
아카이브 내용 확인
tar -tvf archive.tar
-rw-r--r-- user group 1024 2024-11-22 file1
-rw-r--r-- user group 2048 2024-11-22 file2
아카이브 추출
tar -xvf archive.tar
file1
file2
7. bzip2와 gzip 아카이브의 차이점
bzip2와 gzip은 리눅스에서 파일을 압축할 때 사용하는 두 가지 주요 압축 도구입니다. tar 명령어와 함께 사용하면 .tar.bz2 또는 .tar.gz 아카이브를 생성할 수 있습니다. 하지만 두 도구는 압축 방식과 성능 측면에서 차이점이 있습니다.
주요 차이점 비교
gzip | bzip2 | |
압축 방식 | DEFLATE 알고리즘 | Burrows-Wheeler 변환(BWT) 및 Huffman 코딩 |
압축률 | 낮음 (파일 크기 큼) | 높음 (더 작은 파일 크기) |
압축 속도 | 빠름 | 느림 |
압축 해제 속도 | 매우 빠름 | 상대적으로 느림 |
CPU 사용량 | 적음 | 많음 |
파일 확장자 | .gz | .bz2 |
사용 명령어 | gzip, gunzip | bzip2, bunzip2 |
다중 스레드 지원 | 기본적으로 미지원 | 기본적으로 미지원 (병렬 처리 도구 사용 가능) |
선택 기준
- gzip:
- 빠른 압축/해제가 필요한 경우.
- 압축률이 상대적으로 중요하지 않은 상황에서 적합.
- CPU 자원을 적게 사용해야 하는 환경.
- bzip2:
- 최대한 작은 파일 크기가 필요한 경우.
- 압축 시간이 오래 걸려도 괜찮은 경우.
- 저장 공간이 제한적인 환경에서 적합.
압축 속도 및 크기 비교
압축할 파일: sample_file (100MB 텍스트 파일 기준)
도구압축 명령어압축 후 크기압축 시간
gzip | gzip sample_file | 25MB | 2초 |
bzip2 | bzip2 sample_file | 20MB | 10초 |
압축 해제 속도 비교
압축 해제 명령어:
- gzip: gunzip sample_file.gz
- bzip2: bunzip2 sample_file.bz2
도구해제 시간
gzip | 1초 |
bzip2 | 3초 |
반응형
'Computer Science > RHCSA® REDHAT9' 카테고리의 다른 글
[RHCSA #7] Chapter 5: SSH 원격접속(Redhat 9) (0) | 2024.11.25 |
---|---|
[RHCSA #6] Chapter4: 텍스트 파일 관리 (Redhat 9) (0) | 2024.11.24 |
[RHCSA #4] Chapter 3: 필수 파일 관리 도구 (0) | 2024.11.23 |
[RHCSA #3] Chapter 2: Using Essential Tools 문제 (0) | 2024.11.22 |
[RHCSA #2] Chapter 2: 필수 도구 사용하기 (Using Essential Tools) (0) | 2024.11.22 |