LinuxでファイルをZIP圧縮(暗号化)する方法

LinuxでファイルをZIP圧縮(暗号化)する方法

ファイルなどの圧縮形式の一つであるZIP形式は、WindowsやLinuxなどさまざまなプラットフォームで最もメジャーな圧縮形式ではないでしょうか。

そこでここでは、CUIやGUI環境のLinuxで、ファイルやディレクトリをZIP圧縮したり、ZIPファイルを展開(解凍)する方法を紹介します。

ファイルを圧縮する(ZIP)

Linux環境でファイルやディレクトリをZIP圧縮するときは、zipコマンドを利用します。

書式とオプション

zip [オプション] ZIPファイル名 圧縮するファイル名

おもなオプションは、次のとおりです。

オプション説明
-e圧縮ファイルにパスワードを付けます。
-i圧縮対象のファイルを指定します。
-rディレクトリを再帰的に圧縮します。
-u圧縮ファイルにファイルを追加します。
-x圧縮対象から除外するファイルを指定します。
-zアーカイブにコメントを追加します。
-@対話的に圧縮するファイルを指定します。

zipコマンドの使用例

ファイルを圧縮する

ファイル「file_1.dat」を圧縮して「archive.zip」を作成するには、次のように実行します。

# zip archive file_1.dat
 adding: file_1.dat (deflated 100%)

複数のファイルを圧縮するには、次のように実行します。

# zip archive file_1.dat file_2.dat 
 adding: file_1.dat (deflated 100%)
 adding: file_2.dat (deflated 100%)

圧縮ファイル名に拡張子を指定せずにコマンドを実行した場合、自動的に拡張子 .zipが付与されます。

ディレクトリを圧縮する

ディレクトリごと圧縮するには、オプション「-r」をつけて実行します。

たとえば、ディレクトリ「folder」を圧縮するには、次のように実行します。

# zip -r archive.zip folder
 adding: folder/ (stored 0%)
 adding: folder/file_3.dat (deflated 100%)
 adding: folder/file_4.dat (deflated 100%)

パスワード付きで圧縮する

パスワード付きで圧縮ファイルを作成するには、オプション「-e」をつけて実行します。

たとえば、ファイル「file_5.dat」をパスワード付きのZIP形式ファイルに圧縮するには、次のように実行し、「Enter password:」でパスワードを設定します。

# zip -e archive_pass.zip file_5.dat
Enter password: 
Verify password: 
 adding: file_5.dat (deflated 100%)

ZIPファイルにファイルを追加する

既存のZIP形式ファイルにファイルを追加するには、オプション「-u」をつけて実行します。

たとえば、ZIP形式ファイル「archive.zip」に、ファイル「file_5.dat」を追加するには、次のように実行します。

# zip -u archive.zip file_5.dat 
 adding: file_5.dat (deflated 100%)

一部のファイルを除いて圧縮する

ワイルドカード「*」を使えば、カレントディレクトリの特定ファイルを圧縮できます。また、オプション「-x」で指定したファイルを圧縮対象から除外することもできます。

たとえば、カレントディレクトリにある「file」から始まるファイルをすべて圧縮するが「file_5.dat」だけ除外する場合は、次のように実行します。

# zip archive4.zip file* -x file_5.dat
 adding: file_1.dat (deflated 100%)
 adding: file_2.dat (deflated 100%)

特定のファイルのみを圧縮する

上とは逆に、特定のファイルのみを圧縮するには、オプション「-i」をつけて実行します。

たとえば、カレントディレクトリにあるファイルをすべて圧縮するが、対象を「file」から始まるファイルのみとする場合は、次のように実行します。

# zip archive6.zip * -i file*
 adding: file_1.dat (deflated 100%)
 adding: file_2.dat (deflated 100%)
 adding: file_5.dat (deflated 100%)

ZIPファイルを展開する(unzip)

Linux環境でZIPファイルを展開(解凍)するときは、unzipコマンドを利用します。

書式とオプション

unzip [オプション] ZIPファイル 対象ファイル

おもなオプションは、次のとおりです。

オプション説明
-oファイルを確認なしに上書きする
-nファイルを上書きしない
-x解凍しないファイルを指定する
-d指定したディレクトリに解凍する
-jディレクトリを作成せずに解凍する
-pパイプで受け取ったファイルを解凍する
-lZIPファイルに格納されているファイルを一覧表示する
-tZIPファイルに破損がないかテストする
-zZIPファイルのコメントを表示する
-v動作中のメッセージを詳しくする

unzipコマンドの使用例

ZIPファイルを解凍する

「file_1.dat」と「file_5.dat」が含まれるZIP形式ファイル「archive.zip」を解凍するには、次のように実行します。(パスワード付きZIPファイルの場合は、解凍時にパスワードを入力するよう促されます。)

# unzip archive.zip

Archive: archive.zip
  inflating: file_1.dat 
  inflating: file_5.dat

解凍先に同名のファイルがある場合は、以下のように、どのように処理するかを選択するプロンプトが表示されます。

replace file_1.dat? [y]es, [n]o, [A]ll, [N]one, [r]ename:

上書きする場合は「y」、解凍しない場合は「n」、全て上書きする場合は大文字で「A」、全て解凍しない場合は大文字で「N」、ファイル名を変更する場合は「r」を入力します。

なお、上記で紹介しているオプションをあらかじめ指定することで、解凍時の動作を決めておくこともできます。

特定のファイルのみ解凍する

unzipコマンドでは、ZIP形式ファイルから特定のファイルのみを解凍することもできます。

たとえば、ZIP形式ファイル「archive.zip」からファイル「file_1.dat」だけを解凍するには、次のように実行します。

# unzip archive.zip file_1.dat

Archive: archive.zip
  inflating: file_1.dat

ちなみに、解凍するファイルの指定には「*(アスタリスク)」などのワイルドカードも使用できます。

ZIP形式ファイルの内容を表示する

解凍せずに、ZIP形式ファイルに格納されているファイルを確認するには、オプション「-l」をつけて実行します。

# unzip -l archive.zip 

Archive:  archive.zip
  Length     Date    Time   Name
--------- ---------- -----  ----
10485760  11-10-2018 16:22  file_1.dat
10485760  11-10-2018 16:22  file_5.dat
---------                   -------
20971520                    2 files

GUI環境なら

GUI環境では、ファイルマネージャーでファイルやディレクトリを圧縮したり、圧縮ファイルを展開(解凍)できます。

ファイルを圧縮する

ファイル「file_1.dat」を圧縮するときは、ファイルを右クリックしてメニューから「Compress」を選択します。

LinuxでファイルをZIP圧縮(暗号化)する方法

「Create Archive」画面が表示されるので、ファイル名と拡張子を選択して画面右上の「Create」をクリックすることで、カレントディレクトリに圧縮ファイルが作成されます。

LinuxでファイルをZIP圧縮(暗号化)する方法

なお、ZIPファイルだけでなくパスワード付きZIPファイル、tar.xzファイル、7zファイルを作成することもできます。

LinuxでファイルをZIP圧縮(暗号化)する方法

ZIPファイルを展開(解凍)する

ZIPファイルを展開(解凍)するときは、ファイルマネージャー上でファイルをダブルクリックすると、カレントディレクトリに展開(解凍)されます。

また、ZIPファイルを右クリックして、メニューから「Extract to」を選択すれば、展開(解凍)先を指定することもできます。

LinuxでファイルをZIP圧縮(暗号化)する方法

ZIPファイル作成時の留意点

ZIP形式ファイルを扱うときは、次の点を注意しましょう。

文字化け

異なるプラットフォーム間(WindowsとLinux間など)でZIP形式ファイルをやり取りする場合、ファイル名に日本語が含まれていると文字化けする可能性があります。

暗号アルゴリズム

zipで使用される暗号アルゴリズム(ZipCrypto)は強度が弱く、パスワード付き圧縮ファイルは簡単に解析されてしまうため、重要なデータをパスワード付き圧縮ファイルにする場合は、より強度の強い暗号アルゴリズム(AES256など)が利用できる「p7zip」などを利用して作成するとよいでしょう。