¿Cómo extraer tar (ed) Android repo?

Estoy restaurando mi partición de Linux a partir de copys de security (principalmente files comprimidos no comprimidos). Me enfrenta un problema al extraer un tarball que es una copy de security del repository de Android sincronizado. Tarté mi repository existente con el simple tar -cf command y lo estoy extrayendo usando tar -xf blah.tar . Me aparece el siguiente error.

http://pastebin.com/rkyu9qvD

Volcado de tar -tvf blah.tar

http://pastebin.com/WyrwU3v2 (truncado)

Creo que el problema son los enlaces simbólicos. Por ejemplo, considere la extracción fallida de

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

Si los files se extraen serialmente como se muestra por -t ( .repo/projects/packages/providers/DownloadProvider.git/info si estoy equivocado) entonces primero debería extraer .repo/projects/packages/providers/DownloadProvider.git/info porque es un enlace simbólico (Vea volcado lrwxrwxrwx bootmgr/bootmgr 0 2014-03-23 11:02 .repo/projects/packages/providers/DownloadProvider.git/info -> ../../../../project-objects/platform/packages/providers/DownloadProvider.git/info ) Creo que es por eso que está obteniendo un error al extraerlo.

Muchos otros files se extraen de forma incorrecta de esta forma, por ejemplo, primero creará a/b/cx ruta a/b/cx para extraer cx pero luego descubrirá que b es un enlace simbólico a otro directory y luego arroja un error como el file ya existe

Entonces, cualquier idea de cómo debería extraerlo o es imposible.

Si es imposible, entonces hay otra forma mejor de hacer una copy de security del repository de Android existente para poder moverlo a otro HDD.

De la documentation de 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 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 –dereference '( -h') is used with –create '( -c'), tar archives the files symbolic links point to, instead of the links themselves.

Intente archivar con tar -chf ... y supongo que sus problemas serán resueltos.

    Intereting Posts