Para bzip2 en una Mac multinúcleo, puede ejecutar el siguiente comando (cuando esté dentro de la carpeta que desea bzip)
find . -type f -print0 | xargs -0 -n1 -P14 /opt/local/bin/bzip2
Esto comprimirá cada archivo recursivamente dentro de la carpeta en la que se encuentra su terminal usando 14 núcleos de CPU simultáneamente.
Puede ajustar cuántos núcleos usar editando
-P14
Si no sabe dónde está el binario bzip2, puede ejecutar el siguiente comando para averiguarlo
which bzip2
La salida de ese comando es lo que puede reemplazar
/opt/local/bin/bzip2
con
Si todos los archivos están en un solo directorio, entonces:
bzip2 *
Es suficiente. Un enfoque más sólido es:
find . -type f -exec bzip2 {} +
Lo que comprimirá cada archivo en el directorio actual y sus subdirectorios, y funcionará incluso si tiene decenas de miles de archivos (el uso de * se romperá si hay demasiados archivos en el directorio).
Si su computadora tiene varios núcleos, puede mejorar esto aún más comprimiendo varios archivos a la vez. Por ejemplo, si desea comprimir 4 archivos al mismo tiempo, use:
find . -type f -print0 | xargs -0 -n1 -P4 bzip2
He escrito debajo del script para bzip2
archivos a otro directorio
#!/bin/bash
filedir=/home/vikrant_singh_rana/test/*
for filename in $filedir; do
name=$(basename "$filename" | sed -e 's/\.[^.]*$//')
bzip2 -dc $filename > /home/vikrant_singh_rana/unzipfiles/$name
done
mi nombre de archivo de muestra era como
2001_xyz_30Sep2020_1400-30Sep2020_1500.csv.bz2
No pude obtener ningún comando directo, por lo tanto hice esto. Esto está funcionando bien como se esperaba.