Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Curl command doesn't download the file (linux mint)

Tags:

I want to download a file with curl and it doesn't work!

 curl -O https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o 

This is the example that I saw on many official sites. They say that the command above downloads the file hello.o. It doesn't! It just downloads some kind of output and stores it in a file with the same name.

If I run the command above, and I print the content of hello.o, it says:

 <html><body>You are being <a href="https://raw.githubusercontent.com/systems-cs-pub-ro/uso/master/tema1/help/hello.o">redirected</a>.</body></html> 

The dimension of hello.o is 147 Bytes.

Also, if I type

  wget https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o 

it downloads the file hello.o exactly how it is! Now, it's dimension is 1,2 K

Is there a way to download the file hello.o using curl, exactly how I can download it using wget?

Thank you respectfully.

like image 523
Cosmin Ioniță Avatar asked Dec 13 '14 12:12

Cosmin Ioniță


People also ask

How do I download a curl file in Linux?

How to download a file with curl command. The basic syntax: Grab file with curl run: $ curl https://your-domain/file.pdf. Get file using ftp or sftp protocol: $ curl ftp://ftp-your-domain-name/file.tar.gz.

Why curl command is not working Linux?

We might have come across errors like “curl: command not found” while working in the terminal. This type of error comes due to only one reason: the relevant package is not installed. Curl is a very popular data transfer command-line utility used for downloading and uploading data from or to the server.

How do I download a tar file with curl?

To download you just need to use the basic curl command but add your username and password like this curl --user username:password -o filename. tar. gz ftp://domain.com/directory/filename.tar.gz . To upload you need to use both the –user option and the -T option as follows.

How do you save a curl output file?

For those of you want to copy the cURL output in the clipboard instead of outputting to a file, you can use pbcopy by using the pipe | after the cURL command. Example: curl https://www.google.com/robots.txt | pbcopy . This will copy all the content from the given URL to your clipboard.


Video Answer


1 Answers

With Curl, you need to use the -L flag like this:

curl -L https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o > hello.o

From Curl's man page:

-L, --location (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. If used together with -i, --include or -I, --head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method.

Please be aware that your question has already been answered here: How do I download a tarball from GitHub using cURL?

like image 160
Ravi Gehlot Avatar answered Sep 20 '22 15:09

Ravi Gehlot