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
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
gunzip */*.gz
?