如何在OS X上使用curl将文件下载到新创建的目录?

时间:2016-11-01 19:37:31

标签: bash macos curl heroku

我正在尝试将我的Heroku备份下载到文件夹中。

下载到当前文件夹,如下所示:

curl -o latest.dump `heroku pg:backups public-url`

但是,当我尝试向folders添加latest.dump路径时,它看起来像这样:

$ curl -o /db-bkups/latest.dump `heroku pg:backups public-url`
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 44318    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0Warning: Failed to create the file 
Warning: /db-bkups/latest.dump: No such file 
Warning: or directory
 36 44318   36 16384    0     0   9626      0  0:00:04  0:00:01  0:00:03  9626
curl: (23) Failed writing body (0 != 16384)

理想情况下,我希望像以下一样保存和下载:

/db-bkups/nov-1-2016/timestamp-db.dump

在运行cron时动态创建文件夹nov-1-2016,文件名是运行bkup时的时间戳。

1 个答案:

答案 0 :(得分:8)

您可以尝试使用curl --create-dirs参数。

  • 这是一个创建目录层次结构的示例(如果它尚不存在),并将命名您需要使用date命令的输出重命名的子目录:

curl -o /db-bkups/$(date +"%b-%d-%Y")/timestamp-db.dump --create-dirs http://www.w3schools.com/xml/simple.xml

  • 结果是存储在如下目录中的文件:

/db-bkups/Nov-04-2016/timestamp-db.dump

*使用curl 7.49.1

进行测试