最大サイズのチャンクに分割してtarアーカイブを作成します。

最大サイズのチャンクに分割してtarアーカイブを作成します。

かなり大きなディレクトリをバックアップする必要がありますが、個々のファイルのサイズによって制限があります。tar.(gz|bz2)最大200 MBのサイズのアーカイブに分割されたアーカイブを作成したいと思います。 Clonezilla は、次のようにイメージのバックアップを分割して同様の操作を実行します。

sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac

1つのコマンドでこれを行う方法はありますか?コマンドの使い方を理解していますsplitが、大規模なアーカイブを作成してからそれを小さなアーカイブに分割したくありません。なぜなら、最初にアーカイブを作成するのに必要なディスク容量が2倍になるからです。

ベストアンサー1

tarを分割コマンドにパイプできます。

tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.

一部の *nix システム (OS X など) では、次のエラーが表示される場合があります。

split: illegal option -- -

この場合は、以下を試してください(注-b 200m)。

tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.

FAT32形式のドライブに合わせてファイルを分割する場合は、バイト制限4294967295を使用してください。たとえば、

tar cvzf - /Applications/Install\ macOS\ Sierra.app/ | \
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.

ファイルを抽出するには、次のコマンドを使用します(@Naftuli Kayが述べたように)。

cat sda1.backup.tar.gz.* | tar xzvf -

おすすめ記事