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

at.*_*at. 47 linux macos curl wget

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

curl -O example.com/file.zip
wget example.com/file.zip
Run Code Online (Sandbox Code Playgroud)

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

curl -o mydir/file.zip example.com/file.zip
wget -O mydir/file.zip example.com/file.zip
Run Code Online (Sandbox Code Playgroud)

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

curl -dir mydir example.com/file.zip
Run Code Online (Sandbox Code Playgroud)

Kis*_*han 51

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

wget -P /home/test www.xyz.com
Run Code Online (Sandbox Code Playgroud)

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

  • 如何用`curl`做同样的行为? (2认同)

小智 15

我知道这是一个古老的问题,但你可以用curl做你所要求的

rm directory/somefile.zip
rmdir directory
mkdir directory
curl --http1.1 http://example.com/somefile.zip --output directory/somefile.zip
Run Code Online (Sandbox Code Playgroud)

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

  • 这正是问题中已经提到的内容。问题是选择一个目录但保留文件名。 (4认同)

Bas*_*tch 8

最简单的方法是cd进入子shell

  (cd somedir; wget example.com/file.zip)
Run Code Online (Sandbox Code Playgroud)

你可以将其设为 shell 函数(例如在你的~/.bashrc

  wgetinside() {
    ( cd $1 ; shift; wget $* )
  }
Run Code Online (Sandbox Code Playgroud)

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