如何提取tar(ed)Android回购



我正在从备份中恢复我的Linux分区(大部分是非压缩的tarball)。我在提取一个tarball时遇到了一个问题,该tarball是同步android repo的备份。我用简单的tar -cf command计算了我现有的回购的皮重,并用tar -xf blah.tar提取它。我得到以下错误。

http://pastebin.com/rkyu9qvD

tar -tvf blah.tar 转储

http://pastebin.com/WyrwU3v2(截断)

我认为问题出在符号链接上。例如,考虑提取失败

.repo/projects/packages/providers/DownloadProvider.git/info/exclude

如果文件是按-t所示的顺序提取的(如果我错了,请纠正我),那么首先它应该提取.repo/projects/packages/providers/DownloadProvider.git/info,因为它是符号链接(查看转储lrwxrwxrwx bootmgr/bootmgr 0 2014-03-23 11:02 .repo/projects/packages/providers/DownloadProvider.git/info -> ../../../../project-objects/platform/packages/providers/DownloadProvider.git/info)我认为这就是为什么它在提取时出错的原因

例如,许多其他文件都是以这种方式错误提取的,首先它会创建a/b/c.x路径来提取c.x,但后来发现b是指向另一个目录的符号链接,然后抛出类似文件已经存在的错误

因此,我应该如何提取它的任何想法都是不可能的。

如果这是不可能的,那么任何其他更好的方式来备份现有的Android回购,这样我就可以将其移动到其他HDD。

来自tar文档:

Normally, when tar archives a symbolic link, it writes a block to the archive naming the target of the link. In that way, the tar archive is a faithful record of the file system contents. When--取消引用'(-h') is used with--创建')(-c'), tar archives the files symbolic links point to, instead of the links themselves.

所以试着用tar -chf ...归档,我想你的问题会得到解决。

最新更新