[gull] Wget and unzip

Félix Hauri felix at f-hauri.ch
Mon Oct 3 18:05:59 CEST 2011


On Mon, Oct 03, 2011 at 05:43:42PM +0200, Frédéric Benninger wrote:
> Bonjour,
> 
> Je cherche a gagner un peu de temps en chaînant wget et unzip.
> 
> wget -O - "http...." 2>/dev/null | unzip ...
> 
> Mais, je n'ai rien trouvé dans la doc pour dire a unzip d'utiliser STDIN.
> 
> Par contre 7z peut le faire avec l'option -si

Le format de Zip (PKWare) consiste entre autres à placer l'index
en fin de fichier. C'est la raison pour laquelle un fichier corrompu
doit être rescanné par un outil spécial afin de repérer les fichier
dans l'archive.

Donc non, ce n'est pas possible.

> 
> Mais peut être pas pour désarchiver, avez vous une astuce?
créer un ``wrapper'':

---- quick-wrapper-for-unzip-stdin ----
#!/bin/bash
# Quick wrapper for unzip

die() { echo >&2 "$@";exit 1; }
tempfile=$(mktemp zipwr-XXXXXXX.zip)
trap "rm $tempfile;exit" 0 1 2 3 6 9 15
[ -f "$tempfile" ] || die "Can't create tempfile"
cat >$tempfile
unzip $@ $tempfile
---- quick-wrapper-for-unzip-stdin ----

Et donc, tu devrais pouvoir:
wget -O - "http...." | $HOME/bin/quick-wrapper-for-unzip-stdin -j -d .

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list