J'ai essayé '-N' et '--no-clobber' mais le seul résultat que j'obtiens est de récupérer une nouvelle copie de l'example.exe existant avec le numéro un nombre ajouté en utilisant cette synaxe 'example.exe.1'. Ce n'est pas ce que j'aimerais obtenir. J'ai juste besoin de télécharger et d'écraser le fichier example.exe dans le même dossier où j'ai déjà enregistré une copie d'example.com sans que wget vérifie si la mine est plus ancienne ou plus récente respectez le fichier on example.exe déjà présent dans mon dossier de téléchargement . Pensez-vous que je suis possible ou que je dois créer un script qui supprime le fichier example.exe ou peut-être quelque chose qui change sa date de modification, etc.?
Si vous spécifiez le fichier de sortie à l'aide de -O
option, il écrasera tout fichier existant.
Par exemple:
wget -O index.html bbc.co.uk
Si vous exécutez plusieurs fois, le fichier index.html sera écrasé.
wget
ne vous permet pas d'écraser un fichier existant sauf si vous nommez explicitement le fichier de sortie sur la ligne de commande avec l'option -O
.
Je suis un peu paresseux et je ne veux pas taper le nom du fichier de sortie sur la ligne de commande alors qu'il est déjà connu à partir du fichier téléchargé. Par conséquent, j'utilise curl comme ceci:
curl -O http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl
Soyez prudent lorsque vous téléchargez des fichiers comme celui-ci à partir de sites dangereux. La commande ci-dessus écrira un fichier nommé comme le site Web connecté souhaite le nommer (dans le répertoire courant cependant). Le nom final peut être masqué par des redirections et des scripts php ou être obscurci dans l'URL. Vous pourriez finir par écraser un fichier que vous ne souhaitez pas écraser.
Et si jamais vous trouvez un fichier nommé ls
ou tout autre nom attrayant dans le répertoire courant après avoir utilisé curl
de cette façon, évitez d'exécuter le fichier téléchargé. Il peut s'agir d'un cheval de Troie téléchargé à partir d'un site Web malhonnête ou corrompu!
wget --backups=1 google.com
renomme original fichier avec .1
suffixe et écrit le nouveau fichier dans le nom de fichier voulu.
Pas exactement ce qui a été demandé, mais pourrait être utile dans certains cas.
-c
ou --continue
Depuis le manuel :
Si vous utilisez '-c' sur un fichier non vide et que le serveur ne prend pas en charge le téléchargement continu, Wget redémarrera le téléchargement à partir de zéro et écrasera entièrement le fichier existant .
J'aime l'option -c. J'ai commencé avec la page de manuel puis le web mais j'ai cherché cela plusieurs fois. Comme si vous relayiez une webcam, l'image doit donc toujours être nommée image.jpg. Il semble que cela devrait être plus clair dans la page de manuel.
Je l'utilise depuis quelques années pour télécharger des choses en arrière-plan, parfois combiné avec "limit-rate =" dans mon fichier wgetrc
while true
do
wget -c -i url.txt && break
echo "Restarting wget"
sleep 2
done
Créez un petit fichier appelé url.txt et collez-y l'URL du fichier. Configurez ce script sur votre chemin ou peut-être en tant qu'alias et exécutez-le. Il continue de réessayer le téléchargement jusqu'à ce qu'il n'y ait pas d'erreur. Parfois, à la fin, il entre dans une boucle affichant
416 Requested Range Not Satisfiable
The file is already fully retrieved; nothing to do.
mais c'est inoffensif, ctrl-c juste. Je pense qu'il a toujours obtenu le fichier que je voulais même si wget manque de nouvelles tentatives ou que la connexion disparaît temporairement. J'ai téléchargé des choses pendant des jours avec. Une image CD sur modem, oui, toujours avec wget.
Mon cas d'utilisation implique deux URL différentes, parfois la deuxième n'existe pas, mais si elle existe, je veux qu'elle écrase le premier fichier.
Le problème de l'utilisation de wget -O est que, lorsque le deuxième fichier N'EXISTE PAS, il écrasera le premier fichier avec un fichier BLANK.
Donc, la seule façon que j'ai pu trouver est avec une instruction if:
--spider vérifie si un fichier existe et retourne 0 s'il le fait
--quiet échouer tranquillement, sans sortie
-nv est silencieux, mais signale toujours des erreurs
wget -nv https://example.com/files/file01.png -O file01.png
# quietly check if a different version exists
wget --quiet --spider https://example.com/custom-files/file01.png
if [ $? -eq 0 ] ; then
# A different version exists, so download and overwrite the first
wget -nv https://example.com/custom-files/file01.png -O file01.png
fi
C'est verbeux, mais je l'ai trouvé nécessaire. J'espère que cela est utile pour quelqu'un.