Um pipe (representado pelo símbolo |
) envia a saída padrão de um processo para a entrada padrão de outro. No seu caso, parece que você deseja usar um arquivo nomeado para que um canal não seja apropriado - especificamente, não há nada no pipe (daí o erro gunzip
) porque o conteúdo remoto está indo para um arquivo local. Em vez disso, você precisaria extrair o nome do arquivo - por exemplo, de sua URL - algo como (usando os recursos internos de manipulação de strings do bash)
curl -O "$URL" && gunzip -f "${URL##*/}"
Se você quiser usar um pipe, a maneira de fazer isso seria algo como
curl "$URL" | gunzip -c
(sem a opção -O
), de modo que curl
transmita o conteúdo remoto para stdout
de onde ele pode ser canalizado para gunzip
, mas você precisará redirecionar a saída gunzip
para sobrescrever o%code% direcionar arquivo descompactado conforme apropriado.