Incluso si es una de las soluciones de compresión/archivo más rápidas disponibles, gzip tiene un pequeño problema: no admite múltiples procesadores/núcleos. Por lo tanto, si tiene una PC relativamente nueva, no aprovecha sus capacidades. cerdoz es una implementación de subprocesos múltiples de gzip que le permite comprimir archivos al formato zip de GNU en una fracción del tiempo. Aquí se explica cómo comprimir sus archivos más rápido con pigz.
Instalación
Para instalar pigz en Ubuntu, Mint y otras distribuciones compatibles con Debian, use:
En Arch y Manjaro Linux, instálelo con:
Si está utilizando openSUSE, intente:
Comprimir un solo archivo
Para comprimir cualquier archivo a formato GNU Zip con pigz, use:
Para algunos, puede ser un problema que, por defecto, pigz elimine el archivo original después de la compresión. Si desea mantenerlo, debe utilizar el -k
cambiar (observe que está en minúsculas).
Pigz admite múltiples niveles de compresión y puede elegir entre ellos indicando su número después de un guión. Por ejemplo:
pigz -5 FILE_TO_BE_COMPRESSED
Puede usar números del 1 al 9, donde «1» ofrece el rendimiento más rápido pero la compresión más baja y «9» ofrece la compresión más lenta pero más alta.
Compresión de carpetas
Pigz tiene una restricción importante: no admite carpetas. Solo puede comprimir archivos individuales con él. Una solución es usarlo junto con tar.
Digamos que desea comprimir su carpeta «Imágenes». Dado que tar admite el uso de programas de compresión externos, puede hacer lo siguiente:
tar --use-compress-program="pigz -k -9" -cf pictures.tar.gz Pictures
En el comando anterior, tar --use-compress-program
establece que aunque creará un archivo de almacenamiento con tar, la compresión de su contenido se realizará a través de un programa externo.
Este programa externo y sus parámetros se definen con el pigz -k -9
parte del comando.
Finalmente, indique que desea crear un archivo («-cf») llamado «imágenes.tar.gz» con todo lo que se encuentra en la carpeta «Imágenes».
Descomprimir archivos y carpetas
Descomprimir cualquier archivo gz con pigz es tan simple como ingresar cualquiera de los siguientes comandos:
pigz -d FILENAME.gz unpigz FILENAME.gz
En nuestros archivos tar.gz creados anteriormente, la descompresión de carpetas utiliza el mismo enfoque «tar».
tar --use-compress-program="pigz -d" -xvf pictures.tar.gz
Limitación de la paralelización
Finalmente, debe tenerse en cuenta que un interruptor adicional podría ser útil: p
. Pigz, por defecto, usa todos los procesadores/núcleos en su computadora. Al comprimir grandes conjuntos de datos, esto puede afectar la capacidad de respuesta de su computadora.
Con el p
switch, puede limitar pigz para usar solo una cantidad específica de procesadores/núcleos. Esto dejará el resto de los núcleos libres para otras tareas e interactividad. Para hacerlo, agregue la cantidad de procesadores/núcleos justo después del cambio:
pigz -k -p2 FILE_TO_BE_COMPRESSED
-p2
restringe pigz para usar solo dos procesadores/núcleos. Puede usar cualquier número que desee, pero se sugiere que lo mantenga dentro de los límites de su hardware.
Para obtener más información sobre la compresión y extracción de archivos en Linux, consulte nuestra guía detallada sobre los comandos de archivado y compresión de Linux.
Credito de imagen: Miguel Á. Padriñán @Pexels