-
Comprimir un archivo con la máxima compresión posible
Si estamos buscando comprimir un archivo y que este ocupe lo menos posible, lo mejor es usar xz porque xz suele dar los mejores resultados en términos de compresión. Esto puede servir para archivos grandes, como copias de seguridad de particiones enteras hechas con dd, archivos de video grandes o, en general, cualquier otro archivo que ocupe muchos GB. Lo hacemos de esta manera:
xz -9 -e -T4 -k /home/usuariox/archivo.img
- -9: Utiliza el nivel de compresión más alto.
- -e: Activa el modo de compresión extrema, que puede llevar más tiempo pero logra una mejor compresión.
- -T4: Activa el multi-hilo, usando 4 hilos.
- -k: Conserva el archivo original. Si no se pone -k, borrará el original al acabar la compresión.
El comportamiento correcto de la orden anterior será generar el archivo comprimido /home/usuariox/archivo.img.xz. Por defecto, el archivo resultante se pone siempre en la carpeta donde está el archivo original. Si queremos indicar el nombre y la ubicación del archivo final, debemos indicar a xz la opción -c que redirige la salida a standard output (stdout) y luego redirigir esa salida al archivo final. Lo hacemos de esta manera:
xz -9 -e -T4 -k -c /home/usuariox/archivo.img > /mnt/Pendrive/ArchivoComprimido.tar.xz
Aquí hay que tener especial cuidado de no poner al archivo un nombre diferente del original, porque si no, dentro del archivo comprimido, el archivo original habrá cambiado de nombre y habrá cogido el nombre que le indiquemos en el archivo al que redirigimos la salida stdout. Es decir, podemos indicar otra carpeta pero deberemos tener especial cuidado en que todo el nombre del archivo (antes de .xz) sea el nombre original.
Para comprimir una carpeta entera con la máxima compresión (y todo su contenido, obviamente), seguimos este hack.
Los hacks de hacks4geeks son minitutoriales rápidos pensados para geeks con conocimiento informático avanzado. Si no entiendes o no consigues ejecutar un hack de esta web considera suscribirte a Premium para solicitar asistencia sobre el mismo.