curl mostra um sinal de maior que em vez de carregar um determinado arquivo para um determinado servidor

1

Eu quero fazer upload de um arquivo para um servidor WebDAV na linha de comando do Linux. A recomendação padrão para isso é usar o curl da seguinte maneira:

curl -u mail_address:password -T filename.ext https://my_server.com/dav/filename.ext

Quando executo este comando, ele mostra um sinal de maior que no prompt de comando, como se meu comando estivesse incompleto, sem que o upload ocorra:

$ curl -u mail_address:password -T filename.ext https://my_server.com/dav/filename.ext
$ >

No entanto, ele não me diz o que eu tenho que digitar aqui, e nenhuma afirmação na internet (por exemplo, Existe uma maneira de fazer o upload para o armazenamento box.com através da linha de comando? ) já mencionou que você tem que digitar algumas coisas adicionais após este comando. Alguma idéia de como consertar isso? mail_address e password referem-se a uma conta existente, e filename.ext refere-se a um arquivo existente na minha máquina.

P.S.

  • Ubuntu 14.04
  • curl 7.35.0 (x86_64-pc-linux-gnu) libcurl / 7.35.0 OpenSSL / 1.0.1f libl / 1.2.8 libidn / 1.28 librtmp / 2.3
por manuel 26.07.2016 / 13:51

1 resposta

1

Aposto que sua senha tem uma aspa ( ' ou " ) nela. O Bash acha que você iniciou uma string / quote de várias linhas. Assim, ele exibe seu $PS2 prompt na segunda linha , que geralmente é > .

Certifique-se de que todos os seus argumentos tenham escapado corretamente .

Exemplo:
Se sua senha for $jkl;'" , você pode escapar com aspas duplas como "\$jkl;'\"" .

Como alternativa, você pode executar seu comando da seguinte forma:

curl -u mail_address -T filename.ext https://dav.box.com/dav/filename.ext

Em seguida, curl solicitará uma senha assim:

deltik@node51 [~]$ curl -u mail_address -T filename.ext https://dav.box.com/dav/filename.ext
Enter host password for user 'mail_address':

Documentação :

-u, --user <user:password>

Specify the user name and password to use for server authentication. Overrides -n, --netrc and --netrc-optional.

If you simply specify the user name, curl will prompt for a password.

The user name and passwords are split up on the first colon, which makes it impossible to use a colon in the user name with this option. The password can, still.

When using Kerberos V5 with a Windows based server you should include the Windows domain name in the user name, in order for the server to successfully obtain a Kerberos Ticket. If you don't then the initial authentication handshake may fail.

When using NTLM, the user name can be specified simply as the user name, without the domain, if there is a single domain and forest in your setup for example.

To specify the domain name use either Down-Level Logon Name or UPN (User Principal Name) formats. For example, EXAMPLE\user and [email protected] respectively.

If you use a Windows SSPI-enabled curl binary and perform Kerberos V5, Negotiate, NTLM or Digest authentication then you can tell curl to select the user name and password from your environment by specifying a single colon with this option: "-u :".

If this option is used several times, the last one will be used.

    
por 26.07.2016 / 14:49