Ciertamente hay más de una forma de hacer esto y lo que estoy presentando no es necesariamente la mejor, sin embargo, es una forma que funciona. Cree un script de bash utilizando el 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
Luego, deberías cd
al directorio que contiene los archivos comprimidos zip y ejecutar el script bash por su nombre si está en el $PATH
o su nombre de ruta si no está en el $PATH
.
Supongamos que lo guarda como getfilecount
en su directorio $HOME
, que normalmente no está en su $PATH
, cd
en el directorio que contiene los archivos comprimidos zip y luego lo utiliza:
~/getfilecount
Para hacer que el script bash
cree un archivo de texto vacío, p. ej. touch getfilecount
y luego abra el archivo, por ejemplo, open getfilecount
agrega el código anterior a través de copiar y pegar y guardarlo. Ahora haga el archivo ejecutable, por ejemplo, chmod +x getfilecount
y ahora puede usarlo como está o ubicarlo en un directorio que esté en el $PATH
, entonces todo lo que necesita escribir una vez que se cambie al directorio que contiene los archivos comprimidos zip es : getfilecount
A continuación se muestra una salida de muestra para mostrar la diferencia entre usar el método de comandos individuales y un script de bash.
Ejecución de comandos, uno a la vez:
$ 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 script bash
está en el $PATH
) :
$ cd zipfiles
$ getfilecount
The total file count is: 109
$