1 votes

Lister le nombre de fichiers dans plusieurs fichiers zip

Comment puis-je obtenir le nombre total de fichiers dans plusieurs fichiers zip en même temps ? J'ai environ 1000 fichiers zip dans un dossier et je voudrais connaître le nombre total de fichiers qu'ils contiennent tous ensemble. Comment faire ? J'ai essayé

zipinfo -t file.zip 

Mais cela ne me donne que le numéro de cette archive, j'ai aussi essayé

zipinfo -t *zip/?.zip

et obtient

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

Des suggestions ?

0voto

user3439894 Points 52496

Il y a certainement plus d'une façon de le faire et ce que je présente n'est pas nécessairement la meilleure façon, cependant c'est une façon qui fonctionne. Créez un bash script en utilisant ce qui suit code .

#!/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

Alors vous cd dans le répertoire contenant les fichiers de l'archive zip et exécutez le script de bash par ses nom si c'est dans le $PATH ou son chemin d'accès s'il n'est pas dans la $PATH .

Disons que vous l'enregistrez en tant que getfilecount dans votre $HOME qui, normalement, ne se trouve pas dans votre $PATH vous cd dans le répertoire contenant les fichiers de l'archive zip et ensuite utiliser :

~/getfilecount

Pour faire le bash script créer un fichier texte vide, par ex. touch getfilecount et ensuite ouvrir le fichier, par ex. open getfilecount ajouter le code ci-dessus par copier-coller et l'enregistrer. Maintenant, rendez le fichier exécutable, par exemple chmod +x getfilecount et maintenant vous pouvez l'utiliser tel quel ou le placer dans un répertoire qui est dans le $PATH alors tout ce que vous aurez à taper une fois que vous serez dans le répertoire contenant les fichiers de l'archive zip est : getfilecount

Voici un exemple de sortie pour montrer la différence entre l'utilisation de la méthode des commandes uniques et un bash script.

Je donne des ordres, un par un :

$ 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.
$

Utilisation de getfilecount (lorsque le bash script se trouve dans la section $PATH ) :

$ cd zipfiles
$ getfilecount

The total file count is: 109
$

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X