Как с FTP скачать папку?
Многие из нас порой пользуются протоколом FTP, например, я даже установил FTP сервер на своём компьютере. Скачать файл по этом протоколу не так сложно через браузер, но вот папку вы не скачаете таким образом.
Можно конечно всё вытягивать по одному файлу, но это не выход, файлов может быть очень много. Но на самом деле это не проблема и тут есть несколько вариантов, как с ftp скачать папку?
1. Как с FTP скачать папку при помощи FileZilla?
Первый и самый простой способ — это установить ftp клиент, например, программу Filezilla. Установить её можно командой в терминале:
Работать с этой программой совсем просто, поэтому не буду долго объяснять. Скажу только, что нужно ввести адрес ftp сервера в поле «хост» и нажать «enter»

2. Как с FTP скачать папку при помощи Nautilus?
Но, например, я столкнулся с проблемой, что некоторые ftp сервера в нашей локальной сети совсем не хотят соединяться с filezilla. Поэтому бывает нужно пойти другим путём: зайти на ftp через файловый менеджер nautilus. Делается это просто: открываете любое окно наутилуса и нажимаете Ctrl + L После этого в нём появляется адресная строка. Вводим туда адрес ресурса ftp: ftp://172.22.16.133 (вы вводите естественно ваш адрес) В окне должны появиться папки и файлы ресурса. Но тут сразу возникает проблема: nautilus совсем отказывается понимать русскую кодировку в cp1251, появляются крякозябры.

Как открыть папку ftp в nautilus, чтобы кодировка была нормальной, то есть uft8? Думаю просто открыть таким способом у нас не получиться, так как в nautilus нет таких настроек. (Может и есть какие-нибудь хитрые способы, но я о них не слышал). Но есть другой способ решить эту проблему: можно просто подмонтировать ресурс ftp к какой-нибудь нашей папке. Для этого нам понадобится небольшая консольная програмулька — curlftpfs. Устанавливаем:
Как загрузить и скачать файлы с FTP. Bat файл.
Сегодня будет интересный пост. Да будет Вам известно, как загружать и скачивать файлы с FTP сервера используя командную строку Windows (cmd.exe) и пакетный файл, проще говоря, батник. Также сегодня на блоге появилась новая рубрика «Командная строка» в которой я буду писать посты на тему bat файлов и о командной строке в целом. Подпишитесь на обновления блога, что бы ни пропустить новых постов.
Так как блог рассчитан на начинающих пользователей ПК, я буду стараться выкладывать больше скриншотов, не только в этой статье, но и в других. Таким образом, я думаю, будет на много понятней и удобней воспринимать информацию.
Лучше не только прочитать, но и увидеть ход работы и результат в картинках!
И так, вернёмся к теме поста, и рассмотрим, как загрузить и удалить файлы с FTP сервера.
Все ниже описанный действия будут происходить на моём локальном FTP сервере, так как в данный момент у меня возникли некоторые проблемы с интернетом, и мне неудобно использовать свой FTP на котором крутится этот блог!
Если Вам интересно, как поставить FTP сервер на свой компьютер, то рекомендую прочитать мой прошлый пост « FTP сервер на домашнем ПК. Без проблем. » будет удобно для тренировки, если Вы не когда до этого момента не работали с FTP через Командную строку Window.
Как подключится к FTP серверу через cmd.
Прежде чем загружать или скачивать файлы с FTP сервера, к нему нужно подключится. Именно это мы и рассмотрим в этой части поста.
Для подключения к FTP используется «команда open» её синтаксис такой:
Open адрес сервера .
Запускаем cmd.exe или сразу встроенную в windows утилиту ftp.exe используя команду «выполнить» горячими клавишами «Win + R» я открою сразу ftp.exe. Если вы решили открыть cmd.exe то просто запустите ftp.exe командой ftp.
После запуска, используя команду open, подключаемся к ftp серверу. В моём случаи адрес ftp такой «127.0.0.1» если Вы используете локальный ftp, то адрес будет такой же, если нет, то, естественно адрес будет другой.
Скачивание, загрузка и удаление файлов с FTP-сервера из командной строки
Часто требуется автоматизировать процессы скачивания, загрузки и удаления файлов c FTP-сервера. Например, при работе с распределенными базами данных 1С или для сохранения резервных копий. Но не все знают, что эти процедуры можно выполнять из командной строки, не прибегая к дополнительному программному обеспечению, то есть средствам Windows. Ниже я приведу синтаксис команд для работы с FTP, а также примеры bat-файлов для этих операций.
1. Команда ftp
Для обмена файлами с FTP-сервером используется команда ftp, вот ее синтаксис:
FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer]
[-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [узел]
| -v | Отключение вывода на экран ответов с удаленного сервера. |
| -n | Отключение автоматического входа при начальном подключении. |
| -i | Отключение интерактивных запросов при передаче нескольких файлов. |
| -d | Включение отладочного режима. |
| -g | Отключение глобализации имен файлов (см. команду GLOB). |
| -s:имя_файла | Задание текстового файла, содержащего команды FTP, которые будут выполняться автоматически при запуске FTP. |
| -a | Использование локального интерфейса для привязки соединения. |
| -A | Анонимный вход в службу. |
| -x:send sockbuf | Переопределение стандартного размера буфера SO_SNDBUF (8192). |
| -r:recv sockbuf | Переопределение стандартного размера буфера SO_RCVBUF (8192). |
| -b:async count | Переопределение стандартного размера счетчика async (3) |
| -w:windowsize | Переопределение стандартного размера буфера передачи (65535). |
| узел | Задание имени или адреса IP удаленного узла, к которому необходимо выполнить подключение. |
Как видно, здесь нет операторов для подключения к серверу и работы с файлами. Дело в том, что эта команда только запускает сеанс ftp:

Далее, работа с FTP-сервером происходит уже при помощи следующих операторов (пропустить) :
!
Временный переход в оболочку.
append
Добавление в файл.
ascii
Установка режима передачи файлов в формате ascii.
bell
Выдача звукового сигнала по завершении команды
binary
Установка режима передачи файлов в двоичном формате.
bye
Завершение сеанса ftp и выход.
cd <удаленный_каталог>
Изменение рабочего каталога на удаленном компьютере, где:
<удаленный_каталог> — имя каталога, который станет рабочим.
close
Завершение сеанса ftp.
debug
Переключение режима отладки.
delete <удаленный_файл>
Удаление файла на удаленном компьютере, где:
<удаленный_файл> — имя файла для удаления.
dir [<удаленный_каталог>] [<локальный_файл>]
Вывод содержимого каталога удаленного компьютера, где:
<удаленный_каталог> — каталог, содержимое которого будет выведено, если не задан, используется текущий каталог;
<локальный_файл> — задает локальный файл, для сохранения в список, если не задан, список выводится на экран.
disconnect
Завершение сеанса ftp.
get <удаленный_файл> [<локальный_файл>]
Получение файла, где:
<удаленный_файл> — удаленный файл для копирования;
<локальный_файл> — имя файла на локальном компьютере.
glob
Переключение метасимвольного расширения имен локальных файлов.
hash
Переключение вывода «#» для каждого переданного блока данных.
help [<команда>]
Вывод справочных сведений для команды ftp, где:
<команда> — Команда, описание которой будет выведено, если не задана, произойдет вывод всех команд.
lcd [<локальный_каталог>]
Изменение локального каталога рабочего компьютера, где:
<локальный_каталог> — Имя нового локального каталога, если не задан то будет использоваться имя текущего каталога.
literal <команда_1> … <команда_n>
Отправка произвольной команды ftp, где:
<команда_n> — команды для отправки;
ls [<удаленный_каталог>] [<локальный_файл>]
Вывод сокращенного содержимого каталога удаленного компьютера, где:
<удаленный_каталог> — каталог, содержимое которого будет выведено, если не задан, используется текущий каталог;
<локальный_файл> — задает локальный файл, для сохранения в список, если не задан, список выводится на экран.
mdelete <удаленный_файл_1> … <удаленный_файл_n>
Удаление нескольких файлов на удаленном компьютере, где:
<удаленный_файл_n> — имена файлов для удаления.
mdir <удаленный_каталог_1> … <удаленный_каталог_n> <локальный_файл>
Вывод содержимого нескольких каталогов удаленного компьютера, где:
<удаленный_каталог_n> — каталог, содержимое которого будет выведено;
<локальный_файл> — задает локальный файл, для сохранения в список, если не задан, список выводится на экран.
mget <удаленный_файл_1> … <удаленный_файл_n>
Получение нескольких файлов, где:
<удаленный_файл_n> — удаленный файл для копирования.
mkdir <удаленный_каталог>
Создание каталога на удаленном компьютере, где:
<удаленный_каталог> — имя удаленного каталога для создания.
mls <удаленный_каталог_1> … <удаленный_каталог_n> <локальный_файл>
Вывод сокращенного содержимого нескольких каталогов удаленного компьютера, где:
<удаленный_каталог_n> — каталог, содержимое которого будет выведено, если не задан, используется текущий каталог;
<локальный_файл> — задает локальный файл, для сохранения в список.
mput <локальный_файл_1> … <локальный_файл_n>
Отправка нескольких файлов, где:
<локальный_файл_n> — имя локальных файлов, которые будут скопированы.
prompt
Переключение интерактивной подсказки для составных команд.
put <локальный_файл> [<удаленный_файл>]
Отправка одного файла, где:
<локальный_файл> — имя локального файл для копирования;
<удаленный_файл> — имя файла на удаленном компьютере.
pwd
Вывод рабочего каталога удаленного компьютера.
quit
Завершение сеанса ftp и выход в командную строку.
quote <команда>
Отправка произвольной команды ftp, где:
<команда> — команда для отправки.
recv <удаленный_файл> [<локальный_файл>]
Получение файла с использованием текущих настроек типов файлов, где:
<удаленный_файл> — удаленный файл для копирования;
<локальный_файл> — имя файла на локальном компьютере.
remotehelp [<команда>]
Получение справочных сведений о командах удаленной системы, где:
<команда> — команда удаленной системы, если не задан, то выводится список всех команд.
rename <имя_файла> <новое_имя_файла>
Переименование удаленного файла, где:
<имя_файла> — имя файла для переименования;
<новое_имя_файла> — новое имя файла.
rmdir <имя_каталога>
Удаление каталога на удаленном компьютере, где:
<имя_каталога> — имя каталога для удаления.
send <локальный_файл> [<удаленный_файл>]
Копирование одного файла с использованием текущих настроек типов файлов, где:
<локальный_файл> — имя локального файл для копирования;
<удаленный_файл> — имя файла на удаленном компьютере.
status
Отражение текущего состояния подключения ftp.
trace
Переключение трассировки пакетов.
type [<имя_типа>]
Установка типа передачи файлов, где:
<имя_типа> — тип передачи файлов, если не указан будет выведен текущий тип передачи файлов.
user <имя_пользователя> [<пароль>] [<учетная_запись>]
Отправка сведений для подключения к удаленному компьютеру, где:
<имя_пользователя> — имя пользователя для подключения к удаленному компьютеру;
<пароль> — пароль, для указанного имени пользователя, если не указан, но требуется для подключения, команда ftp запросит его у пользователя;
<учетная_запись> — учетная запись для подключения к удаленному компьютеру, если не указана, но требуется для подключения, команда ftp запросит ее у пользователя;
verbose
Переключение режима вывода сообщений.
Рассмотрим небольшой пример.
Пусть у нас есть FTP-сервер с адресом tavalik.ru, имя пользователя для подключения — tavalik, пароль — 1234567890. Требуется загрузить на сервер в директорию «Temp\Backup» файл file_data.dat из «C:\example», а затем сохранить его же на локальный компьютер, в эту же директорию, но уже под именем file_from_ftp.dat.

Для этого необходимо выполнить следующий набор команд:
В итоге получим требуемый результат:

Обратите внимание, что при указании полного пути на FTP-сервере используется знак «/» между директориями, а для указания пути на локальном компьютере будет использоваться, как обычно, знак «\». Кроме того, если путь будет содержать пробелы, то следует заключить его в кавычки.
Возможен также запуск команды ftp и в пакетном режиме. Эту же задачу можно решить, выполнив команду «ftp -v -n -s:transport.txt» ,

где файл transport.txt находится в директории «C:\example» и содержит тот же набор операторов:

2. Пример bat-файла для загрузки файла на FTP
Теперь попробуем написать «батник» для загрузки файлов на FTP-сервер. Для этого создадим новый текстовый документ, и переименуем его в put_on_ftp.bat . Редактировать его можно обычным Блокнотом, но удобнее это делать с помощью бесплатной программы Notepad++.
Для начала напишем «батник», который будет загружать на сервер tavalik.ru файл file_data.dat из «С:\example» . Алгоритм работы bat-файла будет такой:
- Создаем файл transport.txt с последовательностью операторов ftp;
- Выполняем команду ftp, указав в качестве параметров созданный файл;
- Удаляем transport.txt.

В данном примере имя файла и директорий жестко прописаны в файле. Это не всегда удобно. Доработаем bat-файл таким образом, чтобы данные для загрузки он получал в качестве параметров, а также вынесем все изменяемые значения в переменные файла. Получим следующий код (скачать файл):

Соответственно, чтобы скопировать файл file_data.dat из «C:\example» на FTP-сервер в «Temp\Backup» , потребуется запустить этот «батник» указав в качестве параметров имя файла, локальный и удаленный каталоги.

Аналогичным образом можно написать bat-файлы для получения файлов и удаления файлов на FTP-сервере, а также исполняющий файл с произвольным набором инструкций.
Смотрите также:
Не все знают, что можно создать прямую ссылку на файл, хранимый на FTP-Сервере, «зашив» в нее логин и пароль. Также возможно создать ярлык на какую-либо директорию или даже подключить ее…
Может случиться так, что в процессе установки MS SQL Server 2012 были установлены компоненты, необходимость в которых со временем отпала (или были установлены по ошибке). В этом случае, в целях…
FTP-Сервер обеспечивает возможность передачи файлов между клиентом и сервером с помощью протокола FTP. Здесь будет рассказано как запустить FTP-сервер в Windows Server 2008 R2. 0. Оглавление Добавление службы FTP-сервер Добавление…
Пример использования для начинающих
Если вы уже пользовались каким-либо FTP-клиентом, возможно, вам следует сразу перейти к более продвинутому руководству пользователя.
Будем предполагать, что вы уже установили и запустили клиент FileZilla (руководство по установке).
Соединение с сервером
Мы будем пользоваться такими данными для логина. Замените их на свой вариант, чтобы следить за работающим примером из этого руководства.
В этом случае мы заполняем панель быстрого подключения:

Поле Порт: можно оставить незаполненным, если вы не используете специфический порт для подключения.
Примечание: если вы желаете точно указать порт, к примеру, SFTP или FTPS, введите имя хоста таким образом: sftp://hostname или ftps://hostname соответственно.
Теперь FileZilla может быть подключен к серверу. Если подключение произошло без ошибок, правая «колонка» клиента будет показывать список файлов и директорий вместо уведомления «Не подключен к серверу».
Навигация и расположение окон

Легенда: 1. панель инструментов, 2. панель быстрого подключения, 3. лог сообщений, 4. локальная панель, 5. удалённая (серверная) панель, 6. очередь передаваемых файлов (полноразмерная версия изображения)
На этом этапе мы ознакомимся с расположением окон в FileZilla.
Под панелью инструментов (1) и панелью быстрого подключения (2) в логе сообщений (3) отображаются сообщения связанные с передачей файлов и подключением. Ниже вы увидите список файлов. В левой колонке (локальная панель, 4) отображаются локальные файлы и директории, т.е. содержимое компьютера, на котором запущен клиент FileZilla. В правой колонке (серверная панель, 5) отображаются файлы и директории сервера, к которому вы подключены. В обеих колонках сверху отображается дерево директорий, а внизу — содержимое текущей директории. Навигация осуществляется простым выбором пунктов дерева или списка, как и в любом другом файловом менеджере. В нижней части окна помещена очередь файлов (6) со списком файлов которые уже были загружены или будут загружены.
Передача файлов
Теперь мы загрузим следующие файлы (или те, которые вы выбрали):
Закачивание файлов
Для начала в локальной панели перейдите в директорию, которая содержит нужные данные (например, index.html и images/). Теперь, перейдите в нужную целевую директорию на сервере (используя список в серверной панели). Чтобы загрузить данные, выберите соответствующие файлы/директории и перетяните их из локальной в удалённую панель. После этого вы заметите, что файлы будут добавлены в очередь в нижней части окна и, через некоторое время, удалены оттуда после загрузки на сервер (естественно, если всё произошло без ошибок). Загруженные файлы и директории будут отображены в серверном списке в правой колонке.

Список локальных и серверных файлов после загрузки
Примечание: Если вам не нравится «перетягивать» файлы, достаточно просто кликнуть правой кнопкой на выбранных файлах/директориях и нажать «Загрузить»
Примечание (для продвинутых): Если вы включили фильтрование и загрузили директорию целиком, на сервер будут загружены только неотфильтрованные файлы из этой директории.
Скачивание файлов
Скачивание файлов или целых директорий, по сути, работает так же, как и закачивание, вы просто перетягиваете файлы/директории наоборот: из удалённой панели на локальную.
Примечание: Если вы (случайно) попытаетесь перезаписать файл при его скачивании или закачивании, FileZilla по умолчанию отобразит диалоговое окно с разными вариантами действий (перезаписать, переименовать, пропустить, . ).
Использование менеджера сайтов
После того, как вы убедились в том, что можете передавать файлы (в противном случае попрактикуйтесь в этом), у вас может возникнуть желание добавить информацию о сервере в менеджер сайтов для облегчения последующих подключений. Выберите пункт Копировать соединение в Менеджер сайтов в меню Файл, после чего будет открыт менеджер сайтов, а в нём будет создан новый пункт заполненный соответствующей информацией. Заметьте, что название пункта выбрано и подсвечено — это значит, что вы можете ввести соответствующее имя для облегчения поиска этого пункта в дальнейшем (к примеру, введите domain.com FTP-сервер — вы сможете переименовать его в дальнейшем). Теперь закройте диалоговое окно, кликнув на OK.
В следующий раз для подключения к серверу достаточно просто выбрать его в менеджере сайтов и нажать Подключиться.
Выводы
Мы предполагаем, что теперь вы способны использовать основные возможности FileZilla.
Последнее замечание: большинство задач могут быть решены разными способами. В этом руководстве описаны самые очевидные решения — потратив некоторое время на работу с программой и прочтение остальной документации, вы наверняка найдёте самые быстрые решения для ваших задач (к примеру, на панели инструментов расположены кнопки для часто используемых команд; некоторые из них реагируют на клик правой кнопкой).
Если вы достаточно уверены в своих силах, возможно, вам стоит приступить к более продвинутому руководству пользователя для изучения остальных возможностей, не раскрытых в вышеизложенном примере.