Apa cara tercepat dan paling dapat diandalkan untuk membagi file biner 50GB menjadi potongan 5GB atau kurang, dan kemudian merakitnya nanti?

26

Server kami menjalankan Ubuntu Linux, dan file biner adalah dump BSON dari koleksi MongoDB besar. Seberapa andal alat seperti itu split? Apakah ada cara yang lebih cepat atau lebih baik untuk melakukan ini?

Hennes
sumber

Jawaban:

26

Untuk membagi, membagi -b

Untuk bergabung, cukup cat.

AFAIK mereka benar-benar dapat diandalkan, dan saya ragu ada sesuatu yang lebih efisien.

leonbloy
sumber
21

split sangat bisa diandalkan. Kami menggunakannya untuk porting file log besar, dan itu berfungsi dengan baik hingga beberapa GB (tidak 50 gb pula).

Saya yakin Anda dapat mencoba menggunakan pemisahan untuk kebutuhan Anda, dan beri tahu kami.

Dibagi menjadi file 5GB

split --bytes = 5G inputfile

Ini akan dipecah menjadi beberapa file 5GB dan beri nama xaa, xab, xac, .... dan seterusnya.

Menggabungkan

cat x *> outfile

dengan ini Anda dapat menggabungkan sebagai file tunggal di ujung lainnya.

thegeek
sumber
1
Pada OS XI harus menggunakan split -b50m untuk membuat file 50 megabyte. Catat tidak sama dengan tanda, catat huruf kecil.
funroll
3

Jika Anda telah terinstal, itu bekerja dengan sangat baik untuk saya:

Untuk memisahkan

rar a -m0 -v5000m newfilename giantfile.foo
  • a = menambahkan file ke arsip
  • m0 = tidak ada kompresi
  • v5000m = dipecah menjadi potongan-potongan 5.000 megabita

Untuk Merakit Ulang:

unrar x newfilename.*
  • x = ekstrak

Manfaat:

  • CRC pada konten arsip perpecahan,
  • pemesanan split-file disimpan secara otomatis,
  • banyak file dan direktori dapat dimasukkan.
Corey Farwell
sumber
3

split& catbenar-benar andal. Anda juga dapat mengompres in-line seperti ini. Misalkan file input Anda adalah dump.bson:

gzip < dump.bson | split -b 32M - dump.bson.gz.

Dan kemudian menyusun kembali dengan ini:

cat dump.bson.gz.* | gunzip > dump.bson

Tip, ini berfungsi sama baiknya dengan xz(dec)di tempatg(un)zip

Joshua Huber
sumber