使用curl命令从位置下载文件到子目录中并使用不同的名称保存

使用curl命令从位置下载文件到子目录中并使用不同的名称保存

我正在使用curl从网址下载文件。目前我可以使用curl以下命令下载当前目录中的文件

curl -O http://path/to/url/17.01.24/smcfs-17.01.24.ear

这会正常下载文件,但会smcfs-17.01.24.ear按预期名称将其保存在当前目录中。但是我想通过使用 bash 脚本在当前目录中创建一个目录来下载并保存此文件

if [[ ! -d "$4" ]]; then
    mkdir "$4"
    curl -O http://path/to/url/$4/smcfs-$4.ear   #I would like curl to fucntion like I said here    
fi

笔记:在上面的代码片段中,我将版本号 ie17.01.24作为4rth脚本的参数

预期的输出将是curl 按当前目录的子目录中的smcfs-17.01.24.ear名称下载文件。smcfs.ear17.01.24

我想在不进入子目录、使用curl 下载然后返回当前目录的情况下实现此目的。

答案1

我使用以下命令将文件下载到具有给定名称的目录中

curl "http://path/to/url/$4/smcfs-$4.ear" --output "$4/smcfs.ear"

答案2

您可以通过删除以下内容来获得您想要的行为-O

curl "http://path/to/url/$4/smcfs-$4.ear" > "$4/smcfs.ear"

(之后mkdir)。默认情况下curl将下载的内容输出到标准输出;-O告诉它将其保存到与远程名称匹配的文件中。

相关内容