터미널에서 zip 파일의 압축을 푸는 방법은 무엇입니까?


1413

인터넷에서 .zip 파일을 다운로드했습니다. 터미널을 사용하여 파일의 압축을 풀고 싶습니다. 이를 수행하는 올바른 방법은 무엇입니까?


3
현재 폴더에서 모든 파일을 추출하면 다음을 사용할 수 있습니다. unzip \ *. zip
burtsevyg

2
@burtsevyg는 백 슬래시가 필요하지 않습니다. 쉘을 \*별표 기호로 취급 합니다. unzip *.zip쉘로 *끝나는 모든 파일로 확장하기 위해 사용 하라.zip
Sergiy Kolodyazhnyy

*혼자 사용하는 것이 효과가 없었습니다. 그것은 발생하는 filename not matched오류. \*일을했다.
arman_aegit

특정 기능이 필요한 경우가 아니라면 우편 번호 대신 "비정형"을 사용하고 배우는 것이 좋습니다. "지원되는 파일 형식에는 Zip, Tar-GZip, Tar-BZip2, RAR, 7-zip, LhA, StuffIt 및 기타 여러 가지 오래되고 모호한 형식이 포함됩니다.".
masterxilo

우분투에는 여러 압축 / 압축 해제 도구가 이미 설치되어 있습니다. apropos zip전체 목록을 보려면 콘솔에서 실행하십시오 .
Stephen W. Wright

답변:


1926

은 IF unzip명령은 시스템에 이미 설치되어 있지 않은 경우, 실행

sudo apt-get install unzip

압축 해제 유틸리티를 설치 한 후 특정 대상 폴더로 추출하려면 다음을 사용할 수 있습니다.

unzip file.zip -d destination_folder

소스 및 대상 디렉토리가 동일한 경우 간단히 다음을 수행 할 수 있습니다.

unzip file.zip

83
이미 디렉토리에 파일 압축을 해제하려면 두 번째 및 세 번째 인수를 생략하십시오.unzip /path/to/file.zip
Severo Raz

2
방금이 명령을 사용했습니다. 이것은 예입니다. 1 단계 (zip 파일이 저장된 디렉토리로 변경) : 2 cd /home/paf/Copy/Programming/Javascript/Json 단계 (방금 언급 한 디렉토리에서 zip 파일을 추출) :unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json
pablofiumara

2
unzip기본 프로그램 일 수 있습니다. 즉, 설치하지 않아도됩니다.
noobninja

2
@Aevi Check man pages[-d exdir] An optional directory to which to extract files.
WAKR

4
tar 아카이브와 달리 디렉토리로 추출했는지 확인하십시오. 많은 사람들이 zip 파일의 루트 디렉토리에 수십 개의 파일을 포함하고 있다는 것을 알 수 있습니다.
Steve

230

간단하게 사용할 수 있습니다 unzip.

설치하십시오 :

apt-get install unzip

그리고 그것을 사용하십시오 :

cd /path/to/file
unzip file.zip

117

보다 유용한 도구는 7z특히 다양한 압축 형식을 압축하고 압축 해제하는 도구로 , lzma일반적으로 가장 높은 압축률을 제공하는 프로토콜입니다.

이 명령은 다음을 설치합니다 7z.

sudo apt-get install p7zip-full

이 명령은 zip 내용을 나열합니다.

7z l zipfile.zip

이 명령은 zip의 내용을 추출합니다.

7z x zipfile.zip

5
7z e디렉토리 구조를 유지하지 않습니다- 7z x않습니다 ...
assylias

2
13.10은 7z가 존재하지 않는다고 말합니다. 나는 그것이 apt-get install 7zip
nitishch

6
설치 명령이 있어야한다고 생각 sudo apt-get install p7zip하거나 명령 sudo apt-get install p7zip-full을 받으려면 정식 버전이 필요합니다 7z. 전체는 또한 두 가지 중에서 zip 및 기타 형식을 처리하는 유일한 사람입니다.
Automatico

1
"보다 유용한 도구"를 명확히 할 수 있습니까? 압축 해제와 비교하고 있습니까? 7z를 더 유용하게 만들고 어떤 컨텍스트에서 7z를 선호하는 기능의 예를 제공 할 수 있습니까?
David LeBauer

1
압축 풀기가 더 유용합니다. 사용하기 쉽고 이름을 기억해야합니다.
수줍음 Robbiani

47

당신이 사용할 수있는:

unzip file.zip -d somedir

추출하다 yourpath/somedir

절대 경로로 추출하려면 다음을 사용하십시오.

sudo unzip file.zip -d /somedir

39

스크립팅 도구 사용 : Perl 및 Python

여기에 많은 답변이 설치가 필요한 도구를 언급하지만 아무도 Ubuntu의 스크립팅 언어 인 Perl과 Python에 이미 Zip 아카이브의 압축을 풀 수있는 모든 필수 모듈이 제공되어 아무것도 설치할 필요가 없다는 것을 아무도 언급하지 않았습니다. 그밖에. 아래 제시된 두 스크립트 중 하나를 사용하여 작업을 수행하십시오. 그것들은 상당히 짧으며 원한다면 한 줄짜리 명령으로 압축 될 수도 있습니다.

파이썬

#!/usr/bin/env python3
import sys
from zipfile import PyZipFile
for zip_file in sys.argv[1:]:
    pzf = PyZipFile(zip_file)
    pzf.extractall()

용법:

./pyunzip.py master.zip 

또는

python3 pyunzip.py master.zip

#!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
    my $archive = Archive::Extract->new( archive => $filepath );
    $archive->extract;
}

용법:

./perlunzip master.zip

또는

perl perlunzip.pl master.zip

또한보십시오


1
고마워, 정확히 내가 필요한 것. 루트가 없으며 소스에서 수동으로 압축 풀기를 설치하고 싶지 않습니다. 이것은 또한 주로 작동하는 bash one-liner와 함께 사용할 수 있습니다 ( '''파일 이름이 없다고 가정 ).unzip(){ python -c "from zipfile import PyZipFile; PyZipFile( '''$1''' ).extractall()"; }
mxmlnkn

@mxmlnkn 다행 내가 도울 수 :)
Sergiy Kolodyazhnyy

30

소스 및 대상 디렉토리가 동일한 경우 간단히 다음을 수행 할 수 있습니다.

unzip filename.zip

Ubuntu 17.04에서 -d는 알 수없는 이유가 필요합니다.
林果 皞

21

나는 /를 선호 bsdtar합니다 . 추출의 경우는 매우 유사합니다.unzipzip

bsdtar -x -f /one/two/three/four.zip -C /five
unzip /one/two/three/four.zip -d /five

그러나 압축의 경우 bsdtar승리합니다. 이 입력이 있다고 가정하십시오.

/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt

zip 파일에서 이것을 원합니다.

alfa/four.txt
bravo/four.txt

이것은 다음과 bsdtar같이 쉽습니다 .

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

zip에는 -dunzip과 같은 옵션이 없으므로 cd먼저 그렇지 않으면 위의 방법을 사용할 수 없습니다 .


내가 포스 툴에 승리를 주길 원한다면, 언 프레스 프레스 할 때 bsdtar단어에서 적어도 하나의 특수 문자와 잘 Blóðstokkinn어울리지 않는 것 같습니다. 압축 할 때조차 확인하지 않았습니다. 정말 충격적입니다. : / unzip문제없이 처리했습니다.
Vrakfall

20

유용한 옵션에 대한 자세한 설명은 다음과 같습니다.

명령 : unzip-[옵션] zip- 경로.
               -d 파일을 추출 할 선택적 디렉토리  
               -l 아카이브 파일을 나열합니다.
               -P 암호 를 사용하여 암호 (있는 경우) ZipFile에 항목을 암호화 해독 할.
               -t 주기적 중복 검사로 아카이브 파일을 테스트합니다.  
               -u 기존 파일을 업데이트합니다.  
               -z 아카이브 주석

8

http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/ :

unzip 설치 ============= 우선 시스템에 unzip이 설치되어 있지 않다면 설치해야합니다. unzip 명령은 ZIP 아카이브에서 파일을 추출하는 데 사용됩니다.

다음 명령을 실행하여 설치하십시오. unzip

sudo apt-get install unzip

unzip Syntex

$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile

이제 아래 단계를 따르십시오.

압축 해제 파일

옵션 1 – Zip 파일이 터미널과 동일한 디렉토리 / 폴더에 있고 현재 작업 디렉토리에서 압축을 풉니 다.

위에서 설명한 시나리오를 달성하려면 다음 명령을 사용하십시오.

sudo unzip zip_file_name.zip

zip 파일이 일부 비밀번호로 보호 된 경우 다음 명령을 사용하십시오.

sudo ubzip -P zip_file_name.zip

옵션이 다르므로 -P가 아닌 -P (자본 P)를 사용해야합니다.

옵션 2 – zip 파일이 동일한 디렉토리에없고 다른 디렉토리에서 파일을 추출 / 압축 해제하려는 경우.

위에서 설명한 시나리오를 달성하려면 다음 명령을 사용하십시오.

sudo unzip path/filename.zip -d another_path_or_same_path

옵션 -d를 사용하지 않으면 작업 디렉토리를 제시하기 위해 파일이 추출됩니다.

그리고 zip 파일이 비밀번호로 보호 된 경우에도 사용할 수 있습니다 -P.

Linux / Unix에서 tar 명령 사용

tarTape Archive의 약어입니다. tar 명령은 Linux / Unix에서 아카이브를 조작하는 데 사용됩니다. 시스템 관리자라고 매우 압축 된 아카이브로 파일이나 디렉토리의 무리를 찢어 자주 tar 명령을 사용 tarball하거나 tar, bzipgzip에서 리눅스 / 유닉스 시스템입니다.

타르 신텍스

tar [OPTION...] [FILE]...

또는

타르 필수 플래그

tar {-r|-t|-c|-x|-u}

타르 옵션 플래그

tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ]
[-Number] [-b Blocks] [-f Archive]

디렉토리 또는 단일 파일을 압축하여 tar 아카이브 파일 작성

아래의 터미널 명령 은 디렉토리 또는 현재 작업 디렉토리에 있는 .tar파일 을 생성합니다 .sample_dir.tar/home/codebind/sample_dirsample_dir

ripon@ripon:~$  tar -cvf sample_dir.tar sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar

여기에 이미지 설명을 입력하십시오

이 플래그들 (-cvf)의 실제 의미는 다음과 같습니다.

-c, --create– 새 아카이브를 만듭니다

-x, --extract, --get– 아카이브에서 파일을 추출

-f, --file ARCHIVE– 아카이브 파일 또는 장치 ARCHIVE 사용

디렉토리 또는 단일 파일을 압축하여 파일 작성 tar.gz또는 tgz아카이브

아래의 터미널 명령 은 디렉토리 또는 현재 작업 디렉토리에 있는 .tar.gz파일 을 생성합니다 .sample_dir.tar.gz/home/codebind/sample_dirsample_dir

-z 플래그를 명령에 추가했습니다. -z 플래그가 실제로 의미하는 바는 다음과 같습니다.

-z, --gzip, --gunzip --ungzip– gzip으로 아카이브 압축

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar.gz

여기에 이미지 설명을 입력하십시오

다음 명령은 .tgz 파일을 만듭니다. 주목해야 할 것은 tar.gz와 tgz는 비슷합니다.

ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tgz

한 번에 여러 디렉토리 또는 파일 압축

예를 들어, sample_dir디렉토리, java_test디렉토리 및 abc.py파일을이라는 tar 파일 로 압축하려고합니다 sample_dir.tar.gz.

위의 목표를 달성하려면 다음 명령을 실행하십시오.

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.py
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
java_test/
java_test/HelloCV.java
abc.py
ripon@ripon:~$ ls
sample_dir java_test abc.py sample_dir.tar.gz

여기에 이미지 설명을 입력하십시오

.bzip2디렉토리 또는 단일 파일을 압축하여 아카이브 파일 작성

ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

우리는 여분의 플래그를 추가 한 것을 알 -f플래그가 무엇 command.Here의에 -f실제로 의미

-f, --file ARCHIVE– 아카이브 파일 또는 장치 ARCHIVE 사용

여기에 이미지 설명을 입력하십시오

.tar아카이브 파일 추출

tar 명령을 사용하여 압축 파일을 추출하거나 압축 해제 할 수 있습니다. 아래 명령 sample_dir.tar은 현재 디렉토리 의 내용을 추출합니다 .

ripon@ripon:~$ tar -xvf sample_dir.tar
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

여기에 이미지 설명을 입력하십시오

다음 명령은 지정된 디렉토리에서 파일을 추출하거나 Untar합니다 ( /home/codebind/dir_name이 경우).

ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_name
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

우리는 여분의 플래그를 추가 한 -C플래그가 무엇 command.Here의에 -C 실제로 의미

-C, --directory DIR – 디렉토리 DIR로 변경

여기에 이미지 설명을 입력하십시오


1
또한 zip / unzip이 설치되어 있는지 확인하려면 zip -v및을 사용하십시오 unzip -v. 설치 한 경우는 같은 반환합니다 UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.(및 추가 정보 여러 줄을 설치하지 않으면 말할 것 같은 것을. The program 'zip' is currently not installed. You can install it by typing: apt install zip.
SherylHohman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.