comprimir archivo de tamaño largo en múltiples archivos de tamaño limitado xz

1

Tengo archivos de tamaño 28GB.

Quiero comprimir usando .xz LZMA , con trozos .xz de archivos de tamaño 1G (1024 MB) ...

MyFile.vdi -> MyFile00.xz, MyFile01.xz, MyFile02.xz...

Como hacerlo en macOS ?

EDITAR

sh-3.2# xz -ek9vfc Centos\ 7\ 1511\ 64bits_20170629\(with_dukto\).vdi
xz: Compressed data cannot be written to a terminal
xz: Try `xz --help' for more information.
sh-3.2# 

Segunda edición

UTILIZANDO

# xz -ek9vfc Centos\ 7\ 1511\ 64bits_20170629\(with_dukto\).vdi

# xz -e9vfc < Centos\ 7\ 1511\ 64bits_20170629\(with_dukto\).vdi | split -b 1024m - Centos\ 7\ 1511\ 64bits_20170629\(with_dukto\).vdi.xz

Aquí la salida.

# ls -al Centos\ 7\ 1511\ 64bits_20170629\(with_dukto\).vdi*
-rw-------@ 1 _unknown  _unknown  17470324736 Jun 29 23:47 Centos 7 1511 64bits_20170629(with_dukto).vdi
-rw-r--r--  1 _unknown  _unknown   3898588580 Aug 22 22:19 Centos 7 1511 64bits_20170629(with_dukto).vdi.xz
-rw-r--r--  1 _unknown  _unknown   1073741824 Aug 23 12:15 Centos 7 1511 64bits_20170629(with_dukto).vdi.xzaa
-rw-r--r--  1 _unknown  _unknown   1073741824 Aug 23 13:44 Centos 7 1511 64bits_20170629(with_dukto).vdi.xzab
-rw-r--r--  1 _unknown  _unknown   1073741824 Aug 23 18:17 Centos 7 1511 64bits_20170629(with_dukto).vdi.xzac
-rw-r--r--  1 _unknown  _unknown    677363108 Aug 23 21:44 Centos 7 1511 64bits_20170629(with_dukto).vdi.xzad
sh-3.2# 

Aqui la ayuda

# xz -h
Usage: xz [OPTION]... [FILE]...
Compress or decompress FILEs in the .xz format.

  -z, --compress      force compression
  -d, --decompress    force decompression
  -t, --test          test compressed file integrity
  -l, --list          list information about .xz files
  -k, --keep          keep (don't delete) input files
  -f, --force         force overwrite of output file and (de)compress links
  -c, --stdout        write to standard output and don't delete input files
  -0 ... -9           compression preset; default is 6; take compressor *and*
                      decompressor memory usage into account before using 7-9!
  -e, --extreme       try to improve compression ratio by using more CPU time;
                      does not affect decompressor memory requirements
  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0
                      to use as many threads as there are processor cores
  -q, --quiet         suppress warnings; specify twice to suppress errors too
  -v, --verbose       be verbose; specify twice for even more verbose
  -h, --help          display this short help and exit
  -H, --long-help     display the long help (lists also the advanced options)
  -V, --version       display the version number and exit

With no FILE, or when FILE is -, read standard input.

Report bugs to <[email protected]> (in English or Finnish).
XZ Utils home page: <http://tukaani.org/xz/>
sh-3.2# 
Chepe Questn
fuente
fecha "+% Y% m% d_% H% M% S.% s" 20170823_231254.1503547974
Chepe Questn

Respuestas:

1

Utilizar split.

Ejemplo: xz -e9vfc < yourFile.vdi | split -b 1024m - yourFile.vdi.xz.

Esto dividirá su File.vdi en trozos comprimidos de 1GB, con el sufijo de aa-zz.

Reensamblar, hacer cat yourFile.vdi.xz.* > yourFile.xz

7-zip es MÁS capaz, pero menos ubicuo. Usted querrá hacer una comprobación de sus copias de seguridad y verificarlas de vez en cuando. Echa un vistazo a un paquete GUI de p7zip. Le permitirá seleccionar niveles de compresión y tamaños de volumen de 1 GB ... Si lo hace en un trabajo por lotes sin supervisión, p7zip está más sucio. Puedo encontrar uno de mis fragmentos si lo necesitas.

Sin embargo, algo bueno de xz es que puede asignar n núcleos a un trabajo. Creo que es la -T bandera. Recuerda nice a 20 si pretende usar ese mac para algo que no sea un pisapapeles grande si usa todos los núcleos a la vez.

user2497
fuente
-fc bandera debe garantizar ese comportamiento. ¿Está canalizando o redireccionando stdout (el flujo comprimido)? Muéstranos el comando que usas.
user2497
xz -e9vfc & lt; blob & gt; blob.xz. xz es cobarde rechazando hacer spam en tu terminal con bibersish binarios. Tienes que dirigirlo / canalizarlo a alguna parte.
user2497
Omita -fc si no está redireccionando o canalizando los datos. ¿Qué es -k para?
user2497
-k, - keep keep (not delete) archivos de entrada
Chepe Questn
O omita -fc o redirigir / canalizar datos.
user2497
-2

Si es un archivo de texto, puede usar el comando de terminal dividido para dividir su archivo inicial en archivos más pequeños y luego comprimirlos en un archivo por lotes. La página man en split le dirá cómo determinar el tamaño de los archivos más pequeños. El comando dividir creará tantos archivos de salida como sea necesario en función del tamaño que se le indique a cada archivo. El uso de la compresión por lotes hace que este tiempo sea bastante eficiente.

jmh
fuente