Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to rename the downloaded file with wget?

To download the SOFA Statistics from the server I use the wget command:

wget -c http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp 

The filename of downloaded file in this case is download?source=files. If I add the --output-document option to the command, to rename the output file to sofastatistics-latest.deb, the format of downloaded file is not recognized by dpkg package.

dpkg-deb: error: `sofastatistics-latest.deb' is not a debian format archive 

How to rename correctly the downloaded file with wget?

UPDATE - Jan 08 '15

With the provided link the downloaded file always will be a *.tar.gz one. To get it with the real name just add the --content-disposition option as this (thanks to @6EQUJ5!):

wget --content-disposition http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp 

But I needed a *.deb file, so here was right the @creaktive, I had to search for a *.deb file link.

Thanks to all for the answers!

like image 363
Iurie Avatar asked Jan 13 '13 17:01

Iurie


People also ask

How do I name a file in wget?

Save with different file name By default, downloaded file will be saved with the last name mentioned in the URL. To save file with a different name option O can be used. Syntax: wget -O <fileName><URL>

How do I change the default download folder in wget?

When downloading a file, Wget stores it in the current directory by default. You can change that by using the -P option to specify the name of the directory where you want to save the file.


2 Answers

A redirect of standard output into arbitrary file name always works. You are doing it correctly as man wget says, using -O

wget http://www.kernel.org/pub/linux/kernel/README -O foo --2013-01-13 18:59:44--  http://www.kernel.org/pub/linux/kernel/README Resolving www.kernel.org... 149.20.4.69, 149.20.20.133 Connecting to www.kernel.org|149.20.4.69|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 12056 (12K) [text/plain] Saving to: `foo'  100%[======================================================================================================================================>] 12,056      --.-K/s   in 0.003s    2013-01-13 18:59:45 (4.39 MB/s) - `foo' saved [12056/12056] 

Indeed, you must be getting an HTML in your file (usually can be checked with man file).

[EDIT]

In your case client is receiving 302 Found (you can check it with curl -v URL).

The following curl does the trick by respecting the 3xx:

$ curl -L http://sourceforge.net/projects/sofastatistics/files/latest/download?source=files -o foo.deb   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed   0   463    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0   0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0 100 2035k  100 2035k    0     0   390k      0  0:00:05  0:00:05 --:--:-- 1541k $ file foo.deb  foo.deb: gzip compressed data, was "sofastats-1.3.1.tar", last modified: Thu Jan 10 00:30:44 2013, max compression 

There should be similar option for wget to tolerate HTTP redirects.

like image 101
Yauhen Yakimovich Avatar answered Sep 20 '22 04:09

Yauhen Yakimovich


If you were to do the same download from a web browser, and you notice the browser actually naming the file correctly, you can use the --content-disposition option to give wget the same behaviour:

wget --content-disposition http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp 

My Debian man page reports this as an 'experimental' feature but I cant recall it not working for me:

       --content-disposition            If this is set to on, experimental (not fully-functional) support for "Content-Disposition" headers is enabled. This can currently result in extra round-trips to the server            for a "HEAD" request, and is known to suffer from a few bugs, which is why it is not currently enabled by default.             This option is useful for some file-downloading CGI programs that use "Content-Disposition" headers to describe what the name of a downloaded file should be. 
like image 31
6EQUJ5 Avatar answered Sep 21 '22 04:09

6EQUJ5