1 votos

Listar el número de archivos en varios archivos zip

¿Cómo puedo obtener el número total de archivos en varios archivos zip al mismo tiempo? Tengo alrededor de 1000 archivos zip en una carpeta y me gustaría saber la cantidad total de archivos dentro de todos ellos combinados. ¿Cómo puedo hacerlo? He intentado

zipinfo -t file.zip 

Pero eso sólo me da el número de ese archivo, también he probado

zipinfo -t *zip/?.zip

y obtiene

caution: filename not matched:  Jo Coo-Day-Sun.zip
caution: filename not matched:  Micke Mouse-Stare-Well-Pt1.zip
caution: filename not matched:  Micke Mouse Cooley-Stare-Well-Pt2.zip

¿Alguna sugerencia?

0voto

user3439894 Puntos 5883

Ciertamente hay más de una manera de hacer esto y lo que estoy presentando no es necesariamente la mejor manera, sin embargo es una manera que funciona. Crea un bash script usando lo siguiente código .

#!/bin/bash
c=0
for f in *.zip; do
    x="$(zipinfo -t "$f" | awk '{print $1}')"
    c=$(( $c + $x ))
done
echo "The total file count is:" $c

Entonces cd al directorio que contiene los archivos zip y ejecutar el bash script por su nombre si está en el $PATH o su ruta de acceso si no está en el $PATH .

Digamos que lo guarda como getfilecount en su $HOME que normalmente no está en su $PATH usted cd al directorio que contiene los archivos zip y luego utilizar:

~/getfilecount

Para hacer el bash script crea un archivo de texto vacío, por ejemplo touch getfilecount y luego abrir el archivo, por ejemplo open getfilecount añadir el código arriba a través de copiar y pegar y guardarlo. Ahora haz que el archivo sea ejecutable, por ejemplo chmod +x getfilecount y ahora puedes usarlo tal cual o colocarlo en un directorio que esté en el $PATH entonces todo lo que necesitas escribir una vez que cambies al directorio que contiene los archivos zip es: getfilecount

A continuación se muestra un ejemplo de salida para mostrar la diferencia entre usar el método de comandos simples y un bash script.

Emitiendo comandos, de uno en uno:

$ cd zipfiles
$ ls
codetest.zip    destination.zip helloworld.zip  source.zip
$ zipinfo -t "*.zip"
1 file, 820 bytes uncompressed, 437 bytes compressed:  46.7%

1 file, 0 bytes uncompressed, 0 bytes compressed:  0.0%

6 files, 12385 bytes uncompressed, 895 bytes compressed:  92.8%

101 files, 0 bytes uncompressed, 0 bytes compressed:  0.0%

4 archives were successfully processed.
$

Utilizando getfilecount (cuando el bash script está en el $PATH ) :

$ cd zipfiles
$ getfilecount

The total file count is: 109
$

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X