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!
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.
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.