このハウツーでは、ファイルのリストを指定し、データ圧縮のレベルを設定し、圧縮されたアーカイブを作成できる便利なユーティリティであるzipコマンドについて説明します。
これらのコマンドに慣れるまでは、サンプルのテスト ファイルとディレクトリを使用して作業することをお勧めします。また、指示に注意深く従うように細心の注意を払う必要があります。
このハウツーで紹介するコマンドはすべて、ほとんどのLinuxマシンで動作します。Ubuntu LTSインストールを使用していますが、Raspberry Piでも実行できます。ハウツーはすべてターミナル経由で実行します。ほとんどのLinuxマシンでは、Ctrl、Alt、Tキーを押すことでターミナルウィンドウを開くことができます。
LinuxでZipアーカイブを作成する
まず、空のテストファイルをいくつか作成し、アーカイブに追加してみましょう。touch コマンドでファイルを作成し、lsコマンドでファイルが作成されたことを確認し、zipコマンドで基本的なアーカイブを作成します。
1.コマンドを安全にテストできるテストディレクトリを作成します。新しいディレクトリに移動してください。
mkdir test_directory
cd test_directory
2.アーカイブに追加するテストファイルをいくつか作成します。3つの異なるファイルサフィックスに注意してください。
$ touch test1.txt test2.h test3.c
3.ファイルを一覧表示して、正しく作成されていることを確認します。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
ls
4. zipコマンドを使用して、新しく作成したファイルのZIP アーカイブを作成します。ZIP アーカイブを作成するには、コマンドzipに続けてアーカイブ名とアーカイブに含めるファイルのリストを指定します。次のコマンドは、test_archive.zipという ZIP アーカイブを作成し、このアーカイブに 3 つのテストファイルを含めます。zip コマンドを使用する際は、アーカイブ名にアーカイブサフィックス.zipを付ける必要はありません。
zip test_archive test1.txt test2.h test3.c
5. ZIP アーカイブが作成されたことを確認します。
ls
特定のファイルタイプのみを選択してZIPアーカイブを作成する
zipコマンドに引数を与えることで、特定のファイル形式のみをアーカイブに追加することができます。これはコマンドラインで効率的に実行できる強力な機能です。
1.以前のテストアーカイブをすべて削除し、元の3つのテストファイルが残っていることを確認します。ZIPアーカイブを作成する場合とは異なり、既存のアーカイブを参照する場合は、.zipファイル拡張子を含める必要があることに注意してください。
rm test_archive.zip
ls
2. .hと.cで終わるテストファイルのみを含む新しい ZIP アーカイブを作成します。アーカイブの作成後、その内容を確認すると、test2.hとtest3.cのみが含まれており、test1.txt は含まれていないことがわかります。
zip test_archive *.h *.c
3. 内容を確認するには、less を使用します。
less test_archive.zip
ディレクトリを含むZIPアーカイブを作成する
多くの場合、ファイルを含むディレクトリを含む ZIP アーカイブを作成する必要がありますが、これはzipコマンドに再帰引数-rを追加することで実行できます。
1. test_directory 内のアーカイブを削除しますが、他のファイルはそのまま残します。混乱を避けるため、アーカイブを削除し、作成した元のファイルのみを残すことをお勧めします。
rm test_archive.zip
2. 1つ上のディレクトリに移動し、アーカイブするディレクトリ内にいないことを確認してください。アーカイブに追加したいディレクトリ内にいることはできません。
cd
pwd
3. test_directoryディレクトリとその内容を含む ZIP アーカイブを作成します。-r引数を使用してアーカイブを作成すると、コマンドがディレクトリ内を移動してファイルとフォルダをアーカイブする各段階の詳細を示す詳細な出力が表示されます。
zip -r new_archive test_directory
4. -q (quiet) 引数を使用して詳細出力を無効にし、同様の ZIP アーカイブをもう一つ作成します。今回は、このアーカイブの作成中にターミナルに何もステップが表示されないことを確認できます。次に、ls コマンドを使用して、新しいアーカイブが作成されたことを確認します。
zip -r -q new_archive2 test_directory
ls
ZIPアーカイブのデータ圧縮レベルを変更する
デフォルトでは、zipコマンドは0~9の範囲で圧縮率6を使用します。0は圧縮なし、9は最大圧縮レベルです。数値引数を追加するだけで圧縮レベルを変更できます。
1.テストファイルにランダムデータを追加します。現在、テストファイル test1.txt、test2.h、test3.c は空です。これらのファイルには0バイトのデータが含まれていますが、ターミナルコマンドを使って各ファイルに64MBのランダムな「ゴミデータ」を追加できます。
cd test_directory
head -c 64M </dev/urandom > test1.txt
head -c 64M </dev/urandom > test2.h
head -c 64M </dev/urandom > test3.c
2.親ディレクトリに戻り、デフォルトの圧縮レベル 6 で新しい ZIP アーカイブを作成します。
cd
zip -r -q archive_default_compression test_directory
3.同じ内容の別のアーカイブを作成しますが、圧縮レベルを 9 に上げます。ls -lを使用して新しいアーカイブと以前のアーカイブの詳細を確認すると、データ圧縮が強化されたため、新しいアーカイブのサイズが以前のアーカイブよりも小さくなっていることがわかります。
$ zip -r -q -9 archive_compressed test_directory
$ ls -l
test_archive.zipという ZIP アーカイブを作成します。このアーカイブにはtest_directoryディレクトリがあり、その中には 3 つの空のテストファイル(test1.txt、test2.h、test3.c)が含まれています。このアーカイブを解凍するには、 unzipコマンドを使用します。
1.テストファイルを含むテストフォルダを作成します。テストディレクトリとファイルを作成したら、親ディレクトリに戻る前にlsコマンドを使用してファイルが作成されていることを確認します。
mkdir test_directory
cd test_directory
touch test1.txt test2.h test3.c
ls
cd
2. test_directoryを含むtest_archive.zipという ZIP アーカイブを作成します。lsコマンドを使用して、アーカイブが正常に作成されたことを確認します。zipコマンドには、作成するアーカイブの名前と、アーカイブに格納するファイルのソースという 2 つの引数があります。
zip -r test_archive test_directory
ls
3.アーカイブされていないディレクトリを削除します。test_directoryを含む親ディレクトリにtest_archive.zipを解凍すると、アーカイブを置き換えるか名前を変更するか尋ねられます。
rm -r test_directory
4. test_archive.zipファイルを解凍します。追加の引数なしでunzip を実行すると、アーカイブの解凍の各ステップの詳細な出力レポートが表示されます。
unzip test_archive.zip
アーカイブを別の場所に解凍したい場合がよくあります。unzipコマンドに-d引数を追加することでこれを実現できます。
1. test_archive.zipを指定のディレクトリに解凍します。相対パスまたは絶対パスで指定できます。この例では、相対パスを使用して Music ディレクトリにコンテンツを解凍しています。また、絶対パスを指定して、ターゲットディレクトリへのフルパスを指定することもできます。アーカイブを解凍したら、指定のディレクトリに移動し、lsコマンドを使用してアーカイブが解凍されたことを確認します。
unzip test_archive.zip -d ./Music
2.ディレクトリを変更し、内容を一覧表示して、ファイルが正しく抽出されたことを確認します。
cd Music
ls
zipコマンドの基本的な使い方をいくつか紹介したので、LinuxターミナルでZIPアーカイブを作成する際に、多くのオプションを利用できるようになりました。ターミナルエミュレータで特定のファイルタイプを選択したり、圧縮レベルを設定したりできるため、GUIアプリケーションでは見つけにくい強力なツールにすぐにアクセスできます。