大容量のタルボールファイルを分割してマージする方法は?

大容量のタルボールファイルを分割してマージする方法は?

大きなバックアップファイルをFAT32ファイルシステムに保存できる小さな塊に分割するコードがあります。

split -b $(echo "6*(2^30)-1" | bc) --verbose $1/jcubic.tar.gz $1/jcubic.tar.gz-

これらのチャンクをより大きなファイルに結合しようとすると、次のエラーが発生します。

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

私が使っているチャンクcat jcubic.tar.gz-* > jcubic.tar.gzは合計29.7GBですが、出力ファイルは54.1GBです。理由はわかりません。

ファイルを分割して1つにマージする正しい方法は何ですか?

編集する:

$ echo jcubic.tar.gz-*
jcubic.tar.gz-aa jcubic.tar.gz-ab jcubic.tar.gz-ac jcubic.tar.gz-ad 
jcubic.tar.gz-ae jcubic.tar.gz-af jcubic.tar.gz-ag jcubic.tar.gz-ah

編集2:

Ext4部分を使用して6GBチャンクを作成しました。

$ split -b $(echo "6*(2^30)-1" | bc) --verbose jcubic.tar.gz jcubic.tar.gz-

入力とブロックの両方42.3GB

$ $ ls -lsh
 43G -rw-r--r--. 1 root root  43G 05-18 23:09 jcubic.tar.gz
6,1G -rw-r--r--. 1 kuba kuba 6,0G 05-21 19:19 jcubic.tar.gz-aa
6,1G -rw-r--r--. 1 kuba kuba 6,0G 05-21 19:20 jcubic.tar.gz-ab
6,1G -rw-r--r--. 1 kuba kuba 6,0G 05-21 19:21 jcubic.tar.gz-ac
6,1G -rw-r--r--. 1 kuba kuba 6,0G 05-21 19:22 jcubic.tar.gz-ad
6,1G -rw-r--r--. 1 kuba kuba 6,0G 05-21 19:23 jcubic.tar.gz-ae
6,1G -rw-r--r--. 1 kuba kuba 6,0G 05-21 19:24 jcubic.tar.gz-af
6,1G -rw-r--r--. 1 kuba kuba 6,0G 05-21 19:25 jcubic.tar.gz-ag
311M -rw-r--r--. 1 kuba kuba 311M 05-21 19:25 jcubic.tar.gz-ah

しかし、猫を使うときは:

cat jcubic.tar.gz-* ~/xxx/jcubic.tar.gz

タールボールではなく、77GBのファイルがあります。

$ file jcubic.tar.gz
jcubic.tar.gz: data
$ ls -lh jcubic.tar.gz
-rw-r--r--. 1 kuba kuba 77G 05-21 20:15 jcubic.tar.gz
$ tar xzvf jcubic.tar.gz 
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

答え1

これは愚かな間違いです。 myはのcatエイリアスですbat。ほとんど使わなかったので気づかなかった。

使用:

env cat jcubic.tar.gz-* > jcubic.tar.gz

この問題を解決しました。

FAT32の6GBファイルは大丈夫で、FAT32 USBハードドライブから問題なくファイルを抽出できます。

関連情報