tar试图打开而不是创建存档

时间:2014-09-09 10:12:08

标签: gzip tar

我正在尝试运行这样的命令来备份我的公共目录:

tar -zcvf backups/2014-09-09-public_html.tar.gz public_html -C home/path

我的理解是,这应该用我的公共目录的压缩内容创建和存档。但是我收到了以下错误:

tar (child): backups/2014-09-09-public_html.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2

这让我困惑,因为我希望它创建文件,而不是打开它。我在其他项目中使用了类似的命令没有问题,所以我不确定这里的问题是什么。我能做错什么?

2 个答案:

答案 0 :(得分:1)

创建文件时,实际上是在写入模式下打开它,即使它尚不存在(请阅读man 3 open以进一步了解它在* nix上的工作方式)。

您确定您对要尝试压缩的目标位置有写入权限吗?你可以touch(1)那个位置吗?

答案 1 :(得分:0)

好吧,我终于通过在开头放置-C / home / path并使用存档名称的绝对路径而不是相对路径来实现它:

tar -C /home/path -zcvf /home/path/backups/2014-09-09-public_html.tar.gz public_html

我仍然不明白为什么我需要指定存档名称的绝对路径,因为我总是在其他项目中使用相对路径。我想也许这个服务器的设置方式有所不同?