8. Compress and Uncompress Files
gzip, bzip2, xz, zip 등의 유틸리티를 사용하여 Linux에서 효율적인 파일 관리를 위해 파일을 압축하고 압축 해제하는 방법을 알아봅니다.
파일 압축은 저장 공간을 줄이고 시스템 간 파일 전송 속도를 높여줍니다. 대부분의 Linux 배포판에는 gzip, bzip2, xz 세 가지 내장 압축 유틸리티가 포함되어 있습니다.
gzip과 bzip2를 사용한 기본 압축
$ gzip file1
$ bzip2 file2
이 명령어를 실행하면 각 파일이 새 파일로 압축됩니다(예: file1은 file1.gz, file2는 file2.bz2). 원본 파일은 자동으로 삭제됩니다.
파일 압축 해제
gzip, bzip2, xz에 해당하는 압축 해제 명령어로 원본 파일을 복원합니다:
$ gunzip file1.gz
$ bunzip2 file2.bz2
$ unxz file3.xz
원본 파일 유지하기
원본을 삭제하지 않고 압축하려면 --keep(-k) 옵션을 사용합니다:
$ gzip --keep file1
$ bzip2 --keep file2
$ xz --keep file3
사용 가능한 옵션을 확인하려면 --help 플래그를 사용하세요:
$ gzip --help
압축된 파일 내용 확인
--list 옵션으로 압축 파일의 내용을 확인합니다:
$ gzip --list file1
compressed uncompressed ratio uncompressed_name
71 78 39.7% file1
zip 유틸리티 사용하기
gzip, bzip2, xz가 개별 파일 압축에 적합한 반면, zip 유틸리티는 전체 디렉토리나 여러 파일을 하나의 아카이브로 압축할 수 있습니다.
단일 파일을 zip으로 압축:
$ zip archive.zip file1
adding: file1 (deflated 40%)
전체 디렉토리 압축:
$ zip -r archive.zip Pictures/
adding: Pictures/ (stored 0%)
adding: Pictures/family_dog.jpg (stored 0%)
zip 아카이브 추출:
$ unzip archive.zip
tar를 이용한 아카이브와 압축
gzip과 같은 유틸리티는 여러 파일을 하나의 아카이브로 압축하는 것을 지원하지 않습니다. 대신 tar를 사용하여 파일을 묶은 후 압축합니다.
tar 아카이브 생성 후 압축:
$ tar --create --file archive.tar file1
$ gzip archive.tar
# archive.tar.gz 생성됨
단일 단계로 아카이브 생성 및 압축 (현대 tar):
$ tar --create --gzip --file archive.tar.gz file1
$ tar --create --bzip2 --file archive.tar.bz2 file1
$ tar --create --xz --file archive.tar.xz file1
$ tar --create --autocompress --file archive.tar.gz file1
추출 시 tar는 압축 유형을 자동으로 감지하므로 압축 해제 방법을 별도로 지정할 필요가 없습니다.
요약
gzip, bzip2, xz, zip 등 다양한 도구를 사용하여 Linux에서 파일을 압축하고 압축 해제하는 방법을 배웠습니다. tar를 사용한 여러 파일 아카이브 및 압축 방법도 학습했습니다. 이러한 방법들은 파일 크기를 효율적으로 관리하고 파일 전송을 원활하게 합니다.