Estoy tratando de comprimir una carpeta en un archivo .7z. Esta carpeta contiene enlaces simbólicos a otras cosas fuera de la carpeta (tanto directorios como archivos).
Aparentemente, 7zip solo archiva el enlace en sí, que no es lo que pretendía. ¿Hay alguna manera de decirle a 7zip que quiero que archive las cosas a las que enlaza, no el enlace en sí? (Es decir, si hay un nombre de enlace simbólico foo
que apunta C:\stuff\foo
, quiero que incluya el C:\stuff\foo
directorio en el archivo en lugar de foo, no un enlace simbólico de 0 bytes).
¿Hay alguna solución razonable aparte de agregar los archivos y carpetas en cuestión? Hay alrededor de 10,000 archivos referenciados a través de enlaces simbólicos, por lo que agregarlos todos individualmente tomaría horas ... Tal vez hay un programa que crea una carpeta provisional con los archivos reales y luego los pasa a 7zip. O simplemente un archivador que maneja mejor los enlaces simbólicos.
Estoy ejecutando Windows Vista. Todos los enlaces son enlaces simbólicos (por ejemplo, creados con mklink link target
y mklink /D link target
).
EDITAR:
dir
salida de comando para un directorio de prueba más pequeño:
C:\...>dir
Volume in drive C is OS
Volume Serial Number is 0A3D-CD6E
Directory of C:\...
09/04/2010 18:12 <DIR> .
09/04/2010 18:12 <DIR> ..
09/04/2010 18:10 975 real file.txt
09/04/2010 18:11 <SYMLINK> test file.txt [..\test file.txt]
2 File(s) 975 bytes
4 Dir(s) 5,214,355,456 bytes free
La creación de un archivo 7z con los resultados de 7zip real file.txt
se incluye, pero test file.txt
se agrega como un archivo de 0 bytes, aunque el archivo vinculado a existe y es de 50 KB.
fuente
Respuestas:
No, aparentemente no (desafortunadamente). En realidad, hay un informe de error en 7zip solicitando esto: http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481 pero se abrió en agosto de 2009 y no se tocó desde: - /.
Bueno, si tiene suficiente espacio (y tiempo), puede hacer una copia de la carpeta, reemplazando los enlaces simbólicos con sus objetivos. Puede, por ejemplo, usar Robocopy y su interruptor
/sl
:Nota: Sólo para evitar confusiones, nota que la acumulación de Linux p7zip (un puerto de 7zip) también tiene un sistema binario
7z
, que hace de soporte archivar el archivo apunta un enlace simbólico a (interruptor-l
). Sin embargo, 7zip en Windows no tiene este interruptor.fuente
-l
conmutador. zip y gzip también lo hacen con sus comandos específicos.Si está utilizando Vista y superior, elimine los enlaces simbólicos y reemplácelos por enlaces mk
Tenga en cuenta que mklink es bastante potente y puede incluir enlaces a recursos compartidos de red y similares.
Como parece haber cierta confusión al respecto, permítanme aclararlo. Supongo que el OP en realidad está hablando de Junctions como se ilustra aquí http://en.wikipedia.org/wiki/NTFS_junction_point . Mklink no hace cruces . Hace verdaderos enlaces simbólicos y lo probé yo mismo y 7zip los respeta perfectamente. Además, debe ser administrador para crear enlaces simbólicos mklink.
7zip archivará GB, pero NO archivará GB2. EDITAR: En realidad, más pruebas muestran que 7zip archivará ambos directorios con la versión 4.65. Así que no tengo idea de cuál es el problema.
fuente