Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

Déjà un an…

#1 Le 09/12/2010, à 01:38

[script]télécharger récursivement le dernier dossier dans un lien HTTP

wget est un outil très puissant, avec de très nombreuses options, parfois trop d'options, si bien que l'on peut s'y perdre.
La fonction bash qui suit permet de télécharger récursivement dans le dossier courant le dernier dossier de l'adresse HTTP fournie en argument. À ajouter dans votre ~/.bashrc (pensez à relancer le terminal).

function smartwget () {
    chemin=${1%/}
    number=$(( $(sed "s|/|\n|g" <<<${chemin#http://*/} | wc -l) - 1 ))
    [[ ${number} -gt 0 ]] && arg="--cut-dirs=${number}"
    wget -r -np -nH $arg -R "index.htm*" ${1}
}

brève explication :
les premières lignes servent à calculer la profondeur des sous-dossiers
-r : récusif
-np : ne pas remonter vers les parents
-nH : ne pas créer de dossier contenant le nom de la racine du site
-R "index.htm*" : ne pas télécharger les fichiers index.htm*
--cut-dirs=${number} : si la profondeur est supérieure à 0, ne pas recréer localement l'arborescence du serveur distant


GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

Haut de page ↑