在Bash中,我可以使用curl
将文件下载到stdout,然后解压缩内容:
curl -L http://wordpress.org/latest.tar.gz | tar -zx
我希望将untar设置为目录,并且如果该目录尚未创建,则将创建该目录(从而保存mkdir
操作)。
我尝试了这个失败,将其解压缩到一个立即创建的目录,例如example.com
:
curl -L http://wordpress.org/latest.tar.gz | tar -zx -C ${domain}/
命令失败,错误为curl: (23) Failed writing body (303 != 1369)
。
注意:这不是权限问题,因为这是我在root中工作的测试环境。
该命令出了什么问题?
答案 0 :(得分:1)
问题是该目录不存在(请参阅此处: 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