GNU/Linux >> Tutoriels Linux >  >> Linux

Comment télécharger récursivement un dossier via FTP sous Linux

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.


Linux
  1. Comment ouvrir et fermer des répertoires dans le terminal Linux

  2. Comment télécharger ou télécharger des fichiers/répertoires à l'aide de sFTP sous Linux

  3. Comment trouver un fichier sous Linux dans tous les répertoires de manière récursive

  4. Comment compresser un répertoire sous Linux

  5. Comment obtenir la taille du répertoire sous Linux

Comment protéger par mot de passe un dossier sous Linux

Comment lister les fichiers de manière récursive sous Linux

Comment compresser un dossier sous Linux

Comment copier un répertoire sous Linux

Comment chown récursivement sur Linux

Comment SSH au serveur via Linux