Я пытаюсь использовать ВИХРЕВУЮ команду для загрузки файла с FTP-сервера на локальный диск на моем компьютере. Я попробовал
вихревой "ftp://myftpsite" - пользователь name:password-Q "CWD/users/myfolder /"-O "myfile.raw"
Но это возвращает ошибку, которая говорит:
завихрение: Удаленное имя файла не имеет никакой длины!
завихрение: попробуйте 'завихрение - справку' или 'завихрение - руководство' для получения дополнительной информации
завихрение: (6) не Мог разрешить хост: myfile.raw; Никакая запись данных требуемого типа
Я попробовал некоторые другие методы, но ничто, кажется, не работает.
Кроме того, я не совсем уверен, как указать, на какую папку я хочу, чтобы файл был загружен. Как я сделал бы это?
Попробовать
curl -u user:password 'ftp://mysite/%2fusers/myfolder/myfile/raw' -o ~/Downloads/myfile.raw
В URL FTP путь относительно начального каталога (обычно Ваш homedir). Необходимо указать полный путь, и это означает использовать %2f
указывать /
. Это необходимо потому что путь в ftp:
URL рассматривают как список разделенных от наклонной черты имен, каждое из которых, как предполагается, дано отдельному CWD
команда. %2f
декодируется после разделения. Посмотрите URL FTP и RFC 1738.
Что касается выходного местоположения, просто дайте путь к -o
.
Предложения безопасности:
Не помещайте свой пароль в URL. Хранение его в ~/.netrc
не особенно безопасно также, но это, по крайней мере, скрыто от ps -ef
.
Ваш пароль отправляется в открытом тексте. Если сервер поддерживает его, использовать curl --ssl-reqd
или curl ftps://mysite/...
Используя SFTP (протокол передачи файлов SSH) было бы еще лучше.
Попытка:
curl "ftp://user:password@myftpsite/users/myfolder/myfile.raw"
(Если удаленное имя файла является 'myfile.raw'),
Поскольку yan предлагает,
завихритесь "ftp://user:password@myftpsite/users/myfolder/myfile.raw"
должен работать, но некоторые FTP-серверы используют политику безопасности, которая не совместима стандартами. В тех случаях, --ftp-method singlecwd
или --ftp-method nocwd
опция может помочь.