Minulla on hakemisto, jossa on useita kansioita, joista kukin sisältää .gz-tiedoston. Kuinka voin purkaa ne kaikki kerralla?
Tietoni näyttävät tältä
Kansioluettelo
A B C D
Jokaisessa niistä on tiedosto nimellä
A a.out.gz B b.out.gz C c.out.gz D d.out.gz
Kommentit
vastaus
Tämä käyttää gunzip
purkamaan kaikki kansion tiedostot ja saamalla loppuosan .out.gz
gunzip */*.out.gz
Tämä ”silmukka” * kaikkien kansioiden läpi, joissa on pakattu tiedosto. Haluan lisätä esimerkin:
A a.out.gz B b.out.gz C c.out.gz D d.out.gz E e.out
Yllä olevan komennon avulla a.out.gz
b.out.gz
c.out.gz
d.out.gz
puretaan kaikki, mutta se ei koskenut e.out
koska sitä ei ole pakattu.
* Tätä kutsutaan globbing tai tiedostonimen laajennus . Haluat ehkä lukea lisää siitä täältä .
Kommentit
- Mutta entä jos minulla on useita kansioita, joista kukin sisältää zip-tiedoston. Kuinka voin selata kaikkia kansioita?
-
*/*.out.gz
silmukkaa kaikki kansiot (se ' s*/
osa) - @HoHoHo kuten mazs huomauttaa, tämä tekee " -silmukan ". Olen ' lisännyt ylimääräisen selityksen ja linkin sivulle, joka selittää käsitteen tarkemmin 🙂
Vastaa
find . -type f -name "*.gz" -execdir gunzip {} \;
execdir-vaihtoehto etsiessään aiheuttaa ”etsi” – ”cd” jokaiseen hakemistoon vuorotellen ja suorittaa komennon exec (gunzip in tässä tapauksessa) ja sitten ”cd” takaisin cwd: hen
gunzip */*.gz
?