tar, gz, zip 또는 bzip2를 사용하여 파일 분할
17~20GB의 큰 파일을 압축해야 합니다.파일당 약 1GB의 여러 파일로 분할해야 합니다.
나는 구글을 통해 해결책을 찾고 그것을 사용하는 방법을 찾았다.split
그리고.cat
명령어를 지정합니다.그러나 큰 파일에서는 전혀 작동하지 않았습니다.또, Windows 에서는 동작하지 않습니다.Windows 머신에서 압축을 풀어야 합니다.
이 명령어는 에서 사용할 수 있습니다.-b
옵션:
split -b 1024m file.tar.gz
@Joshua의 답변을 사용하여 Windows 머신에서 재조립할 수 있습니다.
copy /b file1 + file2 + file3 + file4 filetogether
편집: @Charlie가 아래 코멘트에서 설명한 것처럼 프레픽스를 명시적으로 설정할 필요가 있습니다.x
그렇지 않으면 혼란스러울 수 있습니다.
split -b 1024m "file.tar.gz" "file.tar.gz.part-"
// Creates files: file.tar.gz.part-aa, file.tar.gz.part-ab, file.tar.gz.part-ac, ...
편집: 질문이 종결되고 가장 효과적인 솔루션이 이 답변의 내용에 매우 가깝기 때문에 투고를 편집합니다.
# create archives
$ tar cz my_large_file_1 my_large_file_2 | split -b 1024MiB - myfiles_split.tgz_
# uncompress
$ cat myfiles_split.tgz_* | tar xz
이 솔루션을 사용하면 압축 시 중간 크기의 파일을 사용할 필요가 없습니다.결과 파일에 다른 디렉토리를 사용하려면 tar -C 옵션을 사용합니다.btw 아카이브가 단일 파일로만 구성되어 있으면 tar를 피할 수 있고 gzip만 사용됩니다.
# create archives
$ gzip -c my_large_file | split -b 1024MiB - myfile_split.gz_
# uncompress
$ cat myfile_split.gz_* | gunzip -c > my_large_file
윈도의 경우 동일한 명령어의 포트화된 버전을 다운로드하거나 cygwin을 사용할 수 있습니다.
Linux에서 분할하는 경우에도 Windows에서 재구성할 수 있습니다.
copy /b file1 + file2 + file3 + file4 filetogether
tar를 사용하여 여러 아카이브로 분할하다
윈도의 tar 파일로 동작할 수 있는 많은 프로그램들이 있습니다. sygwin도 포함됩니다.
테스트된 코드. 처음에 단일 아카이브 파일을 만든 후 분할합니다.
gzip -c file.orig > file.gz
CHUNKSIZE=1073741824
PARTCNT=$[$(stat -c%s file.gz) / $CHUNKSIZE]
# the remainder is taken care of, for example for
# 1 GiB + 1 bytes PARTCNT is 1 and seq 0 $PARTCNT covers
# all of file
for n in `seq 0 $PARTCNT`
do
dd if=file.gz of=part.$n bs=$CHUNKSIZE skip=$n count=1
done
이 변형은 단일 아카이브 파일 작성을 생략하고 부품 작성으로 직행합니다.
gzip -c file.orig |
( CHUNKSIZE=1073741824;
i=0;
while true; do
i=$[i+1];
head -c "$CHUNKSIZE" > "part.$i";
[ "$CHUNKSIZE" -eq $(stat -c%s "part.$i") ] || break;
done; )
이 변형에서는 아카이브의 파일 크기가 다음과 같이 분할되는 경우$CHUNKSIZE
마지막 부분 파일의 크기는 0바이트가 됩니다.
언급URL : https://stackoverflow.com/questions/1120095/split-files-using-tar-gz-zip-or-bzip2
'programing' 카테고리의 다른 글
콘솔 앱으로 표시할 것인지 윈도우 앱으로 표시할 것인지를 스스로 결정하는 C# 앱을 만들려면 어떻게 해야 합니까? (0) | 2023.04.19 |
---|---|
wpf에서 이미지를 플립하는 방법 (0) | 2023.04.19 |
WPF 개체를 복제하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
SQL Server에서 PAGEIOLACH_SH 대기 유형은 무엇입니까? (0) | 2023.04.19 |
Xcode 4.4 릴리즈 노트에 언급된 "Objective-C Literals"의 세부 사항은 무엇입니까? (0) | 2023.04.19 |