ncftp -u <user> -p <pass> <server>
ncftp> mget directory
Juste pour compléter la réponse donnée par Thibaut Barrère.
J'ai utilisé
wget -r -nH --cut-dirs=5 -nc ftp://user:[email protected]//absolute/path/to/directory
Notez la double barre oblique après le nom du serveur. Si vous ne mettez pas de barre oblique supplémentaire, le chemin est relatif au répertoire personnel de l'utilisateur.
-nH
évite la création d'un répertoire nommé d'après le nom du serveur-nc
évite de créer un nouveau fichier s'il existe déjà sur la destination (il est simplement ignoré)--cut-dirs=5
permet de prendre le contenu de /absolute/path/to/directory et de le mettre dans le répertoire où vous lancez wget. Le nombre 5 est utilisé pour filtrer les 5 composants du chemin. La double barre oblique signifie un composant supplémentaire.
Vous pouvez compter sur wget qui gère généralement ftp get correctement (du moins d'après ma propre expérience). Par exemple :
wget -r ftp://user:[email protected]/
Vous pouvez également utiliser -m
qui convient à la mise en miroir. Il est actuellement équivalent à -r -N -l inf
.
Si vous avez des caractères spéciaux dans les informations d'identification, vous pouvez spécifier le --user
et --password
arguments pour le faire fonctionner. Exemple avec une connexion personnalisée avec des caractères spécifiques :
wget -r --user="[email protected]" --password="Pa$$wo|^D" ftp://server.com/
Comme le souligne @asmaier, attention que même si -r
est pour la récursivité, il a un niveau maximum par défaut de 5 :
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Si vous ne voulez pas manquer les sous-répertoires, mieux vaut utiliser l'option de mise en miroir, -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.
Si lftp
est installé sur votre machine, utilisez mirror dir
. Et vous avez terminé. Voir le commentaire de Ciro ci-dessous si vous souhaitez télécharger un répertoire de manière récursive.