大きな「tar」アーカイブを特定のサイズの複数のファイルに分割する方法


大きなファイルをネットワーク経由で転送またはアップロードすることを心配している場合は、ファイルをビット単位で移動して、特定のサイズのブロックに分割することでネットワーク速度の低下に対処できるため、心配する必要はありません。

このハウツーガイドでは、アーカイブファイルの作成と、それらを選択したサイズのブロックに分割する方法について簡単に説明します。 Linuxで最も人気のあるアーカイブユーティリティの1つである tar を使用し、 split ユーティリティを利用してアーカイブファイルを小さなビットに分割します。

先に進む前に、これらのユーティリティの使用方法、 tar および split コマンドの一般的な構文は次のとおりです。

# tar options archive-name files 
# split options file "prefix”

ここで、この記事の主な概念を説明するために、いくつかの例を詳しく見ていきましょう。

例1:まず、次のようにアーカイブファイルを作成できます。

$ tar -cvjf home.tar.bz2 /home/aaronkilik/Documents/* 

アウトアーカイブファイルが作成されたことを確認し、そのサイズも確認するには、lsコマンドを使用できます。

$ ls -lh home.tar.bz2

次に、分割ユーティリティを使用して、次のように home.tar.bz2 アーカイブファイルをそれぞれサイズ 10MB の小さなブロックに分割できます。

$ split -b 10M home.tar.bz2 "home.tar.bz2.part"
$ ls -lh home.tar.bz2.parta*

上記のコマンドの出力からわかるように、tarアーカイブファイルは4つの部分に分割されています。

注:上記のsplitコマンドでは、オプション -b を使用して各ブロックのサイズを指定し、 home.tar.bz2.part は名前のプレフィックスです。分割後に作成された各ブロックファイルの。

例2:上記の場合と同様に、ここでは、Linux MintISOイメージファイルのアーカイブファイルを作成できます。

$ tar -cvzf linux-mint-18.tar.gz linuxmint-18-cinnamon-64bit.iso 

次に、上記の例1と同じ手順に従って、アーカイブファイルを 200MB のサイズの小さなビットに分割します。

$ ls -lh linux-mint-18.tar.gz 
$ split -b 200M linux-mint-18.tar.gz "ISO-archive.part"
$ ls -lh ISO-archive.parta*

例3:この例では、パイプを使用してtarコマンドの出力を次のように分割に接続できます。

$ tar -cvzf - wget/* | split -b 150M - "downloads-part"

ファイルを確認します。

$ ls -lh downloads-parta*

この最後の例では、お気づきのようにアーカイブ名を指定する必要はありません。-記号を使用するだけです。

分割後にtarファイルを結合する方法

Linuxでtarファイルまたは大きなファイルを正常に分割した後、catコマンドを使用してファイルを結合できます。猫を使用することは、結合操作を実行するための最も効率的で信頼性の高い方法です。

すべてのブロックまたはtarファイルを結合して戻すには、次のコマンドを発行します。

# cat home.tar.bz2.parta* >backup.tar.gz.joined

catコマンドを実行すると、以前に作成したすべての小さなブロックが同じサイズの元のtarアーカイブファイルに結合されていることがわかります。

結論

上で説明したように、全体の考え方は単純です。 tar および split ユーティリティのさまざまなオプションの使用方法を知って理解する必要があります。

の手動入力ページを参照して、他のオプションや複雑な操作を実行するか、次の記事を参照してtarコマンドの詳細を確認することができます。

ご質問やその他のヒントについては、以下のコメントセクションからご意見をお聞かせください。