Zipとtarは、Linuxシステムで複数のディレクトリとファイルを1つのアーカイブファイルに圧縮およびアーカイブするための一般的なコマンドラインユーティリティです。デフォルトでは、tarコマンドはファイルを圧縮せず、ファイルとそのメタデータを収集して単一のtarファイルを生成するだけですが、gzip/bzip2を使用してファイルをアーカイブできます。一方、zipは、圧縮データを元の形式に再構築できるデータ圧縮アルゴリズムクラスであるロスレスデータ圧縮を提供します。 gzipとzipはファイルの圧縮にDEFLATEアルゴリズムを使用しますが、bzip2は高度に圧縮されたファイルを生成するBurrows-Wheelerアルゴリズムを使用しますが、gzipとzipに比べて時間がかかります。
インストール
デフォルトでは、tarコマンドはLinuxシステムに統合されているため、zipとunzipのインストールから始めましょう。 zipコマンドのインストール中はunzipコマンドがインストールされないため、個別にインストールする必要があります。
インストールを続行する前に、パッケージ情報を更新することを忘れないでください。
$ sudo apt-get update
Zipをインストールしています。
$ sudo apt-get install zip
Unzipのインストール
$ sudo apt-get install unzip
次の例を示すために、Ubuntu 20.4を使用し、ホームディレクトリに次のファイルがあります。
tarコマンドの例
例を続ける前に、tarの構文を知っておく必要があります。そのため、構文は次のようになります。
$ tar -c [option] [archive name] [file] | [directory] |
次のオプションは、コマンドを実行するタスクに導く主要な必須オプションです。次のオプションは、コマンドで1回使用できますが、それがないとコマンドは実行されません。
-c :アーカイブファイルを生成します。
-r :既存のアーカイブファイルにさらにファイルを追加します。
-t :アーカイブ内のすべてのファイルを表示します。
-x: アーカイブファイルを抽出します。
gzipとbzip2を使用したファイルの圧縮
Tarコマンドは、gzipとbzip2を使用して圧縮ファイルを生成します。これらのファイルには、コマンドにそれぞれ-zオプションと-jオプションを指定することでアクセスできます。 tarファイルをアーカイブおよび圧縮するには、次のコマンドを実行する必要があります。
$ tar -cvzf compress_sample.tar.gz *.txt
gzipを使用してファイルを圧縮します。
$ tar -cvjf compress_sample.tar.bz2 *.txt
bz2を使用してファイルを圧縮します。
上記の例では、-cオプションはアーカイブの作成を示し、-vオプションはアーカイブされたファイルの詳細を表示し、-fはアーカイブの名前を示します。
注:-fオプションは、常にファイル名の前に置く必要があります。
圧縮ファイルからのファイルの抽出
圧縮ファイルを抽出するには、以下を実行する必要があります:
$ tar -xvf compress_sample.tar.gz
上記のコマンドは現在の作業ディレクトリにあるファイルを抽出しますが、別のディレクトリにあるファイルを抽出する場合は、コマンドに-Cを使用して抽出できます。
$ tar -xvf compress_sample.tar.gz -C Documents/
tarを使用してファイルを別のディレクトリに抽出します。
圧縮ファイルから特定のファイルを抽出する
圧縮ファイルから特定のファイルを抽出できます。そのため、ファイル名がディレクトリ内にある場合は、ディレクトリ名とともにファイル名を指定する必要があります。
$ tar -xvf compress_sample.tar sample.txt student.txt
tarを使用して特定のファイルを抽出します。
ZipおよびUnzipコマンドの例。
zipおよびunzipの構文は次のとおりです。
$ zip [option] [archive_name] [Files]
$ unzip [option] [archive_name]
Zipを使用したファイルの圧縮
Zipはアーカイブコンプレッサーであるため、ファイルを圧縮するために追加のパラメーターを指定する必要はありません。圧縮するには、次のようなコマンドを実行する必要があります:
$ zip zip_demo.zip *.txt
複数のファイルを圧縮する
ファイルを別のディレクトリに解凍する
-dオプションを使用し、コマンドでディレクトリを指定して、zipファイルを別のディレクトリに解凍できます。
$ unzip zip_demo.zip -d Documents/
ファイルを別のディレクトリに解凍します。
圧縮ファイルから特定のファイルを解凍する
アーカイブから特定のファイルを解凍するには、コマンドを次の方法で実行する必要があります。
$ unzip zip_demo.zip student.txt sample.txt
zipファイルから特定のファイルを解凍します。
結論
この記事では、tarおよびzipコマンドを使用してファイルをアーカイブおよび圧縮する方法を学習します。最も一般的な例を記事に含めました。これがファイルの圧縮方法に役立つことを願っています。