Mám adresář, kde je více složek, každá ze složek obsahuje soubor .gz. Jak je mohu všechny rozbalit najednou?
Moje data vypadají takto
Seznam složek
A B C D
V každém z nich je soubor jako
A a.out.gz B b.out.gz C c.out.gz D d.out.gz
Komentáře
Odpověď
Toto používá gunzip
rozbalte všechny soubory ve složce a použijte koncovku .out.gz
gunzip */*.out.gz
Tím se „smyčka“ * prostřednictvím všech složek, které mají v sobě soubor se zipem. Dovolte mi přidat příklad:
A a.out.gz B b.out.gz C c.out.gz D d.out.gz E e.out
Pomocí výše uvedeného příkazu a.out.gz
b.out.gz
c.out.gz
d.out.gz
všechny rozbaleny, ale nedotkne se e.out
protože není zazipován.
* Tomuto se říká globbing nebo rozšíření názvu souboru . Možná si o tom přečtete zde .
Komentáře
- Ale co když mám více složek, z nichž každá obsahuje zip soubor. Jak mohu procházet všechny složky?
-
*/*.out.gz
provede smyčku všech složek (' s*/
část) - @HoHoHo, jak poukazují bludiště, " smyčka ". Přidal jsem ' nějaké další vysvětlení a odkaz na stránku, která tento koncept dále vysvětluje 🙂
Odpověď
find . -type f -name "*.gz" -execdir gunzip {} \;
možnost execdir k vyhledání příčin „find“ na „cd“ v každém adresáři a spuštění příkazu exec (gunzip v v tomto případě) a poté „cd“ zpět na cwd
gunzip */*.gz
?