我知道我可以使用以下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
答案 0 :(得分:49)
以下行会将所有文件下载到您提到的目录中。
wget -P /home/test www.xyz.com
此处文件将下载到/home/test
目录
答案 1 :(得分:14)
我知道这是一个古老的问题,但你可以用curl做你想要的事情
rm directory/somefile.zip
rmdir directory
mkdir directory
curl --http1.1 http://example.com/somefile.zip --output directory/somefile.zip
首先,如果这是脚本,你需要确保文件是否已经删除然后删除目录然后卷曲下载,否则curl将失败,文件和目录已经存在错误。
答案 2 :(得分:3)
最简单的方法是在子shell中cd
(cd somedir; wget example.com/file.zip)
你可以把它变成一个shell函数(例如在你的~/.bashrc
中)
wgetinside() {
( cd $1 ; shift; wget $* )
}
然后输入wgetinside somedir http://example.com/file.zip
答案 3 :(得分:1)
简短回答不是curl而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
第一个我将你的url(example.com/file.zip)定义为一个变量。 f = part删除了URL并离开/file.zip,然后将该文件($ i)卷曲到目录(〜)作为文件名。