comprimir file de gran tamaño en un file xz de tamaño limitado

Tengo files de 28GB de tamaño.

Quiero comprimir usando .xz LZMA , con .xz chuncks de files de tamaño 1G (1024MB) …

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

¿Cómo 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# 

SEGUNDO EDICION

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# 

Aquí 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 <lasse.collin@tukaani.org> (in English or Finnish). XZ Utils home page: <http://tukaani.org/xz/> sh-3.2# 

Usa split

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

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

Para volver a cat yourFile.vdi.xz.* > yourFile.xz , haz cat yourFile.vdi.xz.* > yourFile.xz

7-zip es MÁS capaz, pero less ubicuo. Querrá verificar las copys de security y verificarlas de vez en cuando. Eche un vistazo a un package GUI de p7zip. Le permitirá seleccionar niveles de compression y tamaños de volumen de 1 GB … Si está haciendo esto en un trabajo por lotes desatendido, p7zip está más sucio. Puedo encontrar uno de mis fragments si lo necesitas.

Sin embargo, algo bueno de xz es que puedes asignar n núcleos a un trabajo. Creo que es la bandera -T . Restring nice bien a 20 si piensas usar ese mac para algo que no sea un gran pisapapeles si utilizas todos los núcleos a la vez.

Si es un file de text, puede usar la split del command del terminal para dividir su file inicial en files más pequeños y luego comprimirlos en un file por lotes. La página man en split le dirá cómo determinar el tamaño de los files más pequeños. El command dividir hará tantos files de salida como sea necesario en function de qué tan grande le indicó que crea cada file. El uso de la compression por lotes hace que este time sea bastante eficiente.