How to download a file using curl

后端 未结 4 1754
余生分开走
余生分开走 2021-02-05 02:50

I\'m on mac OS X and can\'t figure out how to download a file from a URL via the command line. It\'s from a static page so I thought copying the download link and then using

相关标签:
4条回答
  • 2021-02-05 03:22

    The easiest solution for your question is to keep the original filename. In that case, you just need to use a capital o ("-O") as option (not a zero=0!). So it looks like:

    curl -O https://github.com/jdfwarrior/Workflows.git
    
    0 讨论(0)
  • 2021-02-05 03:27

    The -o --output option means curl writes output to file you specicify instead of stdout, you put the url after -o, so the curl thinks the url is a file to write and no url specified. You need a file name after the -o, then the url. Since the url is HTTPS-based, maybe you also need the -k option:

    curl -o ./filename -k https://github.com/jdfwarrior/Workflows.git
    

    And wget is not available by default on OS X.

    0 讨论(0)
  • 2021-02-05 03:27
    curl -OL https://github.com/jdfwarrior/Workflows.git
    

    -O: This option used to write the output to a file which named like remote file we get. In this curl that file would be Workflows.git.

    -L: This option used 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.

    Ref: curl man page

    0 讨论(0)
  • 2021-02-05 03:37

    There are several options to make curl output to a file

     # saves it to myfile.txt
    curl http://www.example.com/data.txt -o myfile.txt -L
    
    # The #1 will get substituted with the url, so the filename contains the url
    curl http://www.example.com/data.txt -o "file_#1.txt" -L 
    
    # saves to data.txt, the filename extracted from the URL
    curl http://www.example.com/data.txt -O -L
    
    # saves to filename determined by the Content-Disposition header sent by the server.
    curl http://www.example.com/data.txt -O -J -L
    
    # -O Write output to a local file named like the remote file we get
    # -o <file> Write output to <file> instead of stdout (variable replacement performed on <file>)
    # -J Use the Content-Disposition filename instead of extracting filename from URL
    # -L Follow redirects  
    
    0 讨论(0)
提交回复
热议问题