리눅스 zip 파일 압축 풀기
가장 널리 사용하는 압축 파일 포맷인 zip은 여러 개의 파일을 하나의 파일로 묶어서 전송하기 위한 용도로 사용하는 등 단순히 파일의 용량을 줄이는 용도 말고도 여러가지 파일 전송 수단으로 사용되고 있습니다.
이글에서는 리눅스 환경에서 다운로드 받거나 전송받은 zip 파일의 압축을 해제하는 여러가지 방법들에 대해서 안내합니다.
unzip 설치
리눅스에서 zip 파일 압축을 푸는 프로그램은 unzip이며 패키지로 배포되고 있습니다. 먼저 패키지를 설치합니다.
sudo apt install unzip
CentOS는 yum 패키지 관리자로 설치합니다.
sudo yum install unzip
zip 파일 압축 풀기
zip 파일의 압축을 풀 때는 다음 커맨드를 사용합니다. 압축 파일이 있는 경로와 같은 위치에 압축 파일(들)이 해제됩니다.
unzip data.zip
unzip 커맨드를 사용해서 zip 파일 압축을 풀면 압축이 풀려서 생성되는 모든 파일의 목록이 출력됩니다. 목록을 출력하지 않으려면 "-q" 옵션을 사용합니다.
unzip -q data.zip
다른 디렉토리에 압축 풀기
압축 파일을 해제하면 기본적으로 압축파일이 있는 디렉토리에 압축이 풀립니다. 압축이 풀리는 파일들이 위치할 디렉토리를 바꾸려면 "-d" 옵션을 사용해 타겟 디렉토리를 표시합니다.
unzip data.zip -d /var/www/apost
패스워드로 암호화 된 zip 파일 압축 해제
패스워드로 암호화 된 zip 파일은 "-P" 옵션으로 압축 파일의 패스워드를 입력해서 압축을 해제할 수 있습니다.
unzip -P zIpPassWorD data.zip
파일을 압축 해제에서 제외하기
압축 파일 안의 파일들 중 해제할 필요가 없거나 용량이 너무 커서 제외할 파일들 "-x" 옵션으로 표시해서 압축에서 제외할 수 있습니다. 여러 개의 파일을 해제에서 제외하려면 공백으로 띄워서 파일 이름을 나열하면 됩니다.
제외할 파일을 와일드 카드를 사용해서 필터링 조건에 해당하는 파일들을 모두 제외할 수도 있습니다. *.tmp 로 제외할 파일을 표시하면 tmp 확장자를 가진 파일은 모두 해제에서 제외됩니다.
unzip data.zip -x imgs.thumb *.tmp
압축 해제 파일을 덮어쓰기
압축 파일을 해제할 때 같은 파일이 있으면 다음처럼 파일을 덮어쓰는 사용자 선택을 요청합니다.
unzip data.zip -d unzipped
Archive: data.zip
replace unzipped/alternatives.log? [y]es, [n]o, [A]ll, [N]one, [r]ename:
덮어쓸지 여부를 일일이 확인하고 싶지 않고 그냥 덮어쓰고 싶을 때는 "-o" 옵션을 사용합니다.
unzip -o data.zip
반대로 기존에 있는 파일들은 덮어쓰지 않고 없는 파일만 압축을 풀려면 "-n" 옵션을 사용하면 대상 디렉토리에 없는 파일만 압축파일에서 해제합니다.
unzip -n data.zip
여러 개의 zip 파일 압축을 풀기
와일드 카드 문자를 사용해서 여러 개의 압축 파일을 한꺼번에 압축 해제할 수 있습니다.
와일드 카드를 사용할 때는 따옴표나, 쌍따옴표를 사용해서 파일 이름을 감싸야 합니다. 감싸지 않으면 와일드카드 문자 자체를 파일 이름으로 인식합니다.
unzip -n "*.zip" -d unzipped
Archive: 20240326-backup.zip
inflating: unzipped/auth.log.1
inflating: unzipped/kern.log.1
inflating: unzipped/syslog.1
inflating: unzipped/ufw.log.1
Archive: 20240325-backup.zip
2 archives were successfully processed.
zip 파일 내용 확인하기
압축을 해제하기 전에 압축 파일에 어떤 파일들이 포함되어 있는지 자세한 정보를 확인하고 싶으면 "-l" 옵션을 사용합니다. 디렉토리 목록을 보는 것과 유사하게 압축 파일 안의 파일 목록을 콘솔에 표시해줍니다.
파일 목록 정보에는 파일 크기, 파일 최종 수정 날짜, 파일 개수, 압축 전 전체 파일들의 크기 합계가 표시됩니다.
unzip -l 20240325-backup.zip
Archive: 20240325-backup.zip
Length Date Time Name
--------- ---------- ----- ----
11527 2024-03-23 18:06 alternatives.log
31900 2024-03-25 22:17 auth.log
166558 2024-03-23 23:39 auth.log.1
6500 2024-03-16 23:39 auth.log.2.gz
25595 2024-03-23 16:31 cloud-init-output.log
509496 2024-03-23 16:31 cloud-init.log
42627 2024-03-23 01:44 dmesg.0
12629 2024-03-23 01:38 dmesg.1.gz
12637 2024-03-23 01:19 dmesg.2.gz
12625 2024-03-23 01:08 dmesg.3.gz
12624 2024-03-14 02:19 dmesg.4.gz
131924 2024-03-25 21:51 dpkg.log
308147 2024-03-25 22:21 kern.log
1247258 2024-03-23 23:59 kern.log.1
67158 2024-03-16 23:59 kern.log.2.gz
1791982 2024-03-24 00:00 syslog.1
106391 2024-03-17 00:00 syslog.2.gz
56192 2024-03-25 11:21 ubuntu-advantage.log
306221 2024-03-25 22:21 ufw.log
1000739 2024-03-23 23:59 ufw.log.1
42234 2024-03-16 23:59 ufw.log.2.gz
--------- -------
5902964 21 files