AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1156048
Accepted
Hannes F
Hannes F
Asked: 2024-03-11 18:44:48 +0800 CST2024-03-11 18:44:48 +0800 CST 2024-03-11 18:44:48 +0800 CST

use wget no script bash - como obter o nome do arquivo baixado? (usando disposição de conteúdo)

  • 772

estou usando o wget para baixar algum arquivo em um script bash. eu preciso usá-lo assim:

wget -t 20 --content-disposition $link

o problema aqui é que não consigo especificar o arquivo de saída, pois ele vem do servidor. Existe alguma maneira de obter o nome do arquivo no próprio comando? Então, onde foi escrito para usá-lo posteriormente no script?

Muito obrigado!

Saúde

bash
  • 2 2 respostas
  • 51 Views

2 respostas

  • Voted
  1. djdomi
    2024-03-13T04:31:42+08:002024-03-13T04:31:42+08:00

    Cara wget está dizendo:

    -O arquivo --output-document=arquivo Os documentos não serão gravados nos arquivos apropriados, mas todos serão concatenados e gravados no arquivo. Se - for usado como arquivo, os documentos serão impressos na saída padrão, desativando a conversão do link. (Use ./- para imprimir em um arquivo chamado literalmente -.) O uso de -O não significa simplesmente "usar o nome do arquivo em vez daquele no URL;" em vez disso, é análogo ao redirecionamento de shell: wget -O file http://foo destina-se a funcionar como wget -O - http://foo > file; O arquivo será truncado imediatamente e todo o conteúdo baixado será gravado lá.

    Por esse motivo, -N (para verificação de carimbo de data/hora) não é suportado em combinação com -O: como o arquivo é sempre criado recentemente, ele sempre terá um carimbo de data/hora muito novo. Um aviso será emitido se esta combinação for usada.

    Da mesma forma, usar -r ou -p com -O pode não funcionar como esperado: o Wget não apenas baixará o primeiro arquivo para arquivo e depois baixará o restante para seus nomes normais: todo o conteúdo baixado será colocado em arquivo. Isso foi desabilitado na versão 1.11, mas foi reinstaurado (com um aviso) na 1.11.2, pois há alguns casos em que esse comportamento pode realmente ter alguma utilidade.

    Observe que uma combinação com -k só é permitida ao baixar um único documento, pois nesse caso apenas converterá todos os URIs relativos em externos; -k não faz sentido para vários URIs quando todos estão sendo baixados para um único arquivo

    Brevemente respondido

    wgetOutPut=filename_or_fullpath_and_name
    wget -t 20 --content-disposition $link -O $wgetOutPut
    
    • 0
  2. Best Answer
    Hannes F
    2024-03-13T21:30:35+08:002024-03-13T21:30:35+08:00

    obrigado pela ajuda, mas não resolve o problema: preciso do nome do arquivo que vem do servidor para fazer o download. e esse nome é o que preciso no script.

    A solução por enquanto é esta para mim:

    file_name=$(wget -nv -t 20 --content-disposition "$link" 2>&1 | cut -d\" -f2)

    Então eu tenho o nome e posso baixar o arquivo.. meio estúpido, mas funciona.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve