Linux
 Computer >> コンピューター >  >> システム >> Linux

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

はじめに

以前の記事では、tarコマンドを使ったアーカイブの作成方法を詳しく解説しました。tarはLinuxでは非常に一般的な圧縮形式ですが、WindowsやMac OS Xのユーザー間ではあまり普及しておらず、これらの環境ではzip形式のアーカイブが主流となっています。

LinuxでZip(圧縮)やUnzip(展開)を使うのはとても簡単です。実際、Ark、File Roller、XarchiverなどのGUIアーカイブ管理ツールの多くは、コマンドラインのアーカイブプログラムのフロントエンドとして動作しており、Zipもその例外ではありません。もちろん、ターミナルから直接Zipコマンドを使用することもできます。本記事ではその具体的な方法を解説します。

準備:必要なパッケージのインストール

まず最初に、ターミナルを開きましょう。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

次に、「sudo apt-get install zip unzip」と入力して、zipとunzipがインストールされていることを確認します。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

注:すでにこれら2つのプログラムがインストールされている場合は、その旨のメッセージが表示されます。

テスト用ファイルの作成

インストールが完了したら、zipコマンドでアーカイブを作成(または既存のものを編集)し、unzipコマンドで元の状態に展開できるようになります。この記事では、デスクトップに「Stuff」という新しいフォルダを作成します。ターミナルでは、以下のコマンド1つで実行できます。

mkdir /home/username/Desktop/Stuff

(「username」はご自身のユーザー名に置き換えてください。デスクトップにすでにStuffフォルダがある場合は、名前を変更しましょう。)

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

Stuffフォルダができたら、「cd」コマンドでStuffフォルダをカレントディレクトリにします。

cd /home/username/Desktop/Stuff

次に、touch doc1.txt doc2.txt doc3.txt && mkdir Filesと入力します。これにより、Stuffフォルダ内に「Files」というフォルダと、doc1.txt、doc2.txt、doc3.txtという3つのドキュメントが作成されます。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

さらに、新しく作成したFilesフォルダに移動します。このフォルダにも別のドキュメントを入れるためです。

cd Files

最後に、touch doc4.txt doc5.txt doc6.txtと入力して、3つの新しいドキュメントを作成します。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

続いて、cd ../..と入力して、作業ディレクトリをデスクトップに戻します。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

zipファイルを作成する前の最後の準備として、デスクトップ上に、先ほど作成したファイルと同じ名前の「追加用」ドキュメントをいくつか作成します。touch doc2.txt doc3.txtと入力してください。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

最後に、この2つの「追加用」テキストファイルをそれぞれ開き、適当なテキストを入力します。内容は意味のあるものでなくても長くなくても構いません。StuffフォルダとFilesフォルダ内に作成済みのドキュメントとは異なることが確認できれば十分です。

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

準備が整ったら、いよいよzipファイルの作成です。zipの最もシンプルな使い方は、作成したいzipアーカイブの名前を指定し、含めるファイルを1つずつ明示的に指定することです。作業ディレクトリがデスクトップである場合、zip test Stuff/doc1.txt Stuff/doc2.txt Stuff/doc3.txtと入力すると、「test.zip」というアーカイブが作成されます(拡張子「.zip」は自動的に付加されるため、コマンドで指定する必要はありません)。このアーカイブには、Stuffフォルダ内のdoc1.txt、doc2.txt、doc3.txtが含まれます。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

コマンドを実行すると出力が表示され、3つのドキュメント(doc1.txt、doc2.txt、doc3.txt)がアーカイブに追加されたことがわかります。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

デスクトップ上のアーカイブをダブルクリックすると、標準のアーカイブプログラム(KDEならArk、GNOMEならFile Roller、XfceならXarchiver)で開いて内容を確認できます。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

サブフォルダをまとめて追加する

では、Filesフォルダはどう扱えばよいのでしょうか?Filesフォルダ内のドキュメントもアーカイブに含めたい場合は、先ほどのコマンドの末尾にStuff/Files/*を追加します。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

アスタリスク(*)は「フォルダ内のすべてを含める」という意味です。ただし、Filesフォルダの中にさらにフォルダがあった場合でも、その中身までは含まれません。中身まで再帰的に含めるには、-rオプション(recursive=再帰的)を追加する必要があります。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

なお、上記の2つのコマンドはzipアーカイブへの「追加」専用ではなく、本来はアーカイブを「作成」するためのコマンドです。しかし、アーカイブがすでに存在する場合、コマンドは新しいファイルを既存のアーカイブに追加するだけになります。最初から一気に作りたければ(今回は学習目的で段階的にファイルを追加しました)、zip -r test Stuff/*と入力するだけで同じアーカイブが作成できます。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

コマンドと出力を見ると、Stuffフォルダ内の3つのファイルと、Filesフォルダ内の3つのドキュメントがすべて含まれていることがわかります。つまり、シンプルな1つのコマンドですべてが完了したのです。

既存ファイルの上書き(更新)

では、デスクトップに作成した2つの「追加用」ドキュメントはどうなるのでしょうか?zipの仕様では、アーカイブにすでに存在するファイルと同じ名前のファイルを追加しようとすると、新しいファイルが古いファイルを上書きします。デスクトップに作成したドキュメント(doc2.txtとdoc3.txt)には内容があるため(doc2.txtには「hello world!」、doc3.txtには「yay」と入力しました)、それらを追加して挙動を確認できます。まず、2つの「追加用」ドキュメントをStuffフォルダにドラッグします。

このとき、既存のドキュメントを上書きするかどうか尋ねられるでしょう(これはフォルダ内の話であり、zipアーカイブではありません)。上書きを許可してください。

準備ができたら、zip test Stuff/doc2.txt Stuff/doc3.txtと入力してアーカイブに追加します。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

今回の出力では、ファイルが「追加(added)」ではなく「更新(updated)」されたと表示されることに注目してください。アーカイブを確認すると、ファイル名は同じように見えますが、doc2.txtとdoc3.txtを開くと、空だった元のファイルとは異なり、今度は内容が書き込まれていることがわかります。

隠しファイルを含める

Linuxでは、ファイル名の先頭にピリオド(「.」)を付けることでファイルを非表示にすることがあります。これは設定ファイルで特に一般的です。設定ファイルは存在する必要がありますが、常に表示されている必要はありません(画面が整理されるだけでなく、誤って削除されるリスクも減らせます)。こうした隠しファイルも、簡単にzipファイルに追加できます。

たとえば、あるディレクトリ内のすべてのファイルから「backup」というzipファイルを作成したい場合は、zip backup *と入力します。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

これで、すべてのファイルとフォルダが追加されますが、フォルダ内のアイテムは含まれません。それらも含めるには、再び-rオプションを付けます。つまり、zip -r backup *がコマンドになります。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

さらに一歩進んで、フォルダ、ファイル、そして隠しファイルまで再帰的にすべて含めるには、コマンドは非常にシンプルです:zip -r backup .

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

unzipでアーカイブを展開する

展開(unzip)は非常に簡単です。ただし、その前に、デスクトップ上のドキュメント(doc2.txtとdoc3.txt)とStuffフォルダを削除しておきましょう。削除が完了したら、unzip test.zipと入力すると、元のzipアーカイブの内容が現在のディレクトリに展開されます。

ターミナルを使ってLinuxでZipファイルを作成・編集する方法

注:もしドキュメントを削除していなければ、zipファイルの内容を既存のファイルに展開しようとすることになり、各ドキュメントを置き換えるかどうか尋ねられます。

まとめ

以上で解説は終わりです!ZipとUnzipによる圧縮・展開は非常によく使われる操作です。GUIツールもありますが、練習を重ねれば、ターミナルから同じ操作を行うことも決して難しくないことがわかるでしょう。ぜひ本記事の手順を参考に、コマンドラインでのアーカイブ操作に慣れてみてください。

  1. Windows 10のレジストリエディターでバックアップ・復元・編集を行う完全ガイド

    物の大小にかかわらず、全体をコントロールする中枢が必ず存在します。人間の体を脳が制御し、細胞を核が制御するように、Windowsオペレーティングシステムを管理しているのが「レジストリ」です。脳や核と同じように、レジストリにはWindowsに関するあらゆる細かい情報や設定が記録されています。そして、私たちの脳とは異なり、このレジストリはWindows 10に搭載された「レジストリエディター」を使って編集・変更することが可能です。 Windows 10のレジストリは、巨大な図書館のようなものだとイメージすると分かりやすいでしょう。OS、システムアプリ、サードパーティ製アプリ、さらにはハードウェア

  2. iPhoneでZIPファイルを作成・開く方法【iOS 13以降対応】

    パソコンを使っていると、「ZIP」や「圧縮」という言葉を耳にする機会は多いのではないでしょうか。ZIPファイルは個人でもビジネスでも非常に便利な機能で、大きなファイルをひとつにまとめて圧縮すれば、メールでの送信もスムーズになります。関連する複数のファイルを1つのフォルダにまとめられるため、メール添付ファイルのダウンロードや転送も素早く行えます。 では、スマートフォンでZIPファイルを扱うにはどうすればよいのでしょうか? 従来、容量の大きいファイルや複数のファイルをメールで送る際には、ノートパソコンやデスクトップPCを使うのが一般的でした。しかし、iPhoneやAndroidスマホ上で直接ファイ