ターミナルからzipファイルを解凍する方法は?


1414

インターネットから.zipファイルをダウンロードしました。ターミナルを使用してファイルを解凍したい。これを行う正しい方法は何ですか?


3
現在のフォルダーからすべてのファイルを抽出します。次を使用できます
。unzip

2
@burtsevygでは、バックスラッシュは必要ありません。シェル\*を文字通りのスター記号として扱います。で終わるすべてのファイルにunzip *.zipシェルを展開するために使用するだけ*.zip
Sergiy Kolodyazhnyy

*単独で使用してもうまくいきませんでした。filename not matchedエラーが発生しました。\*仕事をしました。
arman_aegit

特定の機能が必要な場合を除き、zip固有のものの代わりに「unar」を使用して学習することをお勧めします。「サポートされているファイル形式には、Zip、Tar-GZip、Tar-BZip2、RAR、7-zip、LhA、StuffIt、および他の多くの古い形式やあいまいな形式が含まれます。」
masterxilo

Ubuntuには、複数の圧縮/解凍ツールが既にインストールされています。apropos zip完全なリストについては、コンソールから実行してください。
スティーブンW.ライト

回答:


1928

unzipコマンドがシステムにまだインストールされていない場合は、次を実行します。

sudo apt-get install unzip

解凍ユーティリティをインストールした後、特定の宛先フォルダに抽出する場合は、次を使用できます。

unzip file.zip -d destination_folder

コピー元とコピー先のディレクトリが同じ場合、次の操作を実行できます。

unzip file.zip

83
あなたがディレクトリに既にある場合は、ファイルを解凍したい、つまり、2番目と3番目の引数を省略するunzip /path/to/file.zip
セベロラズ

2
このコマンドを使用しました。これは一例です。ステップ1(zipファイルが保存されているディレクトリに変更しました):cd /home/paf/Copy/Programming/Javascript/Json ステップ2(先ほど言及したディレクトリにzipファイルを抽出します):unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json
pablofiumara

2
unzipデフォルトのプログラムである可能性があります。つまり、インストールする必要がない場合があります。
-noobninja

2
manページをチェック@Aevi[-d exdir] An optional directory to which to extract files.
WAKR

4
tarアーカイブとは異なり、必ずディレクトリに解凍してください。多くの人がzipファイルのルートディレクトリに数十個のファイルを含んでいることがあります。
スティーブ

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が存在しないと言います。私はそれがsudo apt-get 7zipをインストールする必要があると思う
-nitishch

6
私は、installコマンドはされるべきだと思うsudo apt-get install p7zipか、sudo apt-get install p7zip-fullあなたは取得するには、フルバージョンを必要とする7zコマンドを。また、この2つのうちzipやその他の種類の形式を処理できるのは、完全版のみです。
自動

1
「より便利なツール」を明確にできますか?解凍と比較していますか?7zをさらに便利にする機能の例を教えてください。おそらくどのコンテキストで7zが優先されますか?
デビッドルバウアー

1
いくつかの解凍の方が便利です。使いやすく、名前を覚えておく必要があります。
内気なRobbiani

47

次を使用できます。

unzip file.zip -d somedir

抽出する yourpath/somedir

絶対パスに抽出する場合は、使用します

sudo unzip file.zip -d /somedir

39

スクリプトツールの使用:PerlおよびPython

ここでの多くの回答では、インストールが必要なツールについて言及していますが、Ubuntuの2つのスクリプト言語であるPerlとPythonには、zipアーカイブを解凍するために必要なすべてのモジュールが既に付属しているため、何もインストールする必要はありませんその他。以下の2つのスクリプトのいずれかを使用してジョブを実行します。これらはかなり短く、必要に応じて1行のコマンドにまとめることもできます。

Python

#!/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

Perl

#!/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
ありがとう、まさに私が必要なもの。ルートがなく、ソースから手動でunzipをインストールしたくない。これは、ほとんど機能するbashワンライナーと併用することもできます('''ファイル名の中にない場合):unzip(){ python -c "from zipfile import PyZipFile; PyZipFile( '''$1''' ).extractall()"; }
mxmlnkn

@mxmlnkn助けてくれてうれしいです:)
セルギー・コロディアズニー

30

コピー元とコピー先のディレクトリが同じ場合、次の操作を実行できます。

unzip filename.zip

Ubuntu 17.04では、不明な理由で-dが必要です。
林果皞

21

私は好むbsdtarunzip/ zip。抽出については、かなり似ています。

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

ただし、Zipの場合は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最初に実行しない限り上記を達成する方法はありません。


フォスツールに勝ちたいと思うのと同じくらい、どうやらbsdtarBlóðstokkinn圧縮時に単語の少なくとも1人のような特別なキャラクターとうまく結びつかないようです。圧縮するときもチェックしませんでした。なんて残念だ。:/ unzip問題なく処理しました。
Vrakfall

20

私が役に立つと思うオプションの詳細な説明は次のとおりです。

コマンド:unzip-[option] zip-path。
               -dファイルを抽出するオプションのディレクトリ  
               -lアーカイブファイルを一覧表示します。
               -P パスワードを使用したパスワードを暗号化されたzipファイルのエントリ(もしあれば)を復号化するために。
               -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

次の手順に従ってください:

UnZipファイル

オプション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たりtarbzipおよび gzipのLinux / Unixのシステム。

tar Syntex

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

または

tarが必要なフラグ

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

tarオプションのフラグ

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コマンドに追加のフラグが追加されていることに注意してください。フラグの-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:~$ 

ここに画像の説明を入力してください

次のコマンドは、指定されたディレクトリ/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コマンドにフラグを追加しました。フラグの-C 実際の意味は次のとおりです。

-C, --directory DIR –ディレクトリDIRに変更します

ここに画像の説明を入力してください


1
また、zip / unzipがインストールされているかどうかを確認するには、とを使用zip -vunzip -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.