大きな「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 Mint ISO イメージ ファイルのアーカイブ ファイルを作成できます。
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 コマンドを使用してファイルを結合できます。 cat を使用することは、結合操作を実行する最も効率的で信頼性の高い方法です。
すべてのブロックまたは tar ファイルを結合し直すには、以下のコマンドを発行します。
cat home.tar.bz2.parta* >backup.tar.gz.joined
cat コマンドを実行すると、以前に作成したすべての小さなブロックが同じサイズの元の tar アーカイブ ファイルに結合されることがわかります。
結論
上で説明したように、全体の考え方は単純です。必要なのは、tar
ユーティリティと split
ユーティリティのさまざまなオプションの使用方法を知り、理解することだけです。
のマニュアルエントリページを参照して、他のオプションの詳細を学習し、複雑な操作を実行することも、次の記事を参照してtar コマンドの詳細を学習することもできます。
お見逃しなく: 18 の便利な「tar」コマンドの例
ご質問やその他のヒントがございましたら、以下のコメント セクションを通じてご意見を共有してください。