Portál AbcLinuxu, 24. dubna 2024 11:46


Dotaz: Rozbaleni zip rekurzivne

10.4.2014 11:33 Petr | skóre: 29
Rozbaleni zip rekurzivne
Přečteno: 285×
Odpovědět | Admin
Potreboval bych v aktualnim adresari a rekurzivne ve vsech podadresarich rozbalit soubory typu zip... zkousel jsem bash -c for i in `ls -R *.zip`; do unzip $i; done, toto nefuguje, muzete me prosim popostrcit? Diky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.4.2014 11:41 axel
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Odpovědět | | Sbalit | Link | Blokovat | Admin
find -exec
10.4.2014 11:43 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Odpovědět | | Sbalit | Link | Blokovat | Admin
Něco jako:
find /home/pepa -type f -iname "*.zip" -print0 -exec unzip {} \;
Nezafunguje korektně na zip-y rozbalené v průběhu z nějakého zipu!
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
10.4.2014 11:43 Logik
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Odpovědět | | Sbalit | Link | Blokovat | Admin
Koukni na příkaz find. Nástřel je

find . -name \*.zip -exec unzip \{\} \;

popř.

find . -name \*.zip -print0 | xargs -0 -n 1 unzip $i

10.4.2014 12:03 Petr | skóre: 29
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Odpovědět | | Sbalit | Link | Blokovat | Admin
Diky, zatiim jsem to upravil na: for i in `find . -name '*.rar' -print 2>/dev/null` do unrar $i done, funguje to jen se vse rozbaluje do aktualniho adresare a ne do prislusnych podadresaru..
10.4.2014 12:03 Petr | skóre: 29
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Tedy zip ne rar, sorry.
10.4.2014 13:04 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Když už tam plantáš ten for, tak si tam přidej i cd na basename ;).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
10.4.2014 14:22 logik
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Tvoje řešení má problém, pokud budou v adresáři soubory s whitespace (mezera, newline) v názvu.

Proto se používá místo `` volba -exec, popř -print0 | xargs -0 (kde je oddělovač null byte)
13.4.2014 08:51 karel_iv | skóre: 2
Rozbalit Rozbalit vše Re: Rozbaleni zip rekurzivne
Odpovědět | | Sbalit | Link | Blokovat | Admin
dtrx -r
dtrx je program "do the right extension" takže rozbaluje všechno a nemusíš si pamatovat syntaxi. Hloupý je, že to asi rozbalí i jiné typy.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.