Как рекурсивно загрузить папку через FTP в Linux [закрыто]

Я пытаюсь ftp-папку с помощью ftp-клиента командной строки, но до сих пор я мог использовать только " get " для получения отдельных файлов.

12 ответов


вы можете положиться на wget, который обычно обрабатывает ftp правильно (по крайней мере, по моему собственному опыту). Например:

wget -r ftp://user:pass@server.com/

вы также можете использовать -m, который предназначен для зеркального отображения. В настоящее время это эквивалентно -r -N -l inf.

если у вас есть специальные символы в учетных данных, вы можете указать --user и --password аргументы, чтобы заставить его работать. Пример с пользовательским логином с определенным персонажи:

wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/

редактировать Как отметил @asmaier, следите за тем, что даже если -r для рекурсии, он имеет максимальный уровень по умолчанию 5:

       -r
       --recursive
           Turn on recursive retrieving.

       -l depth
       --level=depth
           Specify recursion maximum depth level depth.  The default maximum depth is 5.

если вы не хотите упустить подкаталоги, лучше использовать опцию зеркального отображения, -m:

       -m
       --mirror
           Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
           recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
           --no-remove-listing.

просто чтобы дополнить ответ, данный Тибо Баррером.

Я

wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory

обратите внимание на двойной Слэш после имени сервера. Если я не ставлю дополнительную косую черту, путь относительно домашнего каталога пользователя.

  • - nH избегает создания каталога с именем после имени сервера
  • - nc избегает создания нового файла, если он уже существует в месте назначения (он просто пропущен)
  • --cut-dirs=5 позволяет мне принять содержимое каталога/absolute/path/to / и поместить его в каталог, где я запускаю wget. Число 5 используется для фильтрации 5 компонентов пути. Двойная косая черта означает дополнительный компонент.

ncftp -u <user> -p <pass> <server>
ncftp> mget directory

Если lftp установлен на вашем компьютере, используйте mirror dir. И вы закончили. См. комментарий Ciro ниже, если вы хотите рекурсивно загрузить каталог.


Если вы можете использовать scp вместо ftp на -r опция сделает это за вас. Я бы проверил, можете ли вы использовать более современный механизм передачи файлов, чем FTP.


существует "ncftp", который доступен для установки в linux. Это работает по протоколу FTP и может использоваться для рекурсивной загрузки файлов и папок. работает на Linux. Используется и отлично работает для рекурсивной передачи папок/файлов.

, проверьте эту ссылку... http://www.ncftp.com/


вместо этого используйте WGet. Он поддерживает протоколы HTTP и FTP.

wget -r ftp://mydomain.com/mystuff

Удачи!

ссылка:http://linux.about.com/od/commands/l/blcmdl1_wget.htm


Если вы можете, я настоятельно рекомендую вам tar и bzip (или gzip, что бы ни плавало на вашей лодке) каталог на удаленной машине-для каталога любого значительного размера экономия полосы пропускания, вероятно, будет стоить времени на zip / unzip.


Если вы хотите придерживаться FTP командной строки, вы должны попробовать NcFTP. Затем вы можете использовать get-R для рекурсивного получения папки. Вы также получите завершение.


wget -r ftp://url

отлично работает для Redhat и Ubuntu


вы не должны использовать ftp. Как telnet он не использует защищенные протоколы, и пароли передаются в незашифрованном виде. Это делает его очень легким для третьих лиц, чтобы захватить ваше имя пользователя и пароль.

чтобы скопировать удаленные каталоги удаленно, эти параметры лучше:

  • rsync является наиболее подходящим инструментом, если вы можете войти через ssh, потому что он копирует только различия, и может легко перезагрузить в середине в случае подключения разрыв.

  • ssh -r является вторым лучшим вариантом для рекурсивного копирования структур каталогов.

посмотреть:


переключите приглашение командой приглашения.

использование:

ftp>cd /to/directory    
ftp>prompt    
ftp>mget  *