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

Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

ほとんどの最新Linuxディストリビューションと同様に、Ubuntuにも日々の作業に役立つ多彩なツールが標準で搭載されています。そのひとつが「アーカイブマネージャー」で、ファイルを圧縮パッケージとしてまとめて保存できます。しかし、ここでひとつ問題が。圧縮したはずなのに、目的のサイズよりまだ大きすぎるというケースがあるのです。そんなときに頼りになるのが、ファイルを圧縮しながら複数の小さなパーツに分割する方法です。

Ubuntuにはそのための機能も備わっていますが、残念ながらアーカイブマネージャーは分割圧縮にはあまり向いていません。そこで活躍するのがターミナルです。といっても心配はいりません。手順はとてもシンプルで、たった1行のコマンドでファイルの圧縮と分割を同時に行えます。さっそく見ていきましょう。

圧縮の前に知っておきたい基本

作業を始める前に、あらゆる圧縮形式に共通する重要なポイントを押さえておきましょう。それは「圧縮は重ね掛けしてもほとんど効果がない」という事実です。これを理解しているだけで、無駄な時間を大幅に節約できます。

どういうことかというと、すでに高圧縮されたファイルを、別の圧縮方式で再圧縮してもサイズはほとんど減らないということです。たとえば、すでに高度に圧縮されているJPG画像やMP4動画、ZIPなどの圧縮済みアーカイブを共有したい場合、最高圧縮率の設定を使う意味はほぼありません。むしろ「保存(無圧縮)」モードでアーカイブに格納する方が賢明です。

一方、TXTファイルや大規模なデータベース、非圧縮のメディアファイルなど、無圧縮または軽度の圧縮しか施されていないファイルであれば、最高圧縮設定を選ぶことでファイルサイズを劇的に縮小できます。

定番のLinuxアプローチ:tar+split+bzip2

ここでは例として、Windows 10のISOファイルを圧縮してみます。tar、split、bzip2といった定番ツールを組み合わせれば、ファイルを圧縮しながら小さなファイルに分割できます。

Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

1. まずターミナルを起動します。Ctrl + Alt + Tキーを押すのが手早い方法です。次に、分割アーカイブに保存したい大きなファイルがあるフォルダへ移動します。作業フォルダを整理するため、「split」という名前のサブフォルダを作成し、そこに分割アーカイブを保存しましょう。

mkdir split
Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

作成したフォルダに移動します。

cd split
Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

2. 続いて、次のコマンドでファイルやフォルダを分割アーカイブに圧縮します。

tar -cvj FILENAME | split -b SIZE_OF_PARTS -d - "ARCHIVE_BASE_NAME"

Windows 10 ISOの場合、実際のコマンドは次のようになります。

tar -cvj ~/Data/Windows10.iso | split -b 50m -d - "Windows10_ISO.tar.bz."
  • ~/Data/Windows10.iso:圧縮したいファイルのパスとファイル名です。
  • split -b 50m:アーカイブを50MBごとのパーツに分割する指定です。お好みのサイズに自由に変更できます。
  • Windows10_ISO.tar.bz.:分割アーカイブのベースとなるファイル名です。末尾にドットが付いている点に注目してください。これは、各パーツの末尾に連番が自動的に付与され、順序を示すためです。
Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

しばらく待つと(所要時間はファイルサイズやPCの性能によります)、splitサブフォルダの中に分割アーカイブのパーツが並んでいるはずです。

Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

パーツ全体の合計サイズを確認すると、圧縮前よりも小さくなっていることがわかります。

Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

分割アーカイブから元のファイルを復元する

元のファイルを取り戻すには、まずすべてのパーツを1つのアーカイブに再結合します。

cat ARCHIVE_BASE_NAME.* > ARCHIVE_BASE_NAME.bz

続いて、次のコマンドで内容を展開します。

tar -xvj REASSEMBLED_ARCHIVE.bz

今回の例では、上記2つのコマンドはそれぞれ次のようになります。

cat Windows10_ISO.tar.bz.*
tar -xvj Windows10_ISO.tar.bz

ただし、次に紹介する新しい圧縮ツールを使えば、さらに少ない手順で効率よく行えます。

モダンな高圧縮ソリューション:7-Zip(p7zip)

7-Zipは高い圧縮率を誇るモダンなアーカイバで、分割アーカイブの作成にもネイティブ対応しています。今回のような用途には、こちらの方が優れた選択肢と言えるでしょう。ただし、Ubuntuには標準搭載されていないため、まずLinux版のp7zipをインストールします。

sudo apt install p7zip-full
Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

7-Zipで分割アーカイブを作成するのは、先ほどのtar+splitの方法よりもさらに簡単です。指定するのは、各分割ファイルのサイズ、アーカイブのファイル名、圧縮対象の3つだけです。

7z -vSIZE_OF_SPLIT_FILES a ARCHIVE_FILENAME FILE_TO_COMPRESS

Windows 10 ISOを、1パーツ50MBのマルチパートアーカイブに圧縮する場合、コマンドは次のようになります。

7z -v50m a Windows10_iso.7z ~/Data/Windows10.iso
Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

処理が完了すると、splitサブフォルダにパーツファイルが生成されます。しかも、tar+split+bzip2の組み合わせよりも、さらにコンパクトに収まります。

Ubuntuでファイルを圧縮・分割する方法|tar/splitと7-Zipの使い方

7-Zipの分割アーカイブを展開する

ファイルを復元する際は、連番の最初のファイルだけを指定して展開すればOK。7zが残りのパーツを自動的に読み込んで処理してくれます。

7z e FIRST_PART_OF_COMPRESSED_ARCHIVE

今回の例では次のとおりです。

7z e Windows10_iso.7z.001

なお、近年はpigzやplzipのように、マルチコアを活かして高速に圧縮できるツールも多数登場しています。用途に応じて使い分けるとよいでしょう。

分割圧縮アーカイブ、あなたの環境では役立ちそうですか?普段使っている圧縮ツールがあれば、ぜひコメント欄で教えてください。

  1. ZArchiverでAndroidのファイルを圧縮・解凍する方法

    Android端末では、メールで受信したファイルやダウンロードしたファイルのすべての形式を開けるとは限りません。ファイルを圧縮する場合も同様です。ファイルの種類によっては、これが大きな不便につながることがあります。一部のファイルマネージャーではzipファイルの圧縮・解凍に対応していますが、rarや7z形式のファイルを開きたい場合はどうすればよいのでしょうか。そこで便利なのが「ZArchiver」です。このアプリを使えば、標準のファイルマネージャーが対応していない場合でも、Android上でファイルの圧縮と解凍を自由に行えます。Androidでファイルを圧縮する方法圧縮フォルダを作成する手順は、

  2. macOSでファイルを圧縮・解凍する方法|ZIP作成からパスワード設定まで徹底解説

    ZIPファイルとは、1つまたは複数のファイルやフォルダを1つのファイルにまとめて圧縮したものです。パソコンのストレージ容量を節約できるだけでなく、複数のファイルを整理して管理するのにも役立ちます。圧縮されたファイルはUSBメモリやメールでの送信も格段に簡単になり、サーバー上で配布されるソフトウェアの多くも、ストレージ容量を節約するためにZIP形式で提供されています。この記事では、macOSでファイルを圧縮(ZIP化)および解凍する具体的な手順を、基本操作から応用テクニックまでわかりやすく解説します。macOSでファイルを圧縮(ZIP化)する方法多くのオペレーティングシステムには、ファイルやフォ