¿Cómo podemos GZip cada archivo por separado?GZip cada archivo por separado
No quiero tener todos los archivos en un gran alquitrán.
¿Cómo podemos GZip cada archivo por separado?GZip cada archivo por separado
No quiero tener todos los archivos en un gran alquitrán.
Puede utilizar gzip *
Nota:
-k
(--keep
) para conservar los archivos originales.Pruebe un bucle
$ for file in *; do gzip "$file"; done
Si desea gzip todos los archivos de forma recursiva, se puede usar encuentra canalizado a xargs:
$ find . -type f -print0 | xargs -0r gzip
Fácil y respuesta muy rápida que utilizarán todos sus núcleos de CPU en paralelo:
parallel gzip ::: *
¡Eh, esta respuesta necesita más votos ascendentes! – zx8754
@ zx8754 ** GNU Parallel ** es una herramienta fantástica que se debe utilizar mucho más en este mundo en el que las CPU solo obtienen más núcleos en lugar de más velocidad. Hay un montón de ejemplos que todos haríamos bien en tomar 10 minutos para leer ... https://www.gnu.org/software/parallel/parallel_tutorial.html –
¡Sabía sobre el paralelo, pero no olvide utilizarlo! Corrió la respuesta aceptada y luego se desplazó hacia abajo para ver su respuesta ... ¡ahorró muchas horas! ¿Tal vez sea una buena idea hacer que su comentario edite su respuesta? – zx8754
Después de siete años, este comentario altamente votado todavía no tiene su propia respuesta completa, así que lo estoy promoviendo ahora:
gzip -r .
Esto tiene dos ventajas sobre la respuesta actualmente aceptada: funciona recursivamente si hay subdirectorios, y no fallará desde Argument list too long
si la cantidad de archivos es muy grande.
No hay necesidad de encontrar + xargs. Gzip puede manejar la recursividad en sí: 'gzip -9r .' – Idelic
Como siempre,' find. -type f -print0 | xargs -0r gzip' es mejor. – musiphil
Para el equivalente de 'gzip *', también puede necesitar '-maxdepth 1' en' find'. – musiphil