curl hiển thị một dấu hiệu lớn hơn thay vì tải một tệp đã cho lên một máy chủ nhất định


1

Tôi muốn tải tệp lên máy chủ WebDAV trong dòng lệnh Linux. Khuyến nghị tiêu chuẩn cho việc này là sử dụng curl theo cách sau:

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

Khi tôi thực thi lệnh này, nó sẽ hiển thị cho tôi một dấu hiệu lớn hơn dấu nhắc lệnh, như thể lệnh của tôi chưa hoàn thành, không có quá trình tải lên nào xảy ra:

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

Tuy nhiên, nó không cho tôi biết những gì tôi phải nhập ở đây và không tạo ra trên internet (ví dụ: Có cách nào để tải lên lưu trữ box.com qua dòng lệnh không? ) Đã từng đề cập rằng bạn phải nhập một số nội dung bổ sung sau lệnh này. Bất kỳ ý tưởng làm thế nào để sửa lỗi này? mail_addressmật khẩu đề cập đến một tài khoản hiện có và filename.ext đề cập đến một tệp hiện có trên máy của tôi.

PS

  • Ubuntu 14.04
  • curl 7.35.0 (x86_64-pc-linux-gnu) libcurl / 7.35.0 OpenSSL / 1.0.1f zlib / 1.2.8 libidn / 1.28 librtmp / 2.3

Câu trả lời:


1

Tôi đặt cược mật khẩu của bạn có dấu ngoặc kép ( 'hoặc ") trong đó. Bash nghĩ rằng bạn đã bắt đầu một chuỗi / trích dẫn nhiều dòng, vì vậy nó cung cấp cho bạn $PS2lời nhắc của bạn trên dòng thứ hai, thường là vậy >.

Hãy chắc chắn rằng tất cả các đối số của bạn được thoát đúng .

Ví dụ:
Nếu mật khẩu của bạn là $jkl;'", thì bạn có thể thoát nó bằng dấu ngoặc kép như thế nào "\$jkl;'\"".

Ngoài ra, bạn có thể chạy lệnh của bạn như thế này:

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

Sau đó, curlsẽ nhắc bạn nhập mật khẩu như vậy:

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

Tài liệu :

-u, --user <user:password>

Chỉ định tên người dùng và mật khẩu để sử dụng cho xác thực máy chủ. Ghi đè -n, --netrc--netrc-optional.

Nếu bạn chỉ cần chỉ định tên người dùng, curl sẽ nhắc nhập mật khẩu.

Tên người dùng và mật khẩu được chia ra trên dấu hai chấm đầu tiên, điều này khiến cho không thể sử dụng dấu hai chấm trong tên người dùng với tùy chọn này. Mật khẩu có thể, vẫn còn.

Khi sử dụng Kerberos V5 với máy chủ chạy Windows, bạn nên bao gồm tên miền Windows trong tên người dùng, để máy chủ có được vé Kerberos thành công. Nếu bạn không thì bắt tay xác thực ban đầu có thể thất bại.

Khi sử dụng NTLM, tên người dùng có thể được chỉ định đơn giản là tên người dùng, không có tên miền, nếu có một tên miền và rừng trong thiết lập của bạn chẳng hạn.

Để chỉ định tên miền, hãy sử dụng các định dạng Tên đăng nhập cấp thấp hoặc UPN (Tên gốc của người dùng). Ví dụ: EXAMPLE \ user và user@example.com tương ứng.

Nếu bạn sử dụng nhị phân curl hỗ trợ Windows SSPI và thực hiện xác thực Kerberos V5, đàm phán, NTLM hoặc Digest thì bạn có thể yêu cầu curl chọn tên người dùng và mật khẩu từ môi trường của mình bằng cách chỉ định một dấu hai chấm với tùy chọn này: "-u:" .

Nếu tùy chọn này được sử dụng nhiều lần, cái cuối cùng sẽ được sử dụng.


Thật vậy, có một dấu ngoặc kép trong mật khẩu của tôi. Cảm ơn.
manuel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.