J'essaie de ftp un dossier en utilisant le client ftp en ligne de commande, mais jusqu'à présent, je n'ai pu utiliser 'get' que pour obtenir des fichiers individuels.
linux
command-line
ftp
Charles Ma
la source
la source
mget
, ce n'est pas du tout récursif. la réponse du 22 septembre 2008 à 9h01 Thibaut Barrère est plus facile à comprendre mais doit ajouter l'option-l 0
comme mentionné dans les commentairesRéponses:
Vous pouvez compter sur wget qui gère généralement ftp correctement (du moins d'après ma propre expérience). Par exemple:
Vous pouvez également utiliser
-m
ce qui convient à la mise en miroir. Il est actuellement équivalent à-r -N -l inf
.Si vous avez des caractères spéciaux dans les détails des informations d'identification, vous pouvez spécifier les arguments
--user
et--password
pour le faire fonctionner. Exemple avec connexion personnalisée avec des caractères spécifiques:EDIT Comme l'a souligné @asmaier, attention, même si
-r
c'est pour la récursivité, il a un niveau max par défaut de 5:Si vous ne voulez pas rater les sous-répertoires, utilisez mieux l'option de mise en miroir
-m
:la source
wget -m
(--mirror
).wget -r
est limité à une profondeur de récursivité de 5 par défaut.--user
et--password
aussi sur Red Hat. Mon wget est:GNU Wget 1.11.4 Red Hat modified
je me demande s'il s'agit d'une version ou d'une distribution ...-l 0
, donc pas besoin d'utiliser--mirror
ce qui peut avoir des effets secondaires indésirables tels que les fichierswget --ask-password -rl 99 ftp://[email protected]
. De cette façon, le mot de passe n'est pas visible avecps
et ne reste pas dans l'historique. Bien sûr, par la nature de ftp, il est envoyé non chiffré au serveur.$
), par exemple--user='user' --password='pa$$word'
Juste pour compléter la réponse donnée par Thibaut Barrère.
j'ai utilisé
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 juste ignoré)--cut-dirs=5
permet de prendre le contenu de / absolu / chemin / vers / répertoire et de le mettre dans le répertoire où vous lancez wget. Le chiffre 5 est utilisé pour filtrer les 5 composants du chemin. La double barre oblique signifie un composant supplémentaire.la source
--ftp-user=USER
et--ask-password
.la source
open ftp://USERNAME:PASSWORD@HOST
après le démarrage de ncftp…wget
, et plus rapide aussi en mode TAR. Merci!Si
lftp
est installé sur votre machine, utilisezmirror dir
. Et vous avez terminé. Voir le commentaire de Ciro ci-dessous si vous souhaitez télécharger récursivement un répertoire.la source
mirror -R dir
télécharge / met à jour le répertoire récursifmirror ./
pour télécharger tous les fichiers et dossiers récursivement dans le chemin actuel.mirror
, pour le répertoire actuel et ses sous-dossiers.Si vous pouvez utiliser
scp
au lieu deftp
, l'-r
option le fera pour vous. Je vérifierais si vous pouvez utiliser un mécanisme de transfert de fichiers plus moderne que FTP.la source
scp
tentera toujours d'utiliser ssh, qui ne fonctionnera pas si vous ne disposez que des informations d'identification FTP. Ça fait bizarre de répondre à un commentaire de 2008 disant que la technologie avec laquelle je suis coincé n'est pas moderne :( Bon vieux 2008, j'ai eu 18 ans le jour où vous avez posté votre commentaire.Utilisez plutôt WGet. Il prend en charge les protocoles HTTP et FTP.
Bonne chance!
référence: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
la source
Il y a 'ncftp' qui est disponible pour l'installation sous linux. Cela fonctionne sur le protocole FTP et peut être utilisé pour télécharger des fichiers et des dossiers de manière récursive. fonctionne sur linux. A été utilisé et fonctionne bien pour le transfert récursif de dossiers / fichiers.
Vérifiez ce lien ... http://www.ncftp.com/
la source
Si vous le pouvez, je vous suggère fortement
tar
etbzip
(ougzip
, quoi que flotte votre bateau) le répertoire sur la machine distante - pour un répertoire de n'importe quelle taille significative, les économies de bande passante valent probablement le temps de compresser / décompresser.la source
Si vous voulez vous en tenir à la ligne de commande FTP, vous devriez essayer NcFTP. Ensuite, vous pouvez utiliser get -R pour obtenir récursivement un dossier. Vous obtiendrez également l'achèvement.
la source
wget -r ftp://url
Fonctionne parfaitement pour Redhat et Ubuntu
la source
Vous ne devez pas utiliser
ftp
. Commetelnet
s'il n'utilisait pas de protocoles sécurisés, et les mots de passe sont transmis en texte clair. Cela permet aux tiers de saisir très facilement votre nom d'utilisateur et votre mot de passe.Pour copier des répertoires distants à distance, ces options sont meilleures:
rsync
est l'outil le plus adapté si vous pouvez vous connecter viassh
, car il ne copie que les différences et peut facilement redémarrer au milieu en cas de rupture de la connexion.ssh -r
est la deuxième meilleure option pour copier récursivement les structures de répertoires.Voir:
page de manuel rsync
page de manuel ssh
la source
basculer l'invite par la commande PROMPT.
Usage:
la source