Faça o download do arquivo extrair para o diretório específico com cURL

1

Eu desejo que o arquivo seja baixado para ~/downloads e mantenha o mesmo nome de arquivo. Então eu quero que o arquivo seja extraído (conteúdo) para o diretório ~/downloads/ok . O diretório ~/downloads/ok existe.

curl -Lo ~/downloads https://github.com/janeczku/haproxy-acme-validation-plugin/archive/0.1.1.tar.gz | tar zxf -C ~/downloads/ok

Eu recebo o erro: tar (child): -C: Cannot open: No such file or directory

    
por Karl Morrison 05.03.2017 / 22:16

4 respostas

3

Se você estiver salvando o arquivo em algum local em ondulação, a canalização para tar será inútil: não há dados sendo transferidos pelo cano. E a opção f em tar é para leitura de um arquivo (o nome do arquivo deve ser o próximo argumento), de modo que não seja útil em um canal. Para salvar em um arquivo e enviar para um pipe, use tee :

curl -L https://github.com/janeczku/haproxy-acme-validation-plugin/archive/0.1.1.tar.gz |
  tee ~/downloads/0.1.1.tar.gz |
  tar zx -C ~/downloads/ok
    
por muru 06.03.2017 / 02:25
0

você pode querer

(cd ~/downloads && curl -L https://github.com/janeczku/haproxy-acme-validation-plugin/archive/0.1.1.tar.gz && cd ok && tar zxf ../0.1.1.tar.gz)

ou mais de forma legível

(
    f='https://github.com/janeczku/haproxy-acme-validation-plugin/archive/0.1.1.tar.gz'
    cd ~/downloads && 
    curl -L $f && 
    cd ok && 
    tar zxf ../${f##*/}
)

Estou usando parênteses para executar os comandos em um subshell para que seu diretório atual no seu shell atual não seja alterado

    
por glenn jackman 05.03.2017 / 23:23
0

Você precisa redirecionar o arquivo para o diretório de destino:

curl -LOk https://github.com/janeczku/haproxy-acme-validation-plugin/archive/0.1.1.tar.gz > ~/downloads/0.1.1.tar.gz

E continue com a extração do arquivo.

    
por yPhil 01.06.2017 / 02:50
0
curl -SL https://download.example.org/abc.tar.gz | tar -zxC /opt

produzirá a pasta /opt/abc .

O -x para extração, -z para .gz e -C para o diretório de destino,

    
por mloskot 28.09.2017 / 21:04