GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara zip file dengan batas ukuran?

Solusi 1:

Anda dapat menggunakan "arsip terpisah " fungsionalitas "zip " itu sendiri menggunakan "--split-size " opsi.

Dari halaman manual "zip" ("man zip "):

(...)

Salah satu penggunaan arsip terpisah adalah menyimpan arsip besar pada banyak pemindahan
media yang mampu. Untuk arsip terpisah dengan 20 file terpisah, file-file tersebut biasanya
bernama resmi (ganti ARCHIVE dengan nama arsip Anda) AR-
CHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip. Perhatikan bahwa
file terakhir adalah file .zip.

(...)

-s ukuran terpisah
--split-size splitsize

Ukuran split adalah angka yang secara opsional diikuti oleh pengganda.
Saat ini jumlahnya harus berupa bilangan bulat. Pengganda bisa
saat ini menjadi salah satu dari k (kilobyte), m (megabyte), g (gigabyte),
atau t (terabyte). Karena 64k adalah ukuran split minimum, angka
tanpa pengganda default ke megabita. Misalnya, untuk mengkre-
makan arsip terpisah yang disebut foo dengan isi bilah
direktori dengan pembagian 670 MB yang mungkin berguna untuk pembakaran
pada CD, perintah:

                zip -s 670m -r foo bar

dapat digunakan.

Jadi, untuk membuat arsip zip terpisah , Anda dapat melakukan hal berikut ("-r " adalah tombol "rekursif" untuk menyertakan subdirektori dari direktori):

$ zip -r -s 10m archive.zip directory/

Untuk mengekstrak file , file "zip " halaman manual menjelaskan bahwa Anda harus menggunakan sakelar "-s 0`":

(...)

 zip -s 0 split.zip --out unsplit.zip

akan mengonversi arsip terpisah menjadi arsip file tunggal.

(...)

Jadi, pertama Anda "unsplit" file ZIP menggunakan sakelar "-s 0":

$ zip -s 0 archive.zip --out unsplit.zip

... lalu Anda membuka zip file yang tidak dipisahkan:

$ unzip unsplit.zip

Solusi 2:

tar -czvf - /path/to/files | split -b 10M - archive.tar.gz

Akan memberi Anda sejumlah file:

archive.tar.gzaa

archive.tar.gzab

...

Yang kemudian dapat dikompresi dengan:

cat archive.tar.* | tar -xzvf -

Solusi 3:

Inilah cara saya melakukannya untuk file 5GB (dibagi menjadi 1GB vs 10MB seperti yang diminta OP)...

Contoh: Untuk membagi file 5GB menjadi file 1GB untuk menyalin ke USB FAT32 (nama file "FIVE_GB_FILE.ISO")

Langkah 1: zip file (tanpa kompresi, direktori yang sama dengan sumber)

zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO

Langkah 2 :pisahkan file zip 5GB menjadi file zip 1GB

zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP

Voila... Anda harus memiliki file 1 GB berikut (DAN yang asli, DAN zip dari langkah 1)

SPLIT_5GB_FILES.zip
SPLIT_5GB_FILES.Z01
SPLIT_5GB_FILES.Z02
SPLIT_5GB_FILES.Z03
SPLIT_5GB_FILES.Z04

Linux
  1. Cara Zip File dan Direktori di Linux (dengan Contoh)

  2. Cara Unzip File di Linux (dengan Contoh)

  3. Cara Mengarsipkan File Dan Direktori Di Linux [Bagian 2]

  1. Bagaimana cara zip/unzip file/folder di Centos?

  2. Bekerja dengan file ZIP di Linux

  3. Bagaimana cara membatasi ukuran file saat komit?

  1. Cara mengenkripsi file dengan gocryptfs di Linux

  2. Cara Membagi Arsip 'tar' Besar menjadi Beberapa File dengan Ukuran Tertentu

  3. Cara Mengarsipkan dan Mengompresi File di Linux