Zip は可逆データ圧縮をサポートする最も広く使われているアーカイブファイル形式です。
Zip ファイルは、1 つまたは複数の圧縮ファイルまたはディレクトリを含むデータコンテナです。 圧縮された (zip) ファイルは、非圧縮ファイルよりも少ないディスク容量で、1 つのマシンから別のマシンへより迅速に転送できます。
このチュートリアルでは、zip
コマンドを使用して Linux でファイルやディレクトリを Zip 圧縮する方法を説明します。
zip コマンド #
zip
は Zip アーカイブの作成を支援するコマンドライン ユーティリティです。
Zip コマンドは次のような構文をとります:
zip OPTIONS ARCHIVE_NAME FILES
Zip アーカイブを特定のディレクトリに作成するには、ユーザはそのディレクトリに書き込み権限を持っている必要があります。
ファイルの所有権とパーミッションを保持するには、tar
コマンドを使用してください。
ほとんどの Linux ディストリビューションでは、zip
ユーティリティはデフォルトではインストールされていませんが、ディストリビューションのパッケージマネージャを使用して、簡単にインストールすることができます。
Install Zip on Ubuntu and Debian #
sudo apt install zip
Install Zip on CentOS and Fedora #
sudo yum install zip
ファイルやディレクトリをZIPする方法 #
一つ以上のファイルをZIPするには、アーカイブに追加するファイルを以下のようにスペースで区切って指定して下さい。
zip archivename.zip filename1 filename2 filename3
adding: filename1 (deflated 63%)adding: filename2 (stored 0%)adding: filename3 (deflated 38%)
デフォルトでは、zip
コマンドはアーカイブに追加されるファイルの名前と圧縮方法を表示します。 圧縮方法と圧縮レベルについては後ほど説明します。
Zip アーカイブ名を指定する際、.zip
拡張子を省略すると、アーカイブ名にドットが含まれていない限り自動的に拡張子が付加されます。 zip archivename.zip filename
は zip archivename filename
と同じ名前のアーカイブを作成します。
zip
コマンドの出力を抑制するには、 -q
オプションを使用してください。 -r
オプションはディレクトリ構造全体を再帰的にたどることを可能にします。
あるディレクトリの Zip アーカイブを作成する場合:
zip -r archivename.zip directory_name
また、同じアーカイブに複数のファイルやディレクトリを追加できます:
zip -r archivename.zip directory_name1 directory_name2 file1 file1
圧縮方法とレベル #
Zip のデフォルト圧縮方法は deflate です。 もし zip ユーティリティがファイルを圧縮できないと判断した場合、store 方式で圧縮することなく、単にアーカイブにファイルを格納します。
zip -r -Z bzip2 archivename.zip directory_name
...adding: sub_dir/ (stored 0%)adding: sub_dir/file1 (bzipped 52%)adding: sub_dir/file2 (bzipped 79%)
zip
コマンドでは、0 から 9 までのダッシュを前にした数字で圧縮レベルを指定することができる。 デフォルトの圧縮レベルは-6
です。 -0
を使用した場合、すべてのファイルが圧縮されずに保存されます。 -9
は、zip
コマンドがすべてのファイルに対して最適な圧縮を行うようにします。
例えば、圧縮レベル -9
を使用するには、以下のように入力します。
Creating a Password Protected ZIP file #
If you have sensitive information that needs to be stored in the archive you can encrypt it using the -e
option:
zip -e archivename.zip directory_name
You will prompt to enter and verify the archive password.アーカイブパスワードの入力を要求されますので、パスワードを入力してください。
Enter password:Verify password:
Creating Split Zip File #
Zip アーカイブをファイル サイズ アップロード制限 1GB のファイル ホスティング サービスに保存し、Zip アーカイブが 5GB であると想像してください。
zip -s 1g -r archivename.zip directory_name
上記のコマンドは、指定されたサイズの制限に達した後もセットで新しいアーカイブを作成し続けます。
archivename.ziparchivename.z01archivename.z02archivename.z03archivename.z04
ZIP Examples #
現在のディレクトリのすべてのファイルを含む archivename.zip という Zip アーカイブを作成します。
zip archivename *
隠しファイル(ドットで始まるファイル)を含む上記と同じ:
zip archivename .* *
ファイルを圧縮せずに、現在のディレクトリの全ての MP3 ファイルを含む archivename.zip
という名前の Zip アーカイブを作成します。
zip -0 archivename *.mp3
結論 #
Linux では、zip
コマンドで Zip アーカイブを作成できます。
Linux システムで ZIP アーカイブを展開するには、unzip コマンドが使えます。
Zip についてもっと学びたい場合は、Zip Man ページを見てください。