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!
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>
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With