使用 curl 下载到 stdout 并从 stdout untar --- 但也创建一个目录
Download to stdout with curl and untar from stdout --- but also create a directory
在 Bash 中,我可以使用 curl
下载文件到标准输出,然后解压内容:
curl -L http://wordpress.org/latest.tar.gz | tar -zx
我希望将解压文件放入 目录,如果该目录尚未创建(这样可以节省 mkdir
操作).
我试过这个失败了,解压到一个立即创建的目录,例如 example.com
:
curl -L http://wordpress.org/latest.tar.gz | tar -zx -C ${domain}/
命令失败,错误为 curl: (23) Failed writing body (303 != 1369)
。
注意:这不是权限问题,因为这是我在 root 下工作的测试环境。
命令有什么问题?
问题是该目录不存在(参见此处:
https://unix.stackexchange.com/questions/25311/create-target-directory-when-extracting-tarball).
请注意,如果您先创建目录,它就可以正常工作:
$ domain=example.com
$ mkdir -p ${domain} && curl -L http://wordpress.org/latest.tar.gz | tar -zx -C ${domain}/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 178 100 178 0 0 2902 0 --:--:-- --:--:-- --:--:-- 2918
100 8601k 100 8601k 0 0 4241k 0 0:00:02 0:00:02 --:--:-- 4472k
$ echo $?
0
在 Bash 中,我可以使用 curl
下载文件到标准输出,然后解压内容:
curl -L http://wordpress.org/latest.tar.gz | tar -zx
我希望将解压文件放入 目录,如果该目录尚未创建(这样可以节省 mkdir
操作).
我试过这个失败了,解压到一个立即创建的目录,例如 example.com
:
curl -L http://wordpress.org/latest.tar.gz | tar -zx -C ${domain}/
命令失败,错误为 curl: (23) Failed writing body (303 != 1369)
。
注意:这不是权限问题,因为这是我在 root 下工作的测试环境。
命令有什么问题?
问题是该目录不存在(参见此处: https://unix.stackexchange.com/questions/25311/create-target-directory-when-extracting-tarball).
请注意,如果您先创建目录,它就可以正常工作:
$ domain=example.com
$ mkdir -p ${domain} && curl -L http://wordpress.org/latest.tar.gz | tar -zx -C ${domain}/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 178 100 178 0 0 2902 0 --:--:-- --:--:-- --:--:-- 2918
100 8601k 100 8601k 0 0 4241k 0 0:00:02 0:00:02 --:--:-- 4472k
$ echo $?
0