Linuxのファイル圧縮を完全マスター!圧縮・解凍に使える7つの効果的な方法
データを扱う上で、「より多く」「より速く」は常に私たちが求めるものです。しかし問題は、この2つは通常トレードオフの関係にあるということ。そこで活躍するのがファイル圧縮です。Linuxにはファイルを圧縮・解凍する方法がいくつも用意されており、本記事ではそれぞれの方法を詳しく解説します。
ほぼすべてのLinuxディストリビューション(いわゆる「distro」)には、複数の圧縮ツールが標準で組み込まれています。中でも最も人気があるのがZipでしょう。Zipユーティリティは、GUI(グラフィカルユーザーインターフェース)でもターミナルでも使用できます。
LinuxのGUIでZip圧縮する
- 圧縮したいファイルがある場所に移動し、対象ファイルを選択します。次に右クリックして「圧縮(Compress)」を選択します。
- zipアーカイブの名前を入力します。なお、他の圧縮形式を選択できる場合もあります。この選択肢はディストリビューションによって異なることがあります。
- しばらくするとzipアーカイブが作成されます。アーカイブのサイズが、格納したファイルの合計サイズより大幅に小さくなっていることに注目してください。
LinuxのGUIで解凍する
- 解凍したいzipアーカイブを見つけて右クリックし、「ここに展開(Extract Here)」または「指定先に展開(Extract to…)」を選択します。「ここに展開」は現在のディレクトリに内容を展開し、「指定先に展開」では別の場所を指定して展開できます。
ファイルが展開されました。各ファイルが元の100MBのフルサイズに戻っていることを確認してください。
アーカイブマネージャーを使ってGUIで解凍する
一部のLinuxディストリビューションには、解凍のための別の手段が組み込まれています。この例では「アーカイブマネージャー(Archive Manager)」を使用します。
- アーカイブを右クリックし、「アーカイブマネージャーで開く(Open With Archive Manager)」を選択します。
- 展開したいファイルをシングルクリックで選択します。1つだけでも、複数でも、すべてでも選択可能です。その後、左上の「展開(Extract)」を選択します。
- ここでファイルマネージャーを使って展開先を選択できます。選択したら、右上の「展開(Extract)」をクリックします。
- 展開が完了したら、そのまま作業を続けるか、「ファイルを表示(Show the Files)」を選択して結果を確認しましょう。
ファイルは元のフルサイズに戻ります。アーカイブ内にはコピーが残ったままです。
LinuxターミナルでZip圧縮する
ターミナルを開き、圧縮したいファイルがあるディレクトリに移動します。次のコマンドを入力してください。zip ziptest.zip *
zipはLinuxにzipユーティリティを使うよう指示し、ziptest.zipは作成するアーカイブの名前、アスタリスク(*)はワイルドカードで「このディレクトリ内のすべてのファイルを圧縮する」という意味になります。
コマンド実行後、ファイルが圧縮され、一覧とともにどれだけ圧縮(deflated)されたかが表示されます。
zipコマンドには多くのオプションがあります。それらを確認するにはzip –helpと入力してみましょう。以下のような画面が表示されます。
Linuxターミナルで解凍する
ターミナルでunzip ziptest.zipというコマンドを使用します。unzipがコマンド名で、ziptest.zipが解凍対象のアーカイブ名です。
解凍中のファイルが表示されるので、完了のタイミングがひと目でわかります。
zipコマンドと同様に、unzipコマンドにも多くのオプションがあります。確認するにはunzip –helpと入力してください。以下のような画面が表示されます。
Bzip2でファイルを圧縮・解凍する
Bzip2も、ほとんどのLinuxディストリビューションに標準搭載されている圧縮ユーティリティです。大きな違いは、bzip2は複数のファイルを1つのアーカイブにまとめられない点にあります。各ファイルごとに個別の圧縮アーカイブが作成されます。
Bzip2でファイルを圧縮する
bzip2 -kv9 testfile1.txt testfile2.txtというコマンドを入力します。bzip2がコマンド本体です。
-kv9オプションの内訳は以下の通りです。kは元ファイルをkeep(保持)すること、vは処理内容を可視化するverbose(詳細出力)、9は最高レベルの圧縮率を意味します。圧縮レベルは1〜9の間で選択でき、レベルが高いほど圧縮にかかる時間は長くなります。
出力される情報はzipよりも詳細ですが、最終的な結果はほぼ同じです。
Bzip2でファイルを解凍する
bzip2 -kvd testfile1.txt.bz2 testfile2.txt.bz2というコマンドを入力します。-kvdオプションの内訳は、kがアーカイブをkeep(保持)、vがverbose(詳細出力)、dがdecompress(解凍)です。
ファイルが解凍されていく様子が表示され、完了したことも確認できます。
bzip2のオプションを確認するにはbzip2 –helpと入力してください。以下のような画面が表示されます。重要でないファイルで各オプションを試して、挙動を確かめてみるのも良い勉強になります。
Gzipでファイルを圧縮・解凍する
Gzipは、主要ディストリビューションのほとんどに含まれる定番圧縮ユーティリティの最後のひとつです。オプションの数はbzip2やzipより少ないシンプルさですが、圧縮品質はほぼ同等です。
Gzipでファイルを圧縮する
gzip -kv9 testfile1.txt testfile2.txtというコマンドを入力します。-kv9オプションの内訳は、kがファイルをkeep(保持)、vがverbose(詳細出力)、9が1〜9の中で最高の圧縮レベルです。
詳細出力が示すように、gzipは他の圧縮方法とほぼ同等の性能を発揮します。
Gzipでファイルを解凍する
gzipアーカイブの解凍方法は2つあります。ひとつはgzipコマンドを使う方法、もうひとつはgunzipコマンドを使う方法です。
gzipコマンドの場合は、gzip -kvd testfile1.txt.gz testfile2.txt.gzを使用します。dオプションがdecompress(解凍)を意味している点に注目してください。
gunzipコマンドの場合は、gunzip testfile1.txt.gz testfile2.txt.gzを使用します。gunzipとの唯一の違いは、基本的な解凍にオプションが不要という点です。
Tarでファイルを圧縮・解凍するには?
なぜtarについてまだ触れてこなかったのでしょうか?それはtarが厳密には「アーカイブツール」だからです。tarは多数のファイルを1つのアーカイブにまとめて持ち運びやすくするものであり、元のファイルサイズがどうであれ、tarファイルのサイズはほぼ変わりません。
しかし、tarにzip系の圧縮を組み合わせると、非常に強力なことが実現できます。きちんと圧縮された単一パッケージが手に入るのです。
他の圧縮方法をファイル群のあるディレクトリに対して使うと、ディレクトリ内の各ファイルごとに個別の圧縮アーカイブが作られます。一方、tarにgzipオプションを付けて使えば、すべてをまとめて圧縮し、1つのアーカイブを作成できます。
Tar+Gzipでファイルを圧縮する
tar -czvf Documents.tgz Documentsというコマンドを入力します。
-czvfオプションの内訳は以下の通りです。cは新しいアーカイブをcreate(作成)、zはgzipで圧縮、vはverbose(詳細出力)、fはfile=archive(ファイル構造を維持したままアーカイブ化)を意味します。
新しいアーカイブには名前が必要で、この例ではDocuments.tgzです。.tgzという拡張子を使えば、これがgzipで圧縮されたtarアーカイブだと他の人にも伝わります。最後のDocumentsは、アーカイブして圧縮する対象のディレクトリです。
出力は以下のようになります。
ファイルマネージャーで見ると、tarアーカイブが作成され、圧縮されていることが確認できます。
Tar+Gzipでファイルを解凍する
gzipで圧縮されたtarアーカイブを解凍するには、同じtarコマンドを少し違うオプションで使います。
tar -xzvf Documents.tgz Documentsというコマンドを入力します。
-xzvfオプションの内訳は、xがextract(展開)、zはgzipで解凍、vは処理を目視できるようにするverbose、fはfile=archiveでファイル構造を維持することを意味します。Documents.tgzが展開・解凍するアーカイブで、Documentsは内容を展開したいディレクトリです。
結果は下の画像の通りです。2つのファイルはフルサイズに戻り、Documentsディレクトリに配置されています。
tarのオプションを確認するにはtar –helpと入力してください。数ページにわたるオプション一覧が表示されます。gzip以外にもさまざまな圧縮方式が利用できるので、好みのものを選べます。
あまり知られていないLinuxの圧縮ツール
ほとんどのLinuxディストリビューションには、さらに2つの圧縮ユーティリティが含まれています。ただし、それほど人気はありません。とはいえ、知識として知っておくためにここで紹介しておきます。
LZMA
LZMAは、Linuxディストリビューションによく含まれるもうひとつのコマンドライン圧縮ユーティリティです。7-Zipで使われている圧縮アルゴリズムとして知られています。
XZ
XZユーティリティは、Linuxディストリビューションに標準で含まれることが多いコマンドライン圧縮ツールです。オプションはbzip2と似ています。LZMAをベースとしたLZMA2アルゴリズムに基づいています。
これらのユーティリティの詳細は、lzma –helpおよびxz –helpコマンドで確認できます。
Linuxには他にも圧縮・解凍の方法がある?
本記事で取り上げたのは、ほとんどのLinuxディストリビューションに標準搭載されている圧縮ツールのみです。それ以外にも、Linuxにはファイルを圧縮・解凍する方法がいくつも存在します。GUIを持つもの、コマンドライン専用のもの、そして両方で使えるものまであります。あなたはLinuxでどの圧縮ツールを使っていますか?お気に入りのツールとその理由を、ぜひコメント欄で教えてください。
-
Galaxy S10で写真や動画を少ないストレージ容量で保存する方法|HEIF機能の使い方
サムスンの「Galaxy S10」は今、大きな話題を集めています。この最新スマートフォンが幅広い層から支持されている理由の一つが、卓越したカメラ性能です。Galaxy S10には、3つのインテリジェントなトリプルレンズを備えたプロ仕様のカメラが搭載されており、高精細かつブレのない撮影が可能です。さらに、息をのむほど美しいAMOLEDディスプレイにより、撮影した写真や動画を最高のクオリティで楽しむことができます。 カメラ目当てでスマートフォンを選ぶ方にとって、Galaxy S10は無限の魅力を与えてくれる一台でしょう。しかし、写真撮影を頻繁に行うと、デバイスのストレージ容量があっという間にいっ
-
未来のゲーム業界を変える13の最新技術トレンド徹底解説
はじめに テクノロジーは驚くべき速度で進化し続けています。その最たる証拠が、毎年世界中で成長を続けるゲーム業界です。近年登場した新技術の数々は、ゲーム業界に多大な影響を与えています。本記事では、エンターテインメントの可能性を最大限に引き出し、ゲーム業界の姿を一変させるであろう注目のテクノロジートレンドをご紹介します。 関連記事:おすすめのクリーナーソフトでPCの動作速度を改善しよう 注目すべき13の最新技術リスト 1. 顔認識技術 顔認識技術はさまざまな業界に浸透しつつあり、ゲーム業界でも近い将来、新作タイトルへの導入が期待されています。顔認識と3Dスキャンを活用すれば、プレイヤーの外見に似せ