Подтвердить что ты не робот

Как перечислить содержимое каталогов удаленного FTP, рекурсивно

После загрузки файлов с удаленного FTP-сервера UNIX вы хотите убедиться, что вы правильно загрузили все файлы. Минимально вы получите информацию, аналогичную команде "dir/s" в командной строке Windows. Клиент FTP работает в Windows.

4b9b3361

Ответ 1

К сожалению, это было написано для пользователей Unix/Linux:/

Лично я бы установил CYGWIN только для того, чтобы заставить Linux файлы LFTP/RSYNC работать с окнами, так как похоже, что они не конкурируют с ним.

Как @zadok.myopenid.com упомянутый rsync, это выглядит как сборка окон для него с использованием CYGWIN (если вам удастся получить SSH-доступ к ящику в конце концов)

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

Rsync удобен тем, что будет сравнивать все с контрольными суммами и оптимально передавать частичные блоки изменения.


Если вы получаете CYGWIN/Linux:

http://lftp.yar.ru/ - мой любимый инструмент исследования для этого.

Он может выполнять почти все bash, хотя и удаленно.

Пример:

$ lftp mirror.3fl.net.au
lftp mirror.3fl.net.au:~> ls                          
drwxr-xr-x  14 root     root         4096 Nov 27  2007 games
drwx------   2 root     root        16384 Apr 13  2006 lost+found
drwxr-xr-x  15 mirror   mirror       4096 Jul 15 05:20 pub
lftp mirror.3fl.net.au:/> cd games/misc
lftp mirror.3fl.net.au:/games/misc>find
./
./dreamchess/
./dreamchess/full_game/                                                      
./dreamchess/full_game/dreamchess-0.2.0-win32.exe                                      
./frets_on_fire/
./frets_on_fire/full_game/                                                      
./frets_on_fire/full_game/FretsOnFire-1.2.451-macosx.zip                                  
./frets_on_fire/full_game/FretsOnFire-1.2.512-win32.zip
./frets_on_fire/full_game/FretsOnFire_ghc_mod.zip
./gametap_setup.exe
......
lftp mirror.3fl.net.au:/games/misc> du gametap_setup.exe 
32442   gametap_setup.exe
lftp mirror.3fl.net.au:/games/misc> du -sh gametap_setup.exe 
32M     gametap_setup.exe
lftp mirror.3fl.net.au:/games/misc> 

Ответ 2

Если у вас есть доступ к ssh, вместо этого используйте rsync. Это гораздо лучшее приложение для передачи данных.

Захватите предохранитель для вашей ОС и загрузите ftpfs. Это позволит локально установить удаленный ftp-каталог, и вы можете использовать dir/s или любое другое приложение, которое вы хотите на нем.

Ответ 3

Сделайте это:

ls -lR

..................

Ответ 4

Вы можете использовать ftp.listFiles( "directory" ) из apache-commons-net и можете написать собственную BFS или DFS, чтобы рекурсивно извлекать все файлы.

Ответ 5

Предполагая, что вы используете простую ftp через командную строку, Используйте команду dir с параметром -Rl, чтобы искать рекурсивно и копировать ее в файл, а затем искать файл, используя grep, find или любой способ, поддерживаемый вашей ОС.

ftp > dir -Rl education.txt вывод в локальный файл: education.txt? Y 227 Ввод пассивного режима (9,62,119,15,138,239) 150 Открытие соединения данных в режиме ASCII для списка файлов 226 Передача завершена