curl é uma ferramenta de linha de comando para transferir dados de ou para um servidor, usando qualquer um dos protocolos suportados (HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP ou FILE). curl é alimentado por Libcurl. Esta ferramenta é preferida para automação, uma vez que foi projetada para funcionar sem interação do usuário. curl pode transferir vários arquivos de uma vez.

Sintaxe:

curl [options] [URL...]

URL : O uso mais básico do curl é digitar o comando seguido pelo URL.

curl https://www.geeksforgeeks.org

Isso deve exibir o conteúdo da URL no terminal. A sintaxe do URL depende do protocolo e vários URLs podem ser escritos como conjuntos como:

curl http://site.{one, two, three}.com

URLs com séries de sequência numérica podem ser escritos como:

curl ftp://ftp.example.com/file[1-20].jpeg

Medidor de progresso: curl exibe um medidor de progresso durante o uso para indicar a taxa de transferência, quantidade de dados transferidos, tempo restante, etc.

curl -# -o ftp://ftp.example.com/file.zip
curl --silent ftp://ftp.example.com/file.zip

Se você gosta de uma barra de progresso em vez de medidor, você pode usar a opção - # como no exemplo acima, ou –silent se quiser desabilitá-la completamente.

Exemplo:

Opções:

  • -o: salva o arquivo baixado na máquina local com o nome fornecido nos parâmetros.

    Sintaxe:

    curl -o [nome do arquivo] [URL ...]
    

    Exemplo:

    curl -o hello.zip ftp://speedtest.tele2.net/1MB.zip
    

    Saída:



    O exemplo acima baixa o arquivo do servidor FTP e o salva com o nome hello.zip .

  • -O: esta opção baixa o arquivo e salva-o com o mesmo nome da URL.

    Sintaxe:

    curl -O [URL ...]
    

    Exemplo:

    curl -O ftp://speedtest.tele2.net/1MB.zip

    Saída:

  • -C -: Esta opção retoma o download que foi interrompido por algum motivo. Isso é útil ao baixar arquivos grandes e foi interrompido.

    Sintaxe:

    curl -C - [URL ...]
    

    Exemplo:

    curl -C - -O ftp://speedtest.tele2.net/1MB.zip

  • –Limit-rate: Esta opção limita o limite superior da taxa de transferência de dados e o mantém em torno do valor fornecido em bytes.

    Sintaxe:

    curl - taxa-limite [valor] [URL]
    

    Exemplo:

    curl --limit-rate 1000K -O ftp://speedtest.tele2.net/1MB.zip
    

    Saída:



    O comando limita o download a 1000K bytes.

  • -u: curl também oferece opções para baixar arquivos de servidores FTP autenticados pelo usuário.

    Sintaxe:

    curl -u {nome de usuário}: {senha} [FTP_URL]
    

    Exemplo:

    curl -u demo: senha -O ftp://test.rebex.net/readme.txt

    Exemplo:

  • -T: Esta opção ajuda a enviar um arquivo para o servidor FTP.

    Sintaxe:

    curl -u {nome de usuário}: {senha} -T {nome do arquivo} {FTP_Location}
    

    Se você deseja anexar um arquivo FTP já existente, pode usar a opção -a ou –append .

  • –Libcurl: Esta opção é muito útil da perspectiva dos desenvolvedores. Se esta opção for anexada a qualquer comando cURL, ela produzirá o código-fonte C que usa libcurl para a opção especificada. É o código semelhante à implementação da linha de comando.

    Sintaxe:

    curl [URL ...] --libcurl [nome do arquivo]
    

    Exemplo:

    curl https://www.geeksforgeeks.org> log.html --libcurl code.c
    

    Saída:

    O exemplo acima baixa o HTML e o salva em log.html e o código no arquivo code.c. O próximo comando mostra as primeiras 30 linhas do código.

  • -x, –proxy: curl também nos permite usar um proxy para acessar a URL.

    Sintaxe:

    curl -x [proxy_name]: [porta] [URL ...]
    

    Se o proxy requer autenticação, ele pode ser usado com o comando:

    curl -u [usuário]: [senha] -x [nome_proxy]: [porta] [URL ...]
    
  • Enviando e-mail: Como o curl pode transferir dados por meio de diferentes protocolos, incluindo SMTP, podemos usar o curl para enviar e-mails.

    Sintaxe:

    curl –url [URL SMTP] –mail-from [sender_mail] –mail-rcpt [receiver_mail] -n –ssl-reqd -u {email}: {password} -T [Mail text file]

  • Protocolo DICT: O Libcurl define o protocolo DICT que pode ser usado para obter facilmente a definição ou o significado de qualquer palavra diretamente da linha de comando.

    Sintaxe:

    curl [protocolo: [dicionário_URL]: [palavra]
    

    Exemplo:

    curl dict: //dict.org/d: root
    

    Saída:

Nota: Existem várias outras opções fornecidas por cURL que podem ser verificadas na página de manual. A biblioteca Libcurl foi portada para várias linguagens de programação. É aconselhável visitar o site do projeto individual para documentação.