web-dev-qa-db-fra.com

Comment permettre à wget d'écraser des fichiers

En utilisant la commande wget, comment puis-je autoriser/indiquer à écraser mon fichier local à chaque fois, quel que soit le nombre de fois que j'appelle.

Disons que je veux télécharger un fichier depuis l'emplacement: http: //server/folder/file1.html

Ici, chaque fois que je dis wget http://server/folder/file1.html, Je veux ceci file1.html à être écrasé dans mon système local quelle que soit l'heure à laquelle il est modifié, déjà téléchargé, etc. Mon intention/cas d'utilisation ici est que lorsque j'appelle wget, je suis très sûr de vouloir remplacer/écraser le fichier existant .

J'ai essayé les options suivantes, mais chaque option est destinée/destinée à une autre fin.

  1. -nc => --no-clobber
  2. -N => Activer l'horodatage
  3. -r => Activer la récupération récursive
9
Gnanam
wget -q http://www.whatever.com/filename.txt -O /path/filename.txt 

-q est un mode silencieux, vous pouvez donc le jeter dans un cron sans aucune sortie de la commande

7
aleroot

Cette option fonctionne

wget -N http://server/folder/file1.html

info

-N,  --timestamping            don't re-retrieve files unless newer than
                               local.
8
Steven Penny

Utilisez curl à la place?

curl http://server/folder/file1.html > file1.html
4
Stu Thompson

Je ne pense pas que vous puissiez le faire à moins de télécharger également les répertoires (passez donc le drapeau -x). Si vous savez ce qu'est le fichier, vous pouvez utiliser -O nom de fichier, par exemple:
wget http://yourdomain.com/index.html -O index.html

0
James L

Non essayé: vous pouvez peut-être travailler avec wget -r --level=0.

Une autre possibilité: curl -O écrase (mais il utilise une manière différente de choisir le nom de fichier, qui peut ou non vous intéresser).

Pourquoi ne pas mettre un petit wrapper autour du wget dans votre script?

Le script pourrait déplacer tous les fichiers vers un emplacement temporaire, puis wget les fichiers/pages Web distants.

En cas de succès, supprimez les fichiers dans l'emplacement temporaire. En cas d'échec, replacez les fichiers et déclenchez une erreur.

Il n'y a pas de moyen simple de faire ce que vous voulez en utilisant simplement wget à moins que vous ne connaissiez spécifiquement le nom de tous les fichiers, auquel cas l'option -O vous permettra de forcer le nom du fichier téléchargé.

0
Richard Holloway