Jai un répertoire contenant plusieurs dossiers, chacun contenant un fichier .gz. Comment puis-je les décompresser tous en même temps?

Mes données ressemblent à ceci

Liste des dossiers

A B C D 

Dans chacun deux, il y a un fichier comme

A a.out.gz B b.out.gz C c.out.gz D d.out.gz 

Commentaires

  • gunzip */*.gz?

Réponse

Ceci utilise gunzip pour décompresser tous les fichiers dun dossier et avoir la terminaison .out.gz

gunzip */*.out.gz 

Cela « boucle » * dans tous les dossiers contenant un fichier compressé. Permettez-moi dajouter un exemple:

A a.out.gz B b.out.gz C c.out.gz D d.out.gz E e.out 

En utilisant la commande ci-dessus, a.out.gz b.out.gz c.out.gz d.out.gz sera tous décompressé, mais il « t touchera e.out puisquil nest pas zippé.

* cela sappelle globbing ou extension de nom de fichier . Vous voudrez peut-être en savoir plus à ce sujet ici .

Commentaires

  • Mais que faire si jai plusieurs dossiers dont chacun contient un fichier zip. Comment puis-je parcourir tous les dossiers en boucle?
  • */*.out.gz bouclera tous les dossiers (il ' est le */ part)
  • @HoHoHo comme le soulignent les mazs, cela fait " boucle ". Jai ' ajouté des explications supplémentaires et un lien vers une page qui explique plus en détail le concept 🙂

Réponse

find . -type f -name "*.gz" -execdir gunzip {} \; 

loption execdir pour trouver provoque « find » à « cd » dans chaque répertoire à tour de rôle et exécutez la commande exec (gunzip in ce cas) puis « cd » pour revenir au cwd

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *