대용량 타르볼 파일을 분할하고 병합하는 방법은 무엇입니까?

대용량 타르볼 파일을 분할하고 병합하는 방법은 무엇입니까?

큰 백업 파일을 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입니다. 이유는 모르겠습니다.

파일을 분할하여 하나로 병합하는 올바른 방법은 무엇입니까?

편집하다:

$ 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 하드 드라이브에서 문제 없이 파일을 추출할 수 있습니다.

관련 정보