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
$