web-dev-qa-db-fra.com

Comment lister le contenu du répertoire du FTP distant, de manière récursive

Après avoir téléchargé des fichiers à partir d’un serveur FTP UNIX distant, vous souhaitez vérifier que vous avez correctement téléchargé tous les fichiers. Minimal, vous obtiendrez des informations similaires à la commande "dir/s" dans l'invite de commande Windows. Le client FTP s'exécute sous Windows.

21
edygunawan

Malheureusement, cela a été écrit pour les utilisateurs Unix/Linux: /

Personnellement, j’installerais CYGWIN uniquement pour que les fichiers binaires Linux de LFTP/RSYNC fonctionnent sous Windows, car il ne semble pas y avoir quoi que ce soit qui le concurrence.

Comme @ zadok.myopenid.com a mentionné rsync, cela semble être une construction de fenêtre pour elle en utilisant CYGWIN (si vous parvenez à pouvoir éventuellement accéder à ssh à la boîte)

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

Rsync est pratique dans la mesure où il compare tout avec les sommes de contrôle et transfère de manière optimale les blocs de modifications partielles.


Si vous obtenez CYGWIN/Linux:

http://lftp.yar.ru/ est mon outil d'exploration préféré pour cela.

Il peut faire presque tout ce que bash peut faire, même à distance.

Exemple:

 $ lftp mirror.3fl.net.au 
 lftp mirror.3fl.net.au:~> ls 
 drwxr-xr-x 14 root root 4096 27 novembre 2007 jeux 
 drwx ------ 2 racine racine 16384 13 avril 2006 perdu + trouvé 
 drwxr-xr-x 15 miroir miroir 4096 15 juillet 20h20 pub 
 lftp mirror.3fl .net.au: /> cd jeux/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 .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> 
19
Kent Fredric

Si vous avez un accès ssh, utilisez plutôt rsync. C'est une application de transfert de données bien meilleure.

Prenez Fuse pour votre OS et chargez ftpfs. Cela vous permettra de monter le répertoire ftp distant localement et vous pourrez utiliser dir/s ou toute autre application de votre choix.

3
Jonah Braun

Faire ceci:

ls -lR

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

3
jamesmar

En supposant que vous utilisez un simple ftp via une ligne de commande, utilisez la commande dir avec l'option -Rl pour effectuer une recherche récursive, copiez-la dans un fichier, puis recherchez-la à l'aide de grep, find ou de toute autre manière prise en charge par votre système d'exploitation.

ftp> dir -Rl education.txt sortie dans le fichier local: education.txt? y 227 Entrée en mode passif (9,62,119,15,138,239) 150 Ouverture connexion de données en mode ASCII pour la liste de fichiers 226 Transfert terminé

0
SmitaK

Vous pouvez utiliser ftp.listFiles ("répertoire") depuis Apache-commons-net et écrire votre propre BFS ou DFS pour extraire tous les fichiers de manière récursive.

0
Raja