このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:ファイルをアーカイブ・圧縮する:zipコマンド

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

zipコマンドとは
- 目的:ファイルやディレクトリをまとめて圧縮・アーカイブする。
- 拡張子:
.zip(コマンド名と同じ)。 - 特徴
・アーカイブと圧縮を同時に行う。
・複数のファイルやディレクトリを一つにまとめる。
・WindowsやmacOSで広く使われており、これらのOSとのデータ共有に便利。
Linuxでのzipファイルの扱い
必要なコマンド
- 圧縮用:
zipコマンド。 - 展開用:
unzipコマンド。
インストール方法
CentOSの場合
# yum install zip unzipUbuntuの場合
$ sudo apt-get install zip unzipzipコマンドの基本的な使い方
練習用のファイルを作成
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 dirunzipコマンドで非表示
-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モード) |
注意点
zipやunzipコマンドがインストールされていない場合は、パッケージをインストールする必要がある。- 展開時の上書き確認に注意し、適切な選択肢を入力する。
応用
- クロスプラットフォームでのファイル共有。
- スクリプトや自動化処理での活用。
これで、zipコマンドを使用したファイルのアーカイブ・圧縮方法の解説を終わります。実際にコマンドを試して、使い方に慣れていきましょう。
