在shell脚本中,我想从一些URL下载一个文件,并将其保存到特定的文件夹。使用curl命令将文件下载到特定文件夹时,我应该使用哪个特定的CLI标志,或者如何获得该结果?
当前回答
——output-dir选项从curl 7.73.0开始就可用了:
curl --create-dirs -O --output-dir /tmp/receipes https://example.com/pancakes.jpg
其他回答
使用wget
wget -P /your/absolut/path "https://jdbc.postgresql.org/download/postgresql-42.3.3.jar"
对于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或更高版本-
下面是一个使用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中完成了。
——output-dir选项从curl 7.73.0开始就可用了:
curl --create-dirs -O --output-dir /tmp/receipes https://example.com/pancakes.jpg
推荐文章
- HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA is OK
- 如何在Mac OS X 10.6中使硬件发出哔哔声
- 从Docker容器获取环境变量
- 如何重定向标准derr和标准输出到不同的文件在同一行脚本?
- 如何循环通过一个目录递归删除具有某些扩展名的文件
- 在Bash中获取日期(比当前时间早一天)
- Linux: kill后台任务
- 在OSX中永久设置PATH环境变量
- 删除Bash脚本中的重复条目
- 如何将Bash命令的输出分配给变量?
- 在bash中传递数组作为参数
- PHP中的异步shell执行器
- 如何在shell中为for循环添加前导零?
- Bash中单方括号和双方括号的区别
- Git显示“警告:永久添加到已知主机列表”