在shell脚本中,我想从一些URL下载一个文件,并将其保存到特定的文件夹。使用curl命令将文件下载到特定文件夹时,我应该使用哪个特定的CLI标志,或者如何获得该结果?
当前回答
对于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/
其他回答
使用wget
wget -P /your/absolut/path "https://jdbc.postgresql.org/download/postgresql-42.3.3.jar"
我不认为你可以给curl一个路径,但你可以CD到位置,下载和CD回来。
cd target/path && { curl -O URL ; cd -; }
或者使用subshell。
(cd target/path && curl -O URL)
只有路径存在时,两种方法才会下载。-O保存远程文件名。下载后它将返回到原来的位置。
如果你需要显式地设置filename,你可以使用小的-o选项:
curl -o target/path/filename URL
Curl没有这样的选项(没有指定文件名),但wget有。目录可以是相对目录,也可以是绝对目录。此外,如果目录不存在,则会自动创建该目录。
wget -P relative/dir "$url"
wget -P /absolute/dir "$url"
——output-dir选项从curl 7.73.0开始就可用了:
curl --create-dirs -O --output-dir /tmp/receipes https://example.com/pancakes.jpg
这对我来说很管用:
curl http://centos.mirror.constant.com/8-stream/isos/aarch64/CentOS-Stream-8-aarch64-20210916-boot.iso --output ~/Downloads/centos.iso
地点:
——output允许我设置我想放置的文件和扩展文件的路径和命名。
推荐文章
- 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显示“警告:永久添加到已知主机列表”