Как загрузить всю папку через FTP в Терминале?
Как загрузить всю папку через FTP в Терминале?
Ответы:
mget
является ближайшим, который вы можете получить с включенным двоичным файлом FTP. Вы должны mkdir и cd / lcd, а затем получить все файлы, которые соответствуют шаблону, как*
prompt
Переключатель может пригодиться.
FTP работает в каталоге, а не в каталогах как контейнеры файлов. Если вам абсолютно необходимо было выполнить работу, и ftp был единственным инструментом, который вы могли использовать - вы могли бы собрать воедино expect
скрипт, чтобы запустить ftp для вас.
К счастью, есть альтернативы, как scp
| rsync
| wget
чтобы получить целые файлы каталогов.
Другой способ заключается в использовании curl
curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*
Я думаю, что это работает, или файл за файлом
curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip
Я надеюсь, что это помогло.
curl: (78) RETR response: 550
curl
абсолютно не может справиться с этим. wget
может.
Использование scp
(документация) или sftp
(документация)
scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
Мне пришлось загрузить 22 000 изображений с веб-камеры с моего веб-сервера, что является сложной задачей как для Finder, так и для моей программы FTP CyberDuck.
Поэтому я сделал следующее (основываясь на ответе @ bmike):
mkdir ~/Desktop/image-dump-myserver
ftp ftp://myuser@myserver.com
# enter password
# You're now in the ftp console (where the world is still okay)
# Set the local folder
lcd ~/Desktop/image-dump-myserver
# cd into the desired folder (`ls`, `pwd` etc. all work here)
cd /httpdocs/images
# Toggle the interactive mode
prompt
# Download the desired files (all the images in my case)
mget *.jpg
Затем файлы загружаются в нужную папку:
local: image1433509292_1582.jpg remote: image1433509292_1582.jpg
229 Entering Extended Passive Mode (|||50001|)
150 Opening BINARY mode data connection for image1433509292_1582.jpg (63626 bytes)
100% |***********************************| 63626 1.51 MiB/s 00:00 ETA
226 Transfer complete
63626 bytes received in 00:00 (0.98 MiB/s)
local: image1427279963_0841.jpg remote: image1427279963_0841.jpg
229 Entering Extended Passive Mode (|||50053|)
150 Opening BINARY mode data connection for image1427279963_0841.jpg (67194 bytes)
100% |***********************************| 67194 1.64 MiB/s 00:00 ETA
226 Transfer complete
67194 bytes received in 00:00 (1.04 MiB/s)
local: image1439798493_1783.jpg remote: image1439798493_1783.jpg
229 Entering Extended Passive Mode (|||50357|)
150 Opening BINARY mode data connection for image1439798493_1783.jpg (48876 bytes)
100% |***********************************| 48876 1.80 MiB/s 00:00 ETA
226 Transfer complete
48876 bytes received in 00:00 (996.81 KiB/s)
....
Я использую
wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
ftp://ftp.server.com/folder_to_download/*
К сожалению wget
, не поддерживает параллельные загрузки.
следуйте этой инструкции:
тип
ftp
тогда вы в ftp выглядите как
ftp>
тогда вы открываете ip сервера
ftp> open xx.xxx.xxx.xx
Затем он попросит имя пользователя, вы предоставите
Name:(your ftp server): your_username
тогда он попросит пароль
Password: your_password
Затем вы должны войти в систему и снова увидеть оболочку ftp>, вы можете набрать "ls", чтобы вывести список всех файлов, и вы можете перемещаться, как в inix, с помощью cd.
когда вы нашли свое имя файла, вы можете скачать его с
ftp> get filename
et вуаля, файл будет загружен в каталог, из которого вы открыли оболочку
Вы не можете скачать каталоги, но вы можете перейти в свой каталог и загрузить несколько, например, все файлы
Задача: скачать несколько файлов
Чтобы скопировать несколько файлов с удаленного ftp-сервера в локальную систему, необходимо использовать команду mget следующим образом. Вам может быть предложено ответить «да / нет» (Y / N) перед передачей каждого файла (вы можете отключить запрос, передав опцию -i клиенту ftp). Чтобы скачать все файлы, введите: ftp> mget *
информация с http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ cheers