Как мне загрузить папки через FTP в Терминале?

Ответы:

9

mgetявляется ближайшим, который вы можете получить с включенным двоичным файлом FTP. Вы должны mkdir и cd / lcd, а затем получить все файлы, которые соответствуют шаблону, как*

promptПереключатель может пригодиться.

FTP работает в каталоге, а не в каталогах как контейнеры файлов. Если вам абсолютно необходимо было выполнить работу, и ftp был единственным инструментом, который вы могли использовать - вы могли бы собрать воедино expectскрипт, чтобы запустить ftp для вас.

К счастью, есть альтернативы, как scp| rsync| wgetчтобы получить целые файлы каталогов.

bmike
источник
Хорошо ... итак, суть в том, что я не могу загрузить всю папку одновременно Я должен загрузить отдельные файлы, верно?
daviesgeek
Ага. Никто бы не показал wget, sftp, scp и rsync, если бы ftp был готов.
bmike
Спасибо ... SFTP разрешает загрузку папок?
daviesgeek
Ой (извините) - нет. У sftp тот же синтаксис и ограничения ftp - просто защита соединения с использованием ssh вместо аутентификации ftp.
bmike
Если вы привязаны к протоколу FTP, вы можете использовать lftp для рекурсивной загрузки дерева каталогов. Старое школьное решение этой проблемы.
Ян С.
7

Другой способ заключается в использовании curl

curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*

Я думаю, что это работает, или файл за файлом

curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip

Я надеюсь, что это помогло.

noktec
источник
Хорошо, большое спасибо, но есть ли способ через FTP сделать это?
Дэвисджик
Потрясающие! Я не знал о склонности Керла к FTP. Благодаря!
bmike
Да ... и я тоже. Я, вероятно, буду использовать это чаще.
daviesgeek
2
Я пробую ваше предложение, но получаю это:curl: (78) RETR response: 550
Омер
1
curlабсолютно не может справиться с этим. wgetможет.
Кен Шарп
3

Использование scp (документация) или sftp (документация)

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
ghoppe
источник
Это не то, что я спрашиваю. У меня вопрос: как мне загрузить папку через FTP в Терминале? Другими словами, какие команды в FTP я использую для загрузки папки?
Дэвисджик
2
sftp намного превосходит FTP +1
bmike
1
@bmike: да, но старые ftp-серверы могут не поддерживать sftp.
PLL
3

Мне пришлось загрузить 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)  
....  
Besi
источник
3

Я использую

wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
    ftp://ftp.server.com/folder_to_download/*

К сожалению wget, не поддерживает параллельные загрузки.

Уссама Фахд
источник
0

следуйте этой инструкции:

тип

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

Джон Смит
источник
Утилита ftp unix была удалена из OS X (в Сьерре, я думаю?).
Benwiggy