Van egy könyvtáram, ahol több mappa van, mindegyik mappa tartalmaz egy .gz fájlt. Hogyan tudom kibontani mindet egyszerre?

Az adataim így néznek ki

Mappák listája

A B C D 

Mindegyikükben van egy fájl:

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

Megjegyzések

  • gunzip */*.gz?

Válasz

Ehhez gunzip a mappában található összes fájl kibontásához és a .out.gz

gunzip */*.out.gz 

végződéshez az összes olyan mappán keresztül, amelyben van egy zip fájl. Hadd adjak egy példát:

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

A fenti parancs használatával a.out.gz b.out.gz c.out.gz d.out.gz mind kibontja, de nem érintette e.out mivel nincs tömörítve.

* ezt hívjuk globbing nak vagy fájlnév kibővítés nek. Lehet, hogy szeretne erről többet olvasni itt .

Megjegyzések

  • De mi van, ha több mappám van, amelyek mindegyike tartalmaz zip fájlt. Hogyan tudok végigvezetni az összes mappán?
  • a */*.out.gz az összes mappát hurokba zárja (ez ' s a */ rész)
  • @HoHoHo, ahogy a mazs rámutat, ez " hurok ". <

tettem néhány további magyarázatot és egy linket egy oldalra, amely tovább magyarázza a fogalmat 🙂

Válasz

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

az execdir opció a kereséshez a “find” -ot “cd” -re váltja az egyes könyvtárakba, és futtassa az exec parancsot (gunzip ebben az esetben), majd “cd” vissza a cwd

-re

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük