
ZIP 파일은 Windows, macOS 및 Linux 시스템에서 일반적으로 사용되는 범용 아카이브입니다. 일반적인 Linux 터미널 명령을 사용하여 zip 아카이브를 만들거나 파일을 압축 해제 할 수 있습니다.
ZIP 압축 아카이브 파일 형식
Windows 영역에서 ZIP 형식이 우세하기 때문에 ZIP 파일은 아마도 세계에서 가장 일반적인 압축 아카이브 형식 일 것입니다.
Linux에서는 .tar.gz 및 tar.bz2 파일이 일반적이지만 Windows 사용자는 ZIP 형식의 아카이브를 보낼 것입니다. 또한 일부 파일을 보관하여 Windows 사용자에게 보내려면 ZIP 형식이 모든 사람에게 가장 쉽고 가장 호환 가능한 솔루션이됩니다.
관련 : Linux에서 .tar.gz 또는 .tar.bz2 파일에서 파일을 추출하는 방법
zip, unzip 및 기타 유틸리티
macOS와 같은 Linux 및 Unix와 같은 운영 체제에는 ZIP 파일을 생성하고 파일을 추출 할 수있는 도구가 있다는 것을 이미 알고있을 것입니다. zip 과 unzip. 그러나 다음과 같은 전체 관련 유틸리티 제품군이 있습니다. zipcloak, zipdetails, zipsplit , zipinfo.
일부 Linux 배포판에서 이러한 유틸리티가 표준 설치에 포함되어 있는지 확인했습니다. 모든 유틸리티는 Ubuntu 19.04, 18.10 및 18.04에있었습니다. 그들은 Manjaro 18.04에도 존재했습니다. 페도라 29 포함 zip 과 unzip그러나 다른 유틸리티는 없으며 CentOS도 마찬가지입니다.
Fedora 29에 누락 된 요소를 설치하려면 다음 명령을 사용하십시오.
sudo dnf install perl-IO-Compress

CentOS 7에 누락 된 요소를 설치하려면 다음 명령을 사용하십시오.
sudo yum install perl-IO-Compress

위에서 언급하지 않은 Linux 배포에서 zip 유틸리티가 누락 된 경우 해당 Linux 배포의 패키지 관리 도구를 사용하여 필요한 패키지를 설치하십시오.
zip 명령으로 ZIP 파일을 작성하는 방법
ZIP 파일을 만들려면 zip 아카이브 파일의 이름 및 포함 할 파일 아카이브 이름에“.zip”확장자를 추가 할 필요는 없지만 그렇게해도 아무런 해가 없습니다.
라는 파일을 만들려면 source_code.zip 현재 디렉토리의 모든 C 소스 코드 파일과 헤더 파일을 포함하는 경우 다음 명령을 사용합니다.
zip source_code *.c *.h

각 파일은 추가 된대로 나열됩니다. 파일 이름과 해당 파일에서 달성 된 압축 량이 표시됩니다.

새로운 ZIP 보관 파일을 보면“.zip”파일 확장자가 자동으로 추가되었음을 알 수 있습니다 zip.
ls -l source_code.zip

출력을보고 싶지 않은 경우 zip ZIP 파일이 생성되면 -q (자동) 옵션.
zip -q source_code *.c *.h

ZIP 파일에 디렉토리 포함
ZIP 파일에 하위 디렉토리를 포함 시키려면 -r (재귀) 옵션을 선택하고 명령 행에 서브 디렉토리 이름을 포함하십시오. 이전과 같이 ZIP 파일을 작성하고 아카이브 서브 디렉토리도 포함 시키려면이 명령을 사용하십시오.
zip -r -q source_code archive/ *.c *.h

작성중인 ZIP 파일에서 파일을 추출 할 사람을 고려하기 위해 디렉토리에 포함 된 파일을 사용하여 ZIP 파일을 작성하는 것이 종종 예의입니다. ZIP 파일을받는 사람이 압축을 풀면 모든 파일이 컴퓨터의 디렉토리에 깔끔하게 배치됩니다.
다음 명령에서 work 디렉토리 및 모든 하위 디렉토리. 이 명령은 부모 디렉토리 의 work 폴더.
zip -r -q source_code work/

압축 수준 설정
ZIP 아카이브에 추가 될 때 파일에 적용되는 압축 량을 설정할 수 있습니다. 범위는 0에서 9까지이며 0은 전혀 압축되지 않습니다. 압축률이 높을수록 ZIP 파일을 만드는 데 시간이 더 걸립니다. 적당한 크기의 ZIP 파일의 경우 시차는 큰 차이가 없습니다. 그러나 적당한 크기의 ZIP 파일의 경우 기본 압축 (수준 6)이 충분할 것입니다.
얻기 위해 zip 특정 압축 수준을 사용하려면 다음과 같이 “-“를 사용하여 명령 행에서 옵션으로 숫자를 전달하십시오.
zip -0 -r -q source_code work/

기본 압축 수준은 6입니다. -6 옵션이지만, 그렇게해도 해가되지 않습니다.
zip -r -q source_code work/

최대 압축 수준은 9입니다.
zip -9 -r -q source_code work/

여기에서 파일과 디렉토리를 선택하면 압축 없음 (레벨 0)과 기본 압축 (레벨 6)의 차이는 400K입니다. 기본 압축과 최고 압축 수준 (레벨 9)의 차이는 4K입니다.
그다지 많지는 않지만 수백 또는 수천 개의 파일을 포함하는 아카이브의 경우 파일 당 약간의 추가 압축으로 인해 공간을 절약 할 수 있습니다.
ZIP 파일에 비밀번호 추가
ZIP 파일에 비밀번호를 추가하는 것은 쉽습니다. 사용 -e (암호화) 옵션을 선택하면 비밀번호를 입력하고 확인을 위해 다시 입력하라는 메시지가 표시됩니다.
zip -e -r -q source_code work/

unzip 명령으로 ZIP 파일의 압축을 푸는 방법
ZIP 파일에서 파일을 추출하려면 unzip 명령을 사용하고 ZIP 파일의 이름을 제공하십시오. 당신이 하다 “.zip”확장자를 제공해야합니다.
unzip source_code.zip

파일이 추출되면 터미널 창에 나열됩니다.

ZIP 파일에는 파일 소유권에 대한 세부 정보가 없습니다. 추출 된 모든 파일의 소유자는 파일을 추출하는 사용자로 설정되어 있습니다.
처럼 zip, unzip 있다 -q (자동) 옵션을 사용하면 파일을 추출 할 때 파일 목록을 볼 필요가 없습니다.
unzip -q source_code.zip

대상 디렉토리로 파일 추출
파일을 특정 디렉토리에 추출하려면 -d (디렉토리) 옵션을 선택하고 아카이브를 추출 할 디렉토리의 경로를 제공하십시오.
unzip -q source_code.zip -d ./development

비밀번호로 보호 된 ZIP 파일 추출
ZIP 파일이 비밀번호로 생성 된 경우 unzip 비밀번호를 묻습니다. 올바른 비밀번호를 제공하지 않으면 unzip 파일을 추출하지 않습니다.
unzip -q source_code.zip

다른 사람이 비밀번호를 보거나 명령 내역에 비밀번호를 저장하는 데 신경 쓰지 않는다면 명령 줄에 비밀번호를 제공 할 수 있습니다. -P (비밀번호) 옵션. (대문자“P”를 사용해야합니다.)
unzip -P fifty.treacle.cutlass -q source_code.zip

파일 제외
특정 파일 또는 파일 그룹을 추출하지 않으려면 -x (제외) 옵션. 이 예에서는“.h”확장자로 끝나는 파일을 제외한 모든 파일을 추출하려고합니다.
unzip -q source_code.zip -x *.h

파일 덮어 쓰기
아카이브를 추출했지만 실수로 추출 된 파일 중 일부를 삭제했다고 가정하십시오.
이를위한 빠른 수정은 파일을 다시 한 번 추출하는 것입니다. 하지만 이전과 같은 디렉토리에서 ZIP 파일을 추출하려고하면 unzip 파일 덮어 쓰기에 대한 결정을 요구합니다. 다음 응답 중 하나를 기대합니다.
따로 r 응답의 대소 문자를 구분합니다.
- 와이: 예,이 파일을 덮어 씁니다
- 엔: 아니요,이 파일을 덮어 쓰지 마십시오
- ㅏ: 모두, 모든 파일을 덮어 씁니다
- 엔: 없음, 파일을 덮어 쓰지 않습니다
- 아르 자형: 이름을 바꾸고이 파일을 추출한 후 새 이름을 지정하십시오. 새 이름을 입력하라는 메시지가 표시됩니다.

강제로 unzip 기존 파일을 덮어 쓰려면 -o (덮어 쓰기) 옵션.
unzip -o -q source_code.zip

누락 된 파일을 바꾸는 가장 효율적인 방법은 unzip 아카이브에있는 파일 만 추출하십시오. 아니 대상 디렉토리에 이렇게하려면 -n (덮어 쓰기 금지) 옵션.
unzip -n source_code.zip

ZIP 파일 내부 조사
ZIP 파일을 추출하기 전에 파일 목록을 보는 것이 유용하고 유익한 경우가 많습니다. 당신은 이것을 할 수 있습니다 -l (목록 아카이브) 옵션. 관통 less 출력을 관리 가능하게 만듭니다.
unzip -l source_code.zip | less

결과는 ZIP 파일 내의 디렉토리와 파일, 길이 및 아카이브에 추가 된 시간과 날짜를 보여줍니다. “q”를 눌러 종료하십시오 less.

ZIP 파일 내부를 들여다 볼 수있는 다른 방법이 있습니다.
zipcloak 명령으로 비밀번호 추가
ZIP 파일을 만들었지 만 비밀번호 추가를 잊어 버린 경우 어떻게해야합니까? 다음을 사용하여 ZIP 파일에 비밀번호를 빠르게 추가 할 수 있습니다. zipcloak 명령. 명령 행에서 ZIP 파일 이름을 전달하십시오. 비밀번호를 묻는 메시지가 나타납니다. 암호를 다시 입력하여 확인해야합니다.
zipcloak source_code.zip

zipdetails 명령으로 파일 세부 사항보기
그만큼 zipdetails 명령은 당신에게 보여줄 것입니다 제비 ZIP 파일에 관한 정보 이 명령이 줄 수있는 출력량을 처리 할 수있는 유일한 방법은 less .
zipdetails source_code.zip | less

ZIP 파일이 암호로 보호되어 있어도 정보에는 파일 이름이 포함됩니다. 이 유형의 정보는 ZIP 파일 내에 메타 데이터로 저장되며 암호화 된 데이터의 일부가 아닙니다.

zipgrep 명령으로 파일 내부 검색
그만큼 zipgrep 명령은 당신이 검색 할 수 있습니다 파일 내 ZIP 파일로. 다음 예에서는 ZIP 파일 내의 어떤 파일에“keyval.h”라는 텍스트가 있는지 알고 싶습니다.
zipgrep keyval.h source_code.zip

우리는 파일을 볼 수 있습니다 slang.c 과 getval.c 또한 “keyval.h”라는 문자열을 포함합니다. 또한 ZIP 파일의 다른 디렉토리에이 파일 각각에 대해 두 개의 사본이 있음을 알 수 있습니다.
zipinfo 명령으로 정보보기
그만큼 zipinfo 명령은 ZIP 파일을 들여다 볼 수있는 또 다른 방법을 제공합니다. 이전과 같이 출력을 less.
zipinfo source_code.zip | less

왼쪽에서 오른쪽으로 출력이 표시됩니다.
- 파일 권한
- ZIP 파일을 작성하는 데 사용되는 도구 버전
- 원본 파일 크기
- 파일 디스크립터 (아래 설명)
- 압축 방법 (이 경우 수축)
- 데이터 및 타임 스탬프
- 파일 이름과 디렉토리
파일 디스크립터는 두 문자로 구성됩니다. 첫 번째 문자는 텍스트 또는 이진 파일을 나타내는 “t”또는 “b”입니다. 대문자 인 경우 파일이 암호화됩니다. 두 번째 문자는 네 문자 중 하나 일 수 있습니다. 이 문자는이 파일에 포함 된 메타 데이터 유형 (없음, 확장 로컬 헤더, “추가 필드”또는 둘 다)을 나타냅니다.
- -: 둘 다 존재하지 않으면 문자는 하이픈이됩니다
- 엘: 확장 로컬 헤더가 있지만 추가 필드가없는 경우
- 엑스: 확장 로컬 헤더가 없지만 추가 필드가있는 경우
- 엑스: 확장 로컬 헤더가 있고 추가 필드가있는 경우

zipsplit 명령을 사용하여 파일 분할
ZIP 파일을 다른 사람에게 보내야하지만 파일 전송에 크기 제한이나 문제가있는 경우 zipsplit 명령을 사용하여 원본 ZIP 파일을 더 작은 ZIP 파일 세트로 분할하십시오.
그만큼 -n (크기) 옵션을 사용하면 새 ZIP 파일 각각에 대한 최대 크기를 설정할 수 있습니다. 이 예에서는 source_code.zip 파일. 새 ZIP 파일이 100KB (102400 바이트)보다 큰 것을 원하지 않습니다.
zipsplit -n 102400 source_code.zip

선택한 크기는 ZIP 파일의 파일 크기보다 작을 수 없습니다.
이 명령을 사용하면 Linux 터미널을 떠나지 않고도 자신의 ZIP 파일을 만들고, 수신 한 ZIP 파일의 압축을 풀고, 다양한 다른 작업을 수행 할 수 있습니다.








