tar マルチボリューム

考えてみれば tar コマンドは 18 年くらい使い続けているコマンドです。
tar のマルチボリュームオプションを始めて使ってみました。

単に DVD に入りきらないデータがあり、2 枚に分割しただけなのですが、
あらためて tar は便利だなぁと思いました 😉

例えば 1MB のファイル data? が 5 つある場合に 2M づつに分割したい時には以下のように行います。
以下のように 1MB のファイルdata1~data5があります。

$ ls -l data?
-rw-r--r--  1 user group 1048576  322 00:29 data1
-rw-r--r--  1 user group 1048576  322 00:30 data2
-rw-r--r--  1 user group 1048576  322 00:30 data3
-rw-r--r--  1 user group 1048576  322 00:30 data4
-rw-r--r--  1 user group 1048576  322 00:30 data5

-M オプションと –tape-length オプションで out1.tar, out2.tar, out3.tar
の 3 ファイルへ出力します。
2048 は 2048KB です。

$ tar -cv -M --tape-length=2048 -f out1.tar -f out2.tar 
-f out3.tar

するとサイズが 2M 以内になった 3 つのファイルが生成されます。

$ ls -l *.tar
-rw-r--r--  1 user group 2099200  322 00:33 out1.tar
-rw-r--r--  1 user group 2099200  322 00:33 out2.tar
-rw-r--r--  1 user group 1054720  322 00:33 out3.tar

元にリストアする場合は以下のように行います。

$ tar xvM -f out1.tar
./data1
./data2
./data3
ボリューム #2 (`out1.tar') を準備します. リターンキーを押してください: n out2.tar
ボリューム #2 (`out2.tar') を準備します. リターンキーを押してください:
./data4
./data5
ボリューム #3 (`out2.tar') を準備します. リターンキーを押してください: n out3.tar
ボリューム #3 (`out3.tar') を準備します. リターンキーを押してください:
 
$ ls -l
-rw-r--r--  1 user group 1048576  322 00:29 data1
-rw-r--r--  1 user group 1048576  322 00:30 data2
-rw-r--r--  1 user group 1048576  322 00:30 data3
-rw-r--r--  1 user group 1048576  322 00:30 data4
-rw-r--r--  1 user group 1048576  322 00:30 data5