GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi wget'ing une image me donne-t-il un fichier, pas une image ?

Pourquoi wget choisir ce nom ?

Malheureusement, wget ne fera aucune hypothèse sur ce que vous voulez télécharger à moins que vous ne le lui disiez. Peu importe si votre fichier est une image, un document, un fichier compressé, etc.

Le fichier est enregistré sous la forme de la fin de l'URL, c'est-à-dire de la dernière barre oblique à la fin de l'URL. Dans votre cas, c'est .gif?id=2 . La partie après l'extension de fichier réelle (.gif ) est contenu dans l'URL, mais il s'agit d'un paramètre de requête HTTP. Pour wget , cependant, il déterminera le nom du fichier de sortie.

Comment puis-je définir un nom de fichier différent ?

Si vous souhaitez spécifier un nom de fichier de sortie pour wget , ajoutez le -O option (O majuscule) :

wget example.com/something.gif?id=2 -O 2.gif

Cela remplacera le comportement par défaut et définira le nom de fichier sur 2.gif . Notez que le -o (downcase) spécifie le nom du fichier de sortie pour tous les messages de journal wget pourrait autrement imprimer sur le shell.

Enfin, il y a le --content-disposition option qui pourrait entraîner la définition du nom de fichier approprié. Mais cela dépend entièrement du serveur que vous téléchargez à partir de l'envoi des informations d'en-tête correctes :

Cette option est utile pour certains programmes CGI de téléchargement de fichiers qui utilisent des en-têtes Content-Disposition pour décrire le nom d'un fichier téléchargé.

L'option est actuellement toujours marquée comme expérimentale et n'est donc pas activée par défaut.

Je vous encourage fortement à lire la page de manuel des outils que vous utilisez pour comprendre leur comportement. Entrez simplement man wget et lisez-le, en particulier les options qu'il propose.

Aussi, pour répondre à ce que @Indrek a écrit dans le commentaire sur votre question :je suppose que vous avez une faute de frappe et que vous ne voulez pas télécharger un fichier GIF dans un fichier appelé .png — le simple fait de changer l'extension ne sera pas en faire automatiquement un PNG. GIF et PNG utilisent des encodages différents et vous devrez utiliser n'importe quel type d'outil de conversion d'image pour convertir entre ces formats. Cette conversion, cependant, sera sans perte, il n'y a donc aucun mal à télécharger les fichiers dans le "mauvais" format et à les convertir plus tard.


Il y a l'option de ligne de commande --content-disposition ce qui - si le site Web fournit un en-tête correct - devrait entraîner l'enregistrement de votre fichier avec le bon nom.

Ma boîte de compression Debian indique que l'option est "expérimentale" cependant...


C'est simplement parce que regardez le chemin, il se termine par ?id=2, donc il sera enregistré comme ceci, vous pouvez déplacer le fichier ou utiliser le paramètre -O pour définir un nom de fichier.


Linux
  1. Pourquoi la substitution de processus Bash ne fonctionne-t-elle pas avec certaines commandes ?

  2. Pourquoi la méthode suivante ne modifie-t-elle pas la taille limite du fichier principal ?

  3. Pourquoi le fichier de traduction Bash ne contient-il pas tous les textes d'erreur ?

  4. Linux - Pourquoi Setuid ne fonctionne-t-il pas ??

  5. Linux – Pourquoi la locale Es_mx fonctionne-t-elle mais pas Es ?

Le fichier de métadonnées ne correspond pas à la somme de contrôle - erreur YUM !

Pourquoi `md5sum` ne donne-t-il pas le même hachage qu'Internet ?

Pourquoi ne puis-je pas diviser un fichier .ape ?

Pourquoi `exit &` ne fonctionne pas ?

open() en Python ne crée pas de fichier s'il n'existe pas

Pourquoi 'dd' ne fonctionne-t-il pas pour créer une clé USB amorçable ?