Linux / Comando unzip: revisar un ZIP y extraerlo sin sobrescribir archivos

unzip verifica la lista de archivos en un archivo ZIP y extrae los archivos. Comprobar los nombres de los miembros y el destino antes de extraer puede reducir la sobrescritura de archivos existentes o la creación de rutas inesperadas.

Por defecto, se descomprime en el directorio actual. Puede especificar el directorio de destino con -d, verificar la lista con -l y comprobar errores en los datos comprimidos con -t. -n omite archivos existentes, y -o sobrescribe sin preguntar, por lo que se debe tener especial cuidado.

Sintaxis básica

unzip [opciones] archivo.zip [-d directorio_destino]

Los ejemplos utilizan opciones de Info-ZIP UnZip, incluidas -Z -1 para listar nombres. Compruebe man unzip en el sistema actual, ya que otras implementaciones pueden ofrecer opciones distintas.

Ejemplos de uso

Ver lista de archivos comprimidos

Revise la ruta y el número de archivos antes de extraer.

unzip -l project.zip

Extraer en un directorio de destino vacío

Use un ZIP real en lugar de project.zip y elija un directorio de destino vacío que no contenga datos previos. mkdir -p restore no garantiza que restore esté vacío: compruébelo antes o seleccione otro nombre nuevo. Los ejemplos de bundle.zip ilustran otro archivo; la lista real depende de su contenido.

mkdir -p restore
unzip project.zip -d restore/

Omitir archivos existentes

Use -n cuando necesite mantener archivos con el mismo nombre.

unzip -n project.zip -d restore/

Verificar la ruta y la lista antes de descomprimir

unzip -Z -1 muestra solo los nombres de los archivos dentro del ZIP línea por línea sin descomprimirlo. Para ZIP desconocidos, primero verifique la lista y la ruta.

unzip -Z -1 bundle.zip

Ejemplo de salida:

docs/readme.txt
images/logo.png

Para la extracción real, es más seguro especificar un directorio separado como unzip bundle.zip -d directorio_destino. Verifique que los nombres dentro del archivo comprimido no entren en conflicto con rutas inesperadas o archivos existentes, y no ejecute archivos de fuentes desconocidas inmediatamente después de extraerlos. unzip -t prueba la extracción de los datos y sus comprobaciones de integridad, sin guardar los archivos.

Opciones y formatos principales

Opción o formato Descripción
-l Enumera los nombres y tamaños de los archivos dentro del ZIP.
-t Examina los datos comprimidos sin extraer los archivos.
-d directorio Especifica el directorio de destino para la extracción.
-n No sobrescribe archivos existentes.
-o Sobrescribe archivos existentes sin confirmación.

Precauciones al usar

No extraiga archivos ZIP de fuentes no confiables con privilegios de administrador y primero revise la lista en un directorio aislado. Verifique las rutas dentro del archivo, los enlaces simbólicos y el espacio libre en disco, y evite la sobrescritura automática -o. La verificación del archivo comprimido -t no garantiza la seguridad del contenido de los archivos.

Preguntas frecuentes

¿Cómo extraer un ZIP sin afectar los archivos existentes?

Lo más claro es especificar un directorio vacío separado. Si necesita extraerlo en un directorio existente, omita archivos con el mismo nombre usando -n.

Documentación oficial

Puede consultar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de unzip.