このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:ファイルをアーカイブ・圧縮する:zipコマンド

ファイルをアーカイブ・圧縮する:zipコマンド

 ファイルやディレクトリをまとめて圧縮する方法として、zipコマンドがあります。targzipとは異なり、zipコマンドはアーカイブと圧縮を同時に行うため、複数のファイルやディレクトリを一つのファイルに圧縮できます。ここでは、zipコマンドの基本的な使い方や特徴について、具体的な例や表を用いて分かりやすく解説します。

zipコマンドとは

  • 目的:ファイルやディレクトリをまとめて圧縮・アーカイブする。
  • 拡張子.zip(コマンド名と同じ)。
  • 特徴
    ・アーカイブと圧縮を同時に行う。
    ・複数のファイルやディレクトリを一つにまとめる。
    WindowsmacOSで広く使われており、これらのOSとのデータ共有に便利。

Linuxでのzipファイルの扱い

必要なコマンド

  • 圧縮用:zipコマンド。
  • 展開用:unzipコマンド。

インストール方法

CentOSの場合

# yum install zip unzip

Ubuntuの場合

$ sudo apt-get install zip unzip

zipコマンドの基本的な使い方

練習用のファイルを作成

user01@ubuntu:~$ mkdir dir
user01@ubuntu:~$ touch dir/file{1..9}
user01@ubuntu:~$ ls dir
file1  file2  file3  file4  file5  file6  file7  file8  file9

説明

  • dirというディレクトリを作成。
  • file1からfile9までのファイルを作成。

zipファイルの作成

【書式】zipファイルを作成する
zip -r <圧縮ファイル名> <圧縮対象パス>

  • -r:ディレクトリ内のファイルを再帰的に圧縮。

dirディレクトリをdir.zipというファイルに圧縮

user01@ubuntu:~$ zip -r dir.zip dir
  adding: dir/ (stored 0%)
  adding: dir/file5 (stored 0%)
  adding: dir/file1 (stored 0%)
  adding: dir/file8 (stored 0%)
  adding: dir/file7 (stored 0%)
  adding: dir/file9 (stored 0%)
  adding: dir/file4 (stored 0%)
  adding: dir/file6 (stored 0%)
  adding: dir/file2 (stored 0%)
  adding: dir/file3 (stored 0%)

ポイント

 -rオプションを指定しないと、ディレクトリ自体のみが圧縮対象となり、中のファイルは含まれません。そのため、ファイルやディレクトリを圧縮する際は、常に-rオプションを使用することをおすすめします。

zipファイルの内容を確認

コマンド

user01@ubuntu:~$ zipinfo dir.zip

出力例

Archive:  dir.zip
Zip file size: 1472 bytes, number of entries: 10
drwxrwxr-x  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file5
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file1
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file8
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file7
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file9
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file4
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file6
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file2
-rw-rw-r--  3.0 unx        0 bx stor 24-Dec-04 22:35 dir/file3
10 files, 0 bytes uncompressed, 0 bytes compressed:  0.0%

説明

  • zipinfoコマンドでzipファイルの内容を一覧表示。
  • ファイル数や各ファイルの情報を確認可能。

zipファイルの展開

コマンド

user01@ubuntu:~$ unzip dir.zip

実行例

Archive:  dir.zip
replace dir/file5? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
  extracting: dir/file5               
  extracting: dir/file1               
  extracting: dir/file8               
  extracting: dir/file7               
  extracting: dir/file9               
  extracting: dir/file4               
  extracting: dir/file6               
  extracting: dir/file2               
  extracting: dir/file3

ポイント

  • 展開時に既存のファイルがある場合、上書き確認が表示される。
  • [A]llを入力すると、すべてのファイルを一括で上書き。

処理中のファイル名を非表示にする

zipコマンドで非表示

-q:処理中のファイル名を表示しない(quietモード)。

user01@ubuntu:~$ zip -rq dir.zip dir

unzipコマンドで非表示

-q:展開時のファイル名を表示しない。

user01@ubuntu:~$ unzip -q dir.zip

活用例

ファイル数が多い場合、出力を抑制して処理を見やすくする。

ここで作成したファイルを削除します

作成したファイルやディレクトリを削除して、クリーンアップを行います。

user01@ubuntu:~$ rm -rf dir dir.zip
  • 注意rm -rfコマンドは強力な削除コマンドです。削除対象を十分に確認してから実行してください。

まとめ

zipコマンドの特徴

  • アーカイブと圧縮を同時に行える。
  • 複数のファイルやディレクトリを一つにまとめられる。
  • WindowsやmacOSとのデータ交換に便利。

基本操作

  • 圧縮:zip -r <圧縮ファイル名> <圧縮対象パス>
  • 展開:unzip <圧縮ファイル名>

主なオプション

オプション説明
-rディレクトリ内を再帰的に圧縮
-q処理中のファイル名を非表示にする(quietモード)

注意点

  • zipunzipコマンドがインストールされていない場合は、パッケージをインストールする必要がある。
  • 展開時の上書き確認に注意し、適切な選択肢を入力する。

応用

  • クロスプラットフォームでのファイル共有。
  • スクリプトや自動化処理での活用。

 これで、zipコマンドを使用したファイルのアーカイブ・圧縮方法の解説を終わります。実際にコマンドを試して、使い方に慣れていきましょう。