파일 아카이브랑 압축: 명령어 tar
, gzip
, zip
1. 아카이빙과 압축 개념
아카이빙이 뭐야? 왜 필요한 거야?
책으로 가득 찬 책장을 상상해 봐. 책들을 깔끔하게 정리하려면 상자에 넣어서 보관할 수 있겠지(아카이빙). 그리고 더 촘촘히 정리하려면 끈으로 묶어야 할 거야(압축). 컴퓨터 세계에서 아카이빙이라는 건 여러 파일을 하나의 컨테이너(아카이브)로 묶는 과정이고, 압축은 그 크기를 줄이는 걸 의미해.
근데 왜 이게 필요할까? 몇 가지 예를 들어줄게:
- 데이터 저장: 파일을 아카이브에 묶어두면 하나의 파일처럼 쉽게 이동하거나 복사할 수 있어.
- 데이터 전송: 압축 덕분에 데이터 크기가 줄어들어서 네트워크로 전송하는 속도가 빨라져.
- 백업: 아카이빙은 데이터를 보호하고 복원을 더 간단하게 만들어줘.
참, 1000개의 파일을 이메일로 보내려고 해본 적 있어? 아카이빙 없이 하면 완전 고문 같을 걸!
2. tar
명령어: 아카이브 생성 및 관리
tar란 무엇인가?
tar
는 Linux에서 파일을 아카이빙하는 유틸리티야. tar
자체는 파일을 압축하지 않고 단순히 파일을 하나로 묶어. 파일을 압축하고 싶으면 (gzip
, bzip2
등)과 함께 사용할 수 있어.
일반적인 구문
tar [옵션] <아카이브> <파일/폴더>
주요 옵션
-c
: 새로운 아카이브 생성.-v
: 작업 과정 상세 출력 (추가된 파일에 대한 정보를 모두 보여줌).-f
: 아카이브 이름 지정.-x
: 아카이브에서 파일 추출.-t
: 아카이브 내용 표시.
사용 예제
1. 아카이브 생성
tar -cvf archive.tar file1.txt file2.txt
file1.txt
와file2.txt
두 파일로archive.tar
아카이브를 생성해.-c
: 새로운 아카이브 생성.-v
: 파일 추가 과정을 터미널에 출력해.-f
: 아카이브 이름을archive.tar
로 지정해.
2. 폴더 아카이브
tar -cvf project.tar /home/user/project
/home/user/project
폴더를 포함하는project.tar
아카이브를 생성해.
3. 아카이브 추출
tar -xvf archive.tar
- 현재 디렉토리에
archive.tar
아카이브를 해제해.
4. 아카이브 내용 보기
tar -tvf archive.tar
- 아카이브에 있는 파일과 폴더 목록을 보여줘.
3. gzip
을(를) 사용한 압축
gzip
은(는) 무엇을 하나요?
만약 tar
가 상자라면, gzip
은 그 상자의 크기를 줄이는 진공 패키지라고 할 수 있어. gzip
은(는) 압축 알고리즘을 사용해서 데이터를 줄이는 도구로, 공간을 절약하는 데 딱이야.
일반적인 구문
gzip [옵션] <파일>
사용 예시
1. 파일 압축
gzip file1.txt
- 명령 실행 후
file1.txt
파일이file1.txt.gz
로 변경돼.
2. 파일 압축 해제
gunzip file1.txt.gz
- 원본 파일
file1.txt
을(를) 복원해.
3. tar
과(와) gzip
을(를) 사용한 보관 및 압축
tar -czvf archive.tar.gz file1.txt file2.txt
file1.txt
와file2.txt
파일을 묶고 압축하는archive.tar.gz
아카이브를 생성해.
4. 압축된 아카이브 추출
tar -xzvf archive.tar.gz
archive.tar.gz
아카이브의 내용을 추출하고 해제해.
4. 압축된 아카이브 생성용 유틸리티 zip
tar
와의 차이점은?
tar
와는 다르게 zip
은 바로 압축된 아카이브를 만들며, 기본적으로 Windows 및 다른 시스템에서 사용 가능합니다.
일반적인 문법
zip [옵션들] <아카이브> <파일/폴더>
사용 예시
1. zip 아카이브 생성
zip archive.zip file1.txt file2.txt
archive.zip
라는 아카이브를 생성하며,file1.txt
와file2.txt
파일들을 포함시킵니다.
2. 폴더 아카이브
zip -r project.zip /home/user/project
project.zip
라는 아카이브를 생성하며,/home/user/project
폴더 전체를 포함합니다.-r
: 파일과 폴더를 재귀적으로 추가합니다.
3. zip 아카이브 압축 해제
unzip archive.zip
archive.zip
아카이브의 내용을 추출합니다.
5. tar
, gzip
그리고 zip
간의 차이점
유틸리티 | 아카이빙 | 압축 | 접근 방식 | 주요 용도 |
---|---|---|---|---|
tar |
✅ | ❌ | 파일 묶음 | 압축 없이 파일을 하나의 아카이브로 결합 |
gzip |
❌ | ✅ | 압축 | 개별 파일이나 아카이브의 크기를 줄이기 |
zip |
✅ | ✅ | 올인원 | 이동 가능한 아카이브 생성 |
6. 실습 과제
/home/user/documents
폴더의 내용을 기반으로backup.tar
아카이브를 작성하세요.gzip
을 사용하여backup.tar
를 압축하여backup.tar.gz
파일을 만드세요.- 아카이브를 다른 디렉토리, 예를 들어
/tmp/backup
에 압축을 푸세요. doc1.txt
와doc2.txt
파일로docs.zip
zip 아카이브를 만드세요.unzip
명령어를 사용하여docs.zip
의 내용을 추출해보세요.
7. 일반적인 실수 및 유의점
1. "Permission denied" 오류 파일 접근이 제한된 경우 아카이브하려고 하면 오류 메시지를 받게 될 거야. 명령어를 관리자 권한으로 실행해보자: sudo
.
2. 옵션이 헷갈려? tar
옵션은 가끔 헷갈릴 수 있어. 순서가 중요하다는 거 잊지마: 예를 들어, 먼저 작업 -c
또는 -x
를 지정하고 그다음 다른 옵션을 추가해.
3. 압축된 아카이브가 열리지 않아 실수로 이미 압축된 파일에 추가로 압축을 걸었다면 (예: gzip archive.tar.gz
), 당황하지 마. 그냥 두 번 풀어주면 돼.
4. 너무 큰 아카이브 zip
명령어를 사용할 때 임시 파일이나 캐시를 제외해서 아카이브 크기를 줄여봐: zip -r archive.zip folder -x "*.tmp"
.
5. 호환성 문제 Windows 사용자가 파일을 필요로 한다면, zip
을 사용하는 게 좋아. 그쪽 OS에서 더 잘 지원돼.
이렇게 Linux에서 데이터 아카이브 및 압축을 배우게 됐어. 이 도구들은 대용량 데이터 작업을 간소화하거나, 데이터 전송 및 손실 방지에 유용할 거야. 다음 주제로 넘어가자—지식은 점점 더 쌓여갈 테니까! 🎉
GO TO FULL VERSION