我正在尝试运行这样的命令来备份我的公共目录:
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
这让我困惑,因为我希望它创建文件,而不是打开它。我在其他项目中使用了类似的命令没有问题,所以我不确定这里的问题是什么。我能做错什么?
答案 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
我仍然不明白为什么我需要指定存档名称的绝对路径,因为我总是在其他项目中使用相对路径。我想也许这个服务器的设置方式有所不同?