Ik heb een map met meerdere mappen, elke map bevat een .gz-bestand. Hoe kan ik ze allemaal tegelijk uitpakken?

Mijn gegevens zien er als volgt uit

Lijst met mappen

A B C D 

In elk van hen is er een bestand als

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

Reacties

  • gunzip */*.gz?

Antwoord

Dit gebruikt gunzip om alle bestanden in een map uit te pakken en het einde te hebben .out.gz

gunzip */*.out.gz 

Dit zal “loop” * door alle mappen met een gecomprimeerd bestand. Laat me een voorbeeld toevoegen:

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

Met de bovenstaande opdracht a.out.gz b.out.gz c.out.gz d.out.gz worden allemaal uitgepakt, maar “raakt e.out omdat het niet is “gezipt.

* dit wordt globbing of bestandsnaamuitbreiding genoemd. Misschien wil je er hier wat meer over lezen.

Reacties

  • Maar wat als ik meerdere mappen heb die elk een zip-bestand bevatten? Hoe kan ik alle mappen doorlopen?
  • de */*.out.gz zal alle mappen herhalen (het ' is de */ part)
  • @HoHoHo zoals mazs aangeeft, dit doet " lus ". Ik ' heb wat extra uitleg toegevoegd en een link naar een pagina die het concept verder uitlegt 🙂

Antwoord

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

de execdir-optie om oorzaken “find” naar “cd” in elke map te vinden en voer het exec-commando uit (gunzip in dit geval) en dan “cd” terug naar de cwd

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *