GNU/Linux >> Linux Esercitazione >  >> Linux

Come comprimere i file con un limite di dimensione?

Soluzione 1:

Puoi utilizzare il file "archivio diviso " funzionalità di "zip " utilizzando il formato "--split-size " opzione.

Dalla manpage "zip" ("man zip "):

(...)

Un utilizzo degli archivi divisi è l'archiviazione di un archivio di grandi dimensioni su più rimozioni
media capaci. Per un archivio diviso con 20 file divisi i file sono tipo
icamente denominato (sostituisci ARCHIVE con il nome del tuo archivio) AR‐
ARCHIVIO.z01, ARCHIVIO.z02, ..., ARCHIVIO.z19, ARCHIVIO.zip. Si noti che il
l'ultimo file è il file .zip.

(...)

-s diviso
--split-size splitsize

La dimensione divisa è un numero seguito facoltativamente da un moltiplicatore.
Attualmente il numero deve essere un numero intero. Il moltiplicatore può
attualmente essere uno tra k (kilobyte), m (megabyte), g (gigabyte),
o t (terabyte). Poiché 64k è la dimensione minima della suddivisione, i numeri
senza moltiplicatori l'impostazione predefinita è megabyte. Ad esempio, per creare
mangiato un archivio diviso chiamato foo con il contenuto della barra
directory con suddivisioni di 670 MB che potrebbero essere utili per la masterizzazione
sui CD, il comando:

                zip -s 670m -r foo bar

potrebbe essere utilizzato.

Quindi, per creare un archivio zip diviso , puoi fare quanto segue (il file "-r " è l'opzione "ricorsiva" per includere le sottodirectory della directory):

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

Per decomprimere il file , il "zip " manpage spiega che dovresti usare l'opzione "-s 0`":

(...)

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

convertirà un archivio diviso in un archivio a file singolo.

(...)

Quindi, per prima cosa "annulla la divisione" del file ZIP utilizzando l'opzione "-s 0":

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

... e poi decomprimi il file non diviso:

$ unzip unsplit.zip

Soluzione 2:

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

Ti darà un numero di file:

archive.tar.gzaa

archive.tar.gzab

...

Che poi può essere decompresso con:

cat archive.tar.* | tar -xzvf -

Soluzione 3:

Ecco come l'ho fatto per un file da 5 GB (suddiviso in 1 GB contro 10 MB come richiesto dall'OP)...

Esempio: Per dividere un file da 5 GB in file da 1 GB da copiare su una USB FAT32 (nome file "FIVE_GB_FILE.ISO")

Passaggio 1: zippare il file (nessuna compressione, stessa directory dell'origine)

zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO

Passaggio 2 :divide il file zip da 5 GB in file zip da 1 GB

zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP

Voilà... dovresti avere i seguenti file da 1 GB (E l'originale E lo zip del passaggio 1)

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

Linux
  1. Come crittografare i file con gocryptfs su Linux

  2. Come comprimere file e directory su Linux (con esempi)

  3. Come archiviare file e directory in Linux [Parte 2]

  4. Come archiviare e comprimere file su Linux

  5. Come comprimere più file su Linux

Come decomprimere i file in Linux

Come comprimere file e directory in Linux

Come decomprimere i file zip in Linux

Come caricare file con FileZilla

Come comprimere un file in Linux

Come limitare la dimensione del file al commit?