2011-07-27 20 views

Respuesta

16

Si todos los archivos están en un solo directorio a continuación:

bzip2 * 

es suficiente. Un enfoque más robusto es:

find . -type f -exec bzip2 {} + 

Qué va a comprimir todos los archivos en el directorio actual y sus subdirectorios, y trabajará incluso si tiene decenas de miles de archivos (usando * se romperá si hay demasiados archivos en el directorio).

Si su computadora tiene varios núcleos, puede mejorar esto aún más al comprimir varios archivos a la vez. Por ejemplo, si desea comprimir 4 ficheros simultáneamente, utilice:

find . -type f -print0 | xargs -0 -n1 -P4 bzip2 
+0

No entiendo en qué parte de su último comando especificó utilizar bzip2 –

+0

a la derecha, le faltaba el comando "bzip2". fijo. – sagi

+0

¿Cuál es el significado de '{} +'? – Lee

0

Desde el interior del directorio: bzip2 *

0
find PATH_TO_FOLDER -maxdepth 1 -type f -exec bzip2 -zk {} \; 
2

Para bzip2 en una multi-core Mac, puede emitir 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 bZIP todos los archivos de forma recursiva dentro de la carpeta de su terminal está en el uso de 14 núcleos de CPU al mismo tiempo.

Se puede ajustar el número de núcleos de usar editando

-P14 

Si no sabe dónde está el binario bzip2 es, puede emitir el comando siguiente para averiguarlo

which bzip2 

la salida de este comando es lo que puede reemplazar

/opt/local/bin/bzip2 

con

Cuestiones relacionadas