在shell脚本中,我想从一些URL下载一个文件,并将其保存到特定的文件夹。使用curl命令将文件下载到特定文件夹时,我应该使用哪个特定的CLI标志,或者如何获得该结果?


当前回答

使用wget

wget -P /your/absolut/path "https://jdbc.postgresql.org/download/postgresql-42.3.3.jar"

其他回答

下面是一个使用Batch从URL创建一个安全文件名的例子,并将其保存到名为tmp/的文件夹中。我确实认为奇怪的是,Windows或Linux的Curl版本没有这个选项。

@echo off
set url=%1%

for /r %%f in (%url%) do (
    set url=%%~nxf.txt
    curl --create-dirs -L -v -o tmp/%%~nxf.txt %url%
)

上面的批处理文件将接受一个输入,一个URL,并从URL创建一个文件名。如果没有指定文件名,它将被保存为tmp/.txt。这不是完全为你完成的但它在Windows中完成了。

对于Windows,在PowerShell中,curl是cmdlet Invoke-WebRequest的别名,这个语法是有效的:

curl "url" -OutFile file_name.ext

例如:

curl "https://airflow.apache.org/docs/apache-airflow/2.2.5/docker-compose.yaml" -OutFile docker-compose.yaml

来源:https://krypted.com/windows-server/its-not-wget-or-curl-its-iwr-in-windows/

这对我来说很管用:

curl http://centos.mirror.constant.com/8-stream/isos/aarch64/CentOS-Stream-8-aarch64-20210916-boot.iso --output ~/Downloads/centos.iso 

地点:

——output允许我设置我想放置的文件和扩展文件的路径和命名。

对于Windows中的powershell,您可以在——output标志中添加相对路径+文件名:

curl -L  http://github.com/GorvGoyl/Notion-Boost-browser-extension/archive/master.zip --output build_firefox/master-repo.zip

这里build_firefox是相对文件夹。

使用重定向:

这可以将curl下载的文件放到指定的路径中:

curl https://download.test.com/test.zip > /tmp/test.zip

显然,“test.zip”是您想要标记重定向文件的任意名称—可以是相同的名称,也可以是不同的名称。

我实际上更喜欢@ oder解决方案,但这将让你绕过这个问题,直到你的发行版支持curl版本7.73.0或更高版本-