GNU/Linux >> Linux Esercitazione >  >> Linux

Perché wget'ing un'immagine mi dà un file, non un'immagine?

Perché wget scegli questo nome?

Sfortunatamente, wget non farà supposizioni su ciò che vuoi scaricare a meno che tu non glielo dica. Non importa se il tuo file è un'immagine, un documento, un file zippato, eccetera.

Il file viene salvato come qualsiasi cosa con cui termina l'URL, quindi qualsiasi cosa dall'ultima barra alla fine dell'URL. Nel tuo caso, è .gif?id=2 . La parte dopo l'effettiva estensione del file (.gif ) è contenuto nell'URL, ma è un parametro di query HTTP. Per wget , tuttavia, determinerà il nome del file di output.

Come posso impostare un nome file diverso?

Se vuoi specificare un nome file di output per wget , aggiungi il -O (O maiuscola) opzione:

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

Questo sovrascriverà il comportamento predefinito e imposterà il nome del file su 2.gif . Nota che -o L'opzione (downcase) specifica il nome del file di output per qualsiasi messaggio di log wget potrebbe altrimenti stampare sulla shell.

Infine, c'è il --content-disposition opzione che potrebbe comportare l'impostazione del nome file corretto. Ma questo dipende interamente dal server che stai scaricando dall'invio delle informazioni di intestazione corrette:

Questa opzione è utile per alcuni programmi CGI per il download di file che utilizzano intestazioni Content-Disposition per descrivere quale dovrebbe essere il nome di un file scaricato.

L'opzione è attualmente ancora contrassegnata come sperimentale e quindi non abilitata per impostazione predefinita.

Ti incoraggio vivamente a leggere la manpage degli strumenti che stai utilizzando per comprenderne il comportamento. Basta inserire man wget e leggilo attentamente, in particolare le opzioni che fornisce.

Inoltre, per rispondere a ciò che @Indrek ha scritto nel commento alla tua domanda:presumo che tu abbia un errore di battitura e non intendi scaricare un file GIF in un file chiamato .png — semplicemente cambiando l'estensione non renderlo automaticamente un PNG. GIF e PNG utilizzano codifiche diverse e dovrai utilizzare qualsiasi tipo di strumento di conversione delle immagini per convertire tra questi formati. Questa conversione, tuttavia, sarà senza perdite, quindi non c'è nulla di male nel scaricare i file nel formato "sbagliato" e convertirli in un secondo momento.


C'è l'opzione della riga di comando --content-disposition che, se il sito Web fornisce un'intestazione corretta, dovrebbe far sì che il file venga salvato con il nome corretto.

Il mio debian squeeze box dice che l'opzione è "sperimentale" però...


Questo semplicemente perché guarda il percorso, finisce con ?id=2, quindi salverà come questo, puoi spostare il file o usare il parametro -O per definire un nome file.


Linux
  1. Perché `md5sum` non fornisce lo stesso hash di Internet?

  2. Perché il modo seguente non cambia la dimensione del limite del file principale?

  3. Perché il file di traduzione Bash non contiene tutti i testi di errore?

  4. Linux – Perché Setuid non funziona??

  5. Linux:perché Locale Es_mx funziona ma non Es?

Il file di metadati non corrisponde al checksum – Errore YUM!

Perché la sostituzione del processo Bash non funziona con alcuni comandi?

Perché non posso dividere un file .ape?

Come posso richiedere un file ma non salvarlo con Wget?

Perché 'dd' non funziona per la creazione di USB avviabile?

Perché chmod +w non concede il permesso di scrittura ad altri(o)