Aller au contenu principal

8. Compress and Uncompress Files


gzip, bzip2, xz, zip 등의 유틸리티를 사용하여 Linux에서 효율적인 파일 관리를 위해 파일을 압축하고 압축 해제하는 방법을 알아봅니다.

파일 압축은 저장 공간을 줄이고 시스템 간 파일 전송 속도를 높여줍니다. 대부분의 Linux 배포판에는 gzip, bzip2, xz 세 가지 내장 압축 유틸리티가 포함되어 있습니다.

gzip과 bzip2를 사용한 기본 압축

$ gzip file1
$ bzip2 file2

이 명령어를 실행하면 각 파일이 새 파일로 압축됩니다(예: file1file1.gz, file2file2.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를 사용한 여러 파일 아카이브 및 압축 방법도 학습했습니다. 이러한 방법들은 파일 크기를 효율적으로 관리하고 파일 전송을 원활하게 합니다.