¿Cómo puedo comprimir / comprimir un enlace simbólico?

Respuestas:

68

Puede almacenar enlaces simbólicos como enlaces simbólicos (a diferencia de una copia del archivo / directorio al que apuntan) utilizando el --symlinksparámetro del estándar zip.

Suponiendo que fooes un directorio que contiene enlaces simbólicos:

zip --symlinks -r foo.zip foo/

Rar equivalente:

rar a -ol foo.rar foo/

tar los almacena como está por defecto.

tar czpvf foo.tgz foo/

Tenga en cuenta que el enlace simbólico casi no ocupa espacio en el disco por sí mismo (solo un inodo). Es solo una especie de puntero en el sistema de archivos, como probablemente ya sepa.

Eduardo Ivanec
fuente
1
No puedo usar tar, pero --symlinks no funciona con zip. ¿estás seguro de que es el paquete zip predeterminado?
DucDigital
¿Qué distribución tienes? Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008).¿Puedes usar rar en su lugar? Ver ejemplo añadido.
Eduardo Ivanec
Copyright (c) 1990-2006 Info-ZIP. Todos los derechos reservados. Este es Zip 2.32 probablemente debido a esto. intentaré rar
DucDigital
1
Partiendo pelos, pero técnicamente el enlace simbólico ocupa espacio en el disco, consumiendo un inodo.
ttyS0
Eso es cierto. En realidad, por lo que leí en el pasado, eran aún más como archivos normales que contienen la ruta al archivo / directorio señalado. Ahora son solo un tipo especial de inodo si no recuerdo mal.
Eduardo Ivanec
10

En RHEL 5, tenemos

$ zip -h
Copyright (C) 1990-2005 Info-ZIP
Type 'zip "-L"' for software license.
Zip 2.31 (March 8th 2005). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
(snip)
  -y   store symbolic links as the link instead of the referenced file
nodakai
fuente
Lo mismo en OpenSUSE Leap. Así es de hecho zip -y -r foo.zip foo/.
David Faure