Як завантажити папки через FTP в терміналі?


Відповіді:


9

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

promptПеремикач може стати в нагоді.

FTP працює в каталозі, а не в каталогах як контейнери файлів. Якщо вам абсолютно довелося виконати роботу, а ftp був єдиним інструментом, який ви могли використовувати - ви могли зв'язати expectсценарій разом, щоб запустити ftp для вас.

На щастя, є такі варіанти, як scp| rsync| wgetщоб отримати цілі каталоги, варті файлів.


Гаразд ... тому підсумок полягає в тому, що я не можу завантажити всю папку одночасно; Я маю завантажити окремі файли, правда?
daviesgeek

Так. Усі не показали б wget, sftp, scp та rsync, якби ftp вирішила завдання.
bmike

Дякую ... чи дозволяє SFTP завантажувати папки?
daviesgeek

На жаль (вибачте) - ні. sftp - це той самий синтаксис і обмеження ftp - просто забезпечення з'єднання за допомогою ssh замість автентифікації ftp.
bmike

Якщо ви пов'язані з протоколом FTP, ви можете використовувати lftp для рекурсивного завантаження дерева каталогів. Старе шкільне рішення цієї проблеми.
Ян C.

7

Ще один спосіб - використовувати завиток

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

Я думаю, що це працює, або файл за файлом

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

Я сподіваюся, що це допомогло.


Гаразд, велике спасибі, але чи є спосіб через FTP це зробити?
daviesgeek

Дивовижно! Мені не було відомо про плодовитість FTP завивки. Дякую!
bmike

Так ... ні я був, ймовірно, буду використовувати його частіше.
daviesgeek

2
Я пробую вашу пропозицію, але отримую це:curl: (78) RETR response: 550
Омер,

1
curlабсолютно не справляється з цим. wgetможе.
Кен Шарп

3

Використання scp (документація) або sftp (документація)

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory

Це я не прошу. Моє запитання: Як завантажити папку через FTP в Терміналі? Іншими словами, які команди в FTP я використовую для завантаження папки?
daviesgeek

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)  
....  

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 voila, файл буде завантажений у каталог, з якого ви відкрили локальну оболонку

Ви не можете завантажити режими редагування, але Ви можете перейти до каталогу та завантажити декілька, наприклад, усіх файлів

Завдання: Завантажте кілька файлів

Щоб скопіювати декілька файлів з віддаленого ftp-сервера в локальну систему, потрібно використовувати команду mget наступним чином. Можливо, вам буде запропоновано відповісти "так / ні" (Y / N) перед передачею кожного файлу (ви можете відключити підказку, передавши опцію -i клієнту ftp). Щоб завантажити всі файли, введіть: ftp> mget *

інформація з http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ ура


Інструмент ftp unix видалено з ОС X (у Sierra, я думаю?).
benwiggy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.