[doc]wget[/doc] 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