Comment créer un miroir avec wget sans créer de répertoires parent?

je veux mettre en miroir un dossier via FTP, comme ceci:

wget --mirror --user=x --password=x ftp://ftp.site.com/folder/subfolder/evendeeper

Mais je ne veux pas créer une structure de répertoire comme ceci:

ftp.site.com -> dossier -> sous-dossier -> evendeeper

je veux juste:

evendeeper

et tout ce qui est en dessous pour être la structure résultante. Il serait également acceptable pour le contenu de evendeeper pour le vent dans le répertoire courant, tant que les sous-répertoires sont créés pour les sous-répertoires d' evendeeper sur le serveur.

je suis conscient de l' -np option, en fonction de la documentation qui l'empêche simplement de suivre les liens vers les pages parent (un non-problème pour les fichiers binaires que je crée en miroir via FTP). Je suis aussi au courant de la -nd option, mais cela empêche de créer n'importe quelle structure de répertoire, même pour les sous-répertoires de evendeeper.

j'envisagerais des solutions de rechange pourvu qu'elles soient basées sur la ligne de commande, facilement disponible sous forme de paquets Ubuntu et facilement automatisé comme wget.

38
demandé sur Nicolás 2011-02-18 18:36:03

3 réponses

pour un chemin comme:ftp.site.com/a/b/c/d

-nH télécharger tous les fichiers dans le répertoire a/b/c/d dans le répertoire courant, et -nH --cut-dirs=3 télécharger tous les fichiers dans le répertoire d dans le répertoire courant.

53
répondu vs_inf 2017-10-04 19:35:17

au Lieu d'utiliser:

-nH --cut-dirs=1

utilisation:

-nH --cut-dirs=100

cela va couper plus de répertoires et aucun dossier ne sera créé.

Note: 100 = le nombre de dossiers à ne pas créer. Vous pouvez changer 100 à n'importe quel nombre.

8
répondu Tony TCG 2017-10-04 15:10:07

-np (pas de parent) option fera probablement ce que vous voulez, lié avec -L 1 (je pense, de ne pas avoir un wget installer avant moi), ce qui limite la récursivité à un niveau.

EDIT. OK. gah... je devrais peut-être attendre d'avoir pris un café.. Il y a un --cut ou une option similaire, qui vous permet de "couper" un nombre spécifié de répertoires à partir du chemin de sortie, Donc pour /a/b/c/d, une coupe de 2 forcerait wget à créer c/d sur votre machine locale

7
répondu Marc B 2011-02-18 15:39:19