如何使用curl或wget将文件下载到目录中?

我知道我可以使用以下2个命令来下载文件:

curl -O example.com/file.zip wget example.com/file.zip 

但我希望他们进入一个特定的目录。 所以我可以做到以下几点:

 curl -o mydir/file.zip example.com/file.zip wget -O mydir/file.zip example.com/file.zip 

有没有办法不必指定文件名? 像这样的东西:

 curl -dir mydir example.com/file.zip 

Solutions Collecting From Web of "如何使用curl或wget将文件下载到目录中?"

以下行将下载所有文件到您提到的目录。

 wget -P /home/test www.xyz.com 

这里的文件将被下载到/home/test目录

我知道这是一个古老的问题,但有可能做你所要求的卷曲

 rm directory/somefile.zip rmdir directory mkdir directory curl --http1.1 http://example.com/somefile.zip --output directory/somefile.zip 

首先如果这是脚本你需要确保文件,如果它已经存在被删除然后删除目录,然后卷曲下载,否则卷曲将失败,文件和目录已存在的错误。

最简单的方法是在一个子shell中进行cd刻录

  (cd somedir; wget example.com/file.zip) 

你可以做一个shell函数(例如在你的~/.bashrc

  wgetinside() { ( cd $1 ; shift; wget $* ) } 

然后输入wgetinside somedir http://example.com/file.zip

简短的回答是不卷曲,wget自动写入STDOUT。 它没有内置的选项将下载文件放入目录。

 -o/--output <file> Write output to <file> instead of stdout (Curl) -O, --output-document=FILE write documents to FILE. (WGet) 

但是,由于它本身输出到STDOUT,它可以为您提供如下的程序化解决方案:

  i="YOURURL"; f=$(awk -F'/' '{print $NF}' <<< $i);curl $i > ~/$f 

第一个我将定义您的网址(example.com/file.zip)作为一个变量。 f =部分删除URL并保留/file.zip,然后将该文件($ i)作为文件名卷曲到目录(〜)。