Manuales para la línea de comandos

Man » Manual de zip en línea - documentación detallada en línea para la página de manual de zip

🌍
zip - empaqueta y comprime (crea archivos)

SINOPSIS

zip  [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$]  [--longoption  ...]  [-b path] [-n suffixes] [-t date]
[-tt date] [archivo_zip [archivo ...]]  [-xi list]

zipcloak (ver la página de manual separada)

zipnote (ver la página de manual separada)

zipsplit (ver la página de manual separada)

Nota: El procesamiento de la línea de comandos en zip se ha modificado para admitir opciones largas y manejar todas las opciones y argumentos de manera más consistente. Algunas líneas de comandos antiguas que dependen de inconsistencias en la línea de comandos pueden dejar de funcionar.

DESCRIPCIÓN

zip es una utilidad de compresión y empaquetado de archivos para Unix, VMS, MSDOS, OS/2, Windows 9x/NT/XP,

Minix, Atari, Macintosh, Amiga y Acorn RISC OS. Es análogo a una combinación de los comandos Unix tar(1) y compress(1) y es compatible con PKZIP (PKZIP de Phil Katz para sistemas MSDOS).

Un programa complementario (unzip(1)) desempaqueta los archivos zip. Los programas zip y unzip(1) pueden trabajar con archivos creados por PKZIP (admitiendo la mayoría de las funciones de PKZIP hasta la versión 4.6) y PKZIP y PKUNZIP pueden trabajar con archivos creados por zip (con algunas excepciones, notablemente los archivos transmitidos por secuencias, pero los cambios recientes en el estándar de archivos zip pueden facilitar una mejor compatibilidad). zip la versión 3.0 es compatible con PKZIP 2.04 y también admite las extensiones Zip64 de PKZIP 4.5 que permiten que los archivos y los archivos superen el límite anterior de 2 GB (4 GB en algunos casos). zip también admite ahora la compresión bzip2 si se incluye la biblioteca bzip2 cuando se compila zip. Tenga en cuenta que PKUNZIP 1.10 no puede extraer archivos producidos por PKZIP 2.04 o zip 3.0. Debe usar PKUNZIP 2.04g o unzip 5.0p1 (o versiones posteriores) para extraerlos.

Consulte la sección de EJEMPLOS al final de esta página para ver ejemplos de algunos usos típicos de zip.

Archivos grandes y Zip64. zip utiliza automáticamente las extensiones Zip64 cuando se agregan archivos de más de 4 GB a un archivo, se actualiza un archivo que contiene entradas Zip64 (si el archivo resultante aún necesita Zip64), el tamaño del archivo excederá los 4 GB, o cuando el número de entradas en el archivo excederá los 64 K. Zip64 también se utiliza para archivos transmitidos por secuencias desde la entrada estándar, ya que el tamaño de dichos archivos no se conoce de antemano, pero se puede utilizar la opción -fz- para forzar a zip a crear archivos compatibles con PKZIP 2 (siempre que no se necesiten las extensiones Zip64). Debe utilizar un programa de descompresión compatible con PKZIP 4.5, como unzip 6.0 o posterior, para extraer archivos que utilicen las extensiones Zip64.

Además, los archivos transmitidos por secuencias, las entradas cifradas con cifrado estándar o los archivos divididos creados con la opción de pausa pueden no ser compatibles con PKZIP, ya que se utilizan descriptores de datos y PKZIP, en el momento de escribir esto, no admite descriptores de datos (pero los cambios recientes en el estándar de archivos zip publicado por PKWare ahora incluyen cierto soporte para el formato de descriptores de datos que utiliza zip).


Mac OS X. Aunque las versiones anteriores de Mac tenían su propio puerto zip, zip es compatible con Mac OS X como parte del puerto Unix y la mayoría de las funciones de Unix se aplican. Las referencias a "MacOS" a continuación se refieren generalmente a las versiones de MacOS anteriores a OS X. Se espera que el soporte para algunas funciones de Mac OS en el puerto Unix de Mac OS X, como las bifurcaciones de recursos, esté disponible en la próxima versión de zip.

Para obtener una breve ayuda sobre zip y unzip, ejecute cada uno sin especificar ningún parámetro en la línea de comandos.

USO

El programa es útil para empaquetar un conjunto de archivos para su distribución, para archivar archivos y para ahorrar espacio en el disco comprimiendo temporalmente archivos o directorios que no se utilizan.

El programa zip coloca uno o más archivos comprimidos en un único archivo zip, junto con información sobre los archivos (nombre, ruta, fecha, hora de la última modificación, protección e información de comprobación para verificar la integridad del archivo). Se puede empaquetar toda una estructura de directorios en un archivo zip con un solo comando. Las relaciones de compresión de 2:1 a 3:1 son comunes para los archivos de texto. Zip tiene un método de compresión (deflación) y también puede almacenar archivos sin compresión. (Si se agrega soporte para bzip2, zip también puede comprimir utilizando la compresión bzip2, pero dichas entradas requieren un programa de descompresión unzip relativamente moderno. Cuando se selecciona la compresión bzip2, reemplaza a la deflación como método predeterminado). Zip elige automáticamente el mejor de los dos (deflación o almacenamiento o, si se selecciona bzip2, bzip2 o almacenamiento) para cada archivo que se va a comprimir.

Formato de comando. El formato de comando básico es

zip opciones archivo ruta_entrada ruta_entrada ...

donde archivo es un archivo zip nuevo o existente y ruta_entrada es una ruta de directorio o archivo que incluye opcionalmente comodines. Cuando se proporciona el nombre de un archivo zip existente, zip reemplazará las entradas con el mismo nombre en el archivo zip (coincidiendo con los nombres relativos almacenados en el archivo) o agregará entradas para los nuevos nombres. Por ejemplo, si foo.zip existe y contiene foo/file1 y foo/file2, y el directorio foo contiene los archivos foo/file1 y foo/file3, entonces:

zip -r foo.zip foo

o, más concisamente,

zip -r foo foo

reemplazará foo/file1 en foo.zip y agregará foo/file3 a foo.zip. Después de esto, foo.zip contendrá foo/file1, foo/file2 y foo/file3, siendo foo/file2 el mismo que antes.

Por lo tanto, si antes de que se ejecute el comando zip, foo.zip tiene:

foo/file1 foo/file2

y el directorio foo tiene:

file1 file3

entonces foo.zip tendrá:

foo/file1 foo/file2 foo/file3

donde foo/file1 se reemplaza y foo/file3 es nuevo.

-@ archivo listas. Si se especifica una lista de archivos como -@ [No disponible en MacOS], zip toma la lista de archivos de entrada del flujo de entrada estándar en lugar de la línea de comandos. Por ejemplo,

zip -@ foo

almacenará los archivos listados uno por línea en la entrada estándar en foo.zip.

Bajo Unix, esta opción se puede utilizar de forma muy eficaz en conjunto con el comando find (1). Por ejemplo, para archivar todos los archivos fuente C en el directorio actual y sus subdirectorios:

find . -name "*.[ch]" -print | zip source -@

(tenga en cuenta que el patrón debe estar entre comillas para evitar que el shell lo expanda).

Entrada y salida en flujo. zip también aceptará un solo guion ("-") como nombre de archivo zip, en cuyo caso escribirá el archivo zip en la salida estándar, lo que permitirá que la salida se canalice a otro programa. Por ejemplo:

zip -r - . | dd of=/dev/nrst0 obs=16k

escribiría la salida zip directamente en una cinta con el tamaño de bloque especificado para el propósito de hacer una copia de seguridad del directorio actual.

zip también acepta un solo guion ("-") como nombre de un archivo que se va a comprimir, en cuyo caso leerá el archivo desde la entrada estándar, lo que permitirá que zip reciba entrada desde otro programa. Por ejemplo:

tar cf - . | zip backup comprimiría la salida del comando tar para el propósito de hacer una copia de seguridad del directorio actual.

Esto generalmente produce una mejor compresión que el ejemplo anterior que usa la opción -r porque zip puede aprovechar la redundancia entre archivos. La copia de seguridad se puede restaurar usando el comando

unzip -p backup | tar xfCuando no se proporciona ningún nombre de archivo zip y la salida estándar no es una terminal, zip actúa como un filtro, comprimiendo

la entrada estándar a la salida estándar. Por ejemplo:

tar cf - . | zip | dd of=/dev/nrst0 obs=16k

es equivalente a

tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k

Los archivos zip creados de esta manera se pueden extraer con el programa funzip que se proporciona en el paquete unzip, o por gunzip que se proporciona en el paquete gzip (pero algunos gunzip pueden no admitir esto si zip usó las extensiones Zip64). Por ejemplo:

dd if=/dev/nrst0 ibs=16k | funzip | tar xvfEl flujo también se puede guardar en un archivo y se puede usar unzip.

Si se habilita el soporte de Zip64 para archivos y archivos grandes y se usa zip como filtro, zip crea un archivo Zip64 que requiere un programa de descompresión compatible con PKZIP 4.5 o posterior para leerlo. Esto es para evitar ambigüedades en la estructura del archivo zip como se define en el estándar zip actual (PKWARE AppNote) donde la decisión de usar Zip64 debe tomarse antes de que se escriban los datos para la entrada, pero para un flujo, el tamaño de los datos no se conoce en ese momento. Si se sabe que los datos son más pequeños que 4 GB, se puede usar la opción -fz- para evitar el uso de Zip64, pero zip saldrá con un error si de hecho se necesitó Zip64. zip 3 y unzip 6 y versiones posteriores pueden leer archivos con entradas Zip64. Además, zip elimina las extensiones Zip64 si no son necesarias cuando se copian las entradas del archivo (vea la opción -U (--copy)).

Al dirigir la salida a otro archivo, tenga en cuenta que todas las opciones deben estar antes de la redirección incluido -x. Por ejemplo:

zip archive "*.h" "*.c" -x donotinclude.h orthis.h > tofile

Archivos zip. Al modificar un archivo zip existente, zip escribirá un archivo temporal con el nuevo contenido y solo reemplazará el archivo antiguo cuando se haya completado el proceso de creación de la nueva versión sin errores.

Si el nombre del archivo zip no contiene una extensión, se agrega la extensión .zip. Si el nombre ya contiene una extensión distinta de .zip, se mantiene la extensión existente sin cambios. Sin embargo, los archivos divididos (archivos divididos en varios archivos) requieren la extensión .zip en el último archivo dividido.

Escaneo y lectura de archivos. Cuando zip se inicia, escanea los archivos que se deben procesar (si es necesario). Si este escaneo tarda más de 5 segundos, zip mostrará un mensaje de "Escaneando archivos" y comenzará a mostrar puntos de progreso cada 2 segundos o cada cierto número de entradas procesadas, lo que ocurra antes. Si hay más de 2 segundos entre los puntos, podría indicar que encontrar cada archivo está llevando tiempo y podría significar una conexión de red lenta, por ejemplo. (En realidad, el escaneo inicial de archivos es un proceso de dos pasos en el que el escaneo de directorios es seguido por una clasificación y estos dos pasos están separados por un espacio en los puntos. Si se está actualizando un archivo existente, también aparece un espacio entre el escaneo del archivo existente y el escaneo del nuevo archivo). Los puntos de escaneo de archivos no están controlados por la opción de tamaño de punto -ds, pero los puntos se desactivan mediante la opción -q silenciosa. La opción -sf mostrar archivos se puede utilizar para escanear archivos y obtener la lista de archivos escaneados sin procesarlos realmente.

Si zip no puede leer un archivo, muestra una advertencia pero continúa. Consulte la opción -MM a continuación para obtener más información sobre cómo zip maneja los patrones que no coinciden y los archivos que no se pueden leer. Si se omitieron algunos archivos, se muestra una advertencia al final de la operación de zip, indicando cuántos archivos se leyeron y cuántos se omitieron.

Modos de comando. Zip ahora admite dos tipos distintos de modos de comando: externo e interno. Los modos externos (agregar, actualizar y actualizar) leen archivos del sistema de archivos (así como de un archivo existente) mientras que los modos internos (eliminar y copiar) operan exclusivamente en las entradas de un archivo existente.

agregar

Actualizar las entradas existentes y agregar nuevos archivos. Si el archivo no existe, créelo. Este es el modo predeterminado.

actualizar (-u)

Actualizar las entradas existentes si son más recientes en el sistema de archivos y agregar nuevos archivos. Si el archivo no existe, mostrar una advertencia y luego crear un nuevo archivo.

actualizar (-f)

Actualizar las entradas existentes de un archivo si son más recientes en el sistema de archivos. No agregar nuevos archivos al archivo.

eliminar (-d)

Seleccionar las entradas en un archivo existente y eliminarlas.

copiar (-U)

Seleccionar las entradas en un archivo existente y copiarlas a un nuevo archivo. Este nuevo modo es similar a actualizar, pero los patrones de línea de comandos seleccionan las entradas en el archivo existente en lugar de los archivos del sistema de archivos, y utiliza la opción --out para escribir el archivo resultante en un nuevo archivo en lugar de actualizar el archivo existente, dejando el archivo original sin cambios.


La nueva opción de sincronización de archivos (-FS) también se considera un nuevo modo, aunque es similar a la actualización. Este modo sincroniza el archivo con los archivos del sistema operativo, reemplazando los archivos en el archivo solo si la hora o el tamaño del archivo del sistema operativo son diferentes, agregando archivos nuevos y eliminando entradas del archivo cuando no haya un archivo coincidente. Dado que este modo puede eliminar entradas del archivo, considere hacer una copia de seguridad del archivo.

También consulte -DF para crear archivos de diferencias.

Consulte la descripción de cada opción a continuación para obtener más detalles y la sección EJEMPLOS a continuación para obtener ejemplos.

Archivos divididos. zip versión 3.0 y posteriores pueden crear archivos divididos. Un archivo dividido es un archivo zip estándar dividido en varios archivos. (Tenga en cuenta que los archivos divididos no son simplemente archivos divididos en partes, ya que los desplazamientos de las entradas ahora se basan en el inicio de cada división. Concatenar las partes invalidará estos desplazamientos, pero unzip generalmente puede manejarlo. zip generalmente se negará a procesar un archivo combinado de este tipo a menos que se use la opción de corrección -FF para corregir los desplazamientos).

Un uso de los archivos divididos es almacenar un archivo grande en varios medios extraíbles. Para un archivo dividido con 20 archivos divididos, los archivos suelen tener el nombre (reemplace ARCHIVE con el nombre de su archivo) ARCHIVE.z01, ARCHIVE.z02, ..., ARCHIVE.z19, ARCHIVE.zip. Tenga en cuenta que el último archivo es el archivo .zip. En contraste, los archivos expandidos son los archivos de disco múltiple originales que generalmente requieren discos flexibles y utilizan etiquetas de volumen para almacenar los números de disco. zip admite archivos divididos, pero no archivos expandidos, aunque existe un procedimiento para convertir archivos divididos del tamaño correcto en archivos expandidos. Lo contrario también es cierto, donde cada archivo de un archivo expandido se puede copiar en orden para crear archivos con los nombres anteriores para crear un archivo dividido.

Utilice -s para establecer el tamaño de división y crear un archivo dividido. El tamaño se indica como un número seguido opcionalmente por una de las siguientes opciones: k (kB), m (MB), g (GB) o t (TB) (el valor predeterminado es m). La opción -sp se puede utilizar para pausar zip entre divisiones para permitir cambiar los medios extraíbles, por ejemplo, pero lea las descripciones y advertencias de -s y -sp a continuación.

Aunque zip no actualiza los archivos divididos, zip proporciona la nueva opción -O (--output-file o --out) para permitir que los archivos divididos se actualicen y se guarden en un nuevo archivo. Por ejemplo,

zip inarchive.zip foo.c bar.c --out outarchive.zip

lee el archivo inarchive.zip, incluso si está dividido, agrega los archivos foo.c y bar.c y escribe el archivo resultante en outarchive.zip. Si inarchive.zip está dividido, entonces outarchive.zip tiene el valor predeterminado de

el mismo tamaño de división. Tenga en cuenta que si outarchive.zip y cualquier archivo dividido que se cree con él ya existen, estos siempre se sobrescriben según sea necesario sin previo aviso. Esto puede cambiar en el futuro.

Unicode. Aunque el estándar zip requiere almacenar las rutas en un archivo utilizando un conjunto de caracteres específico, en la práctica, los archivos zip han almacenado las rutas en los archivos en el conjunto de caracteres local. Esto crea problemas cuando un archivo se crea o se actualiza en un sistema que utiliza un conjunto de caracteres y luego se extrae en otro sistema que utiliza un conjunto de caracteres diferente. Cuando se compila con soporte de Unicode habilitado en plataformas que admiten caracteres anchos, zip ahora almacena, además del ruta local estándar para compatibilidad con versiones anteriores, la traducción UTF-8 de la ruta. Esto proporciona un conjunto de caracteres universal común para almacenar rutas que permite que estas rutas se extraigan por completo en otros sistemas que admiten Unicode y que coincidan lo más posible en sistemas que no lo hacen.


En los sistemas Win32 donde las rutas se almacenan internamente como Unicode pero se representan en el conjunto de caracteres local, es posible que algunas rutas se omitan durante un escaneo de directorio del conjunto de caracteres local. zip con soporte Unicode ahora puede leer y almacenar estas rutas. Tenga en cuenta que los sistemas Win 9x y los sistemas de archivos FAT no admiten completamente Unicode.

Tenga en cuenta que las ventanas de consola en Win32 y Unix, por ejemplo, a veces no muestran con precisión todos los caracteres debido a la forma en que cada sistema operativo cambia los conjuntos de caracteres para la visualización. Sin embargo, las herramientas de navegación de directorios deben mostrar las rutas correctas si se cargan las fuentes necesarias.

Formato de línea de comandos. Esta versión de zip tiene un procesamiento de línea de comandos actualizado y admite opciones largas.

Las opciones cortas tienen la forma

-s[-][s[-]...][value][=value][ value]

donde s es una opción corta de uno o dos caracteres. Una opción corta que acepta un valor es la última en un argumento y todo lo que le sigue se toma como el valor. Si la opción se puede negar y "-" inmediatamente sigue a la opción, la opción se niega. Las opciones cortas también se pueden dar como argumentos separados.

-s[-][value][=value][ value] -s[-][value][=value][ value] ...

En general, las opciones cortas aceptan valores ya sea como parte del mismo argumento o como el argumento siguiente. También se admite un signo = opcional. Por lo tanto

-ttmmddyyyy

y

-tt=mmddyyyy

y

-tt mmddyyyy

todo funciona. Las opciones -x e -i aceptan listas de valores y utilizan un formato ligeramente diferente descrito a continuación. Consulte las opciones -x e -i.

Las opciones largas tienen la forma

--longoption[-][=value][ value]

donde la opción comienza con --, tiene un nombre de varios caracteres, puede incluir un guión final para negar la opción (si la opción lo admite) y puede tener un valor (argumento de la opción) especificado precediéndolo con = (sin espacios). Los valores también pueden seguir el argumento. Por lo tanto

--before-date=mmddyyyy

y

--before-date mmddyyyy

ambos funcionan.

Los nombres de las opciones largas se pueden acortar al prefijo único más corto. Consulte las descripciones de las opciones a continuación para ver cuáles admiten opciones largas. Para evitar confusiones, evite abreviar una opción negable con un guión ("-") incrustado en el guión si planea negarla (el analizador consideraría un guión final, como para la opción --some-option usando --some- como la opción, como parte del nombre en lugar de un guión de negación). Esto puede cambiar para obligar a que el último guión en --somet sea de negación en el futuro.


OPCIONES

-a
--ascii
[Sistemas que utilizan EBCDIC] Traducir el archivo al formato ASCII.

-A
--adjust-sfx
Ajustar el archivo ejecutable autoextraíble. Un archivo ejecutable autoextraíble se crea anteponiendo el fragmento SFX a un archivo existente. La opción -A indica a zip que ajuste los desplazamientos de entrada almacenados en el archivo para tener en cuenta estos datos de "preámbulo".

Nota: los archivos autoextraíbles para Amiga son un caso especial. Actualmente, solo la versión de zip para Amiga es capaz de ajustar o actualizar estos sin corromperlos. Se puede usar -J para eliminar el fragmento SFX si se necesitan realizar otras actualizaciones.

-AC
--archive-clear
[WIN32] Una vez que se crea el archivo (y se prueba si se usa -T, lo cual se recomienda), borrar los bits de archivo de los archivos procesados. ADVERTENCIA: una vez que se borran los bits, se borran permanentemente. Es posible que desee utilizar la opción -sf para mostrar los archivos y almacenar la lista de archivos procesados en caso de que deba repetirse la operación de archivo. También considere usar la opción -MM para que coincidan. Asegúrese de consultar -DF como una forma posiblemente mejor de realizar copias de seguridad incrementales.

-AS
--archive-set
[WIN32] Incluir solo los archivos que tengan el bit de archivo establecido. Los directorios no se almacenan cuando se usa -AS, aunque, por defecto, las rutas de las entradas, incluidos los directorios, se almacenan como de costumbre y pueden ser utilizadas por la mayoría de los programas de descompresión para recrear los directorios.

El bit de archivo lo establece el sistema operativo cuando se modifica un archivo y, si se utiliza con -AC, -AS puede proporcionar una capacidad de copia de seguridad incremental. Sin embargo, otras aplicaciones pueden modificar el bit de archivo y es posible que no sea un indicador confiable de qué archivos han cambiado desde la última operación de archivo. Las formas alternativas de crear copias de seguridad incrementales son utilizar -t para utilizar las fechas de los archivos, aunque esto no detectará los archivos antiguos que se copien a los directorios que se están archivando, y utilizar -DF para crear un archivo diferencial.

-B
--binary
[VM/CMS y MVS] forzar que el archivo se lea como binario (el valor predeterminado es texto).

-Bn    [TANDEM] establecer las opciones de formato Edit/Enscribe con n definido como
bit 0: No agregar delimitador (Edit/Enscribe)
bit 1: Usar LF en lugar de CR/LF como delimitador (Edit/Enscribe)
bit 2: Rellenar el registro con espacios hasta la longitud máxima del registro (Enscribe)
bit 3: Eliminar los espacios finales (Enscribe)
bit 8: Forzar una lectura grande de 30K (Expandir) para archivos no estructurados

-b ruta
--temp-path ruta

Utilizar la ruta especificada para el archivo zip temporal. Por ejemplo:

zip -b /tmp stuff *

colocará el archivo zip temporal en el directorio /tmp, copiando stuff.zip al directorio actual una vez que termine. Esta opción es útil cuando se actualiza un archivo existente y el sistema de archivos que contiene este archivo antiguo no tiene suficiente espacio para contener tanto el archivo antiguo como el nuevo al mismo tiempo. También puede ser útil cuando se utiliza la transmisión en algunos casos para evitar la necesidad de descriptores de datos. Tenga en cuenta que el uso de esta opción puede requerir que zip dedique tiempo adicional a copiar el archivo al sistema de archivos de destino una vez que termine.

-c
--entry-comments
Añade comentarios de una sola línea para cada archivo. Las operaciones de archivo (agregar, actualizar) se realizan primero,
y luego se le pide al usuario que proporcione un comentario de una sola línea para cada archivo. Introduzca el comentario
seguido de retorno de carro, o simplemente presione retorno de carro para no agregar ningún comentario.

-C
--preserve-case
[VMS] Conserva las mayúsculas y minúsculas en VMS. Negar esta opción (-C-) convierte todo a minúsculas.

-C2
--preserve-case-2
[VMS] Conserva las mayúsculas y minúsculas en ODS2 en VMS. Negar esta opción (-C2-) convierte todo a minúsculas.

-C5
--preserve-case-5
[VMS] Conserva las mayúsculas y minúsculas en ODS5 en VMS. Negar esta opción (-C5-) convierte todo a minúsculas.

-d
--delete
Elimina entradas de un archivo zip. Por ejemplo:

zip -d foo foo/tom/junk foo/harry/\* \*.o

eliminará la entrada foo/tom/junk, todos los archivos que comienzan con foo/harry/ y todos
los archivos que terminan con .o (en cualquier ruta). Tenga en cuenta que la expansión de nombres de archivo del shell se ha
inhibido con barras diagonales inversas, para que zip pueda ver los asteriscos, lo que permite que zip coincida
con el contenido del archivo zip en lugar del contenido del directorio actual. (Las
barras diagonales inversas no se utilizan en plataformas basadas en MSDOS). También se pueden usar comillas para escapar los asteriscos, como en

zip -d foo foo/tom/junk "foo/harry/*" "*.o"

No escapar los asteriscos en un sistema donde el shell expande los comodines podría
provocar que los asteriscos se conviertan en una lista de archivos en el directorio actual y que esa lista se
utilice para eliminar entradas del archivo.

En MSDOS, -d distingue entre mayúsculas y minúsculas cuando coincide con los nombres en el archivo zip. Esto requiere
que los nombres de archivo se ingresen en mayúsculas si fueron comprimidos por PKZIP en un sistema MSDOS.
(Consideramos hacer esto sin distinción entre mayúsculas y minúsculas en los sistemas donde las rutas no distinguen entre mayúsculas y minúsculas,
pero es posible que el archivo provenga de un sistema donde las mayúsculas y minúsculas son importantes y
el archivo podría incluir Bar y bar como archivos separados en el archivo). Pero consulte la nueva opción
-ic para ignorar las mayúsculas y minúsculas en el archivo.

-db
--display-bytes
Muestra los conteos de bytes en curso, mostrando los bytes comprimidos y los bytes restantes.

-dc
--display-counts
Muestra el conteo en curso de las entradas comprimidas y las entradas restantes.

-dd
--display-dots
Muestra puntos mientras se comprime cada entrada (excepto en los puertos que tienen su propio indicador de progreso). Consulte -ds a continuación para configurar el tamaño del punto. El valor predeterminado es un punto cada 10 MB del archivo de entrada
procesado. La opción -v también muestra puntos (anteriormente a una velocidad mucho mayor que esta, pero ahora -v también tiene como valor predeterminado 10 MB) y esta velocidad también se controla mediante -ds.

-df
--datafork
[MacOS] Incluye solo el "data-fork" de los archivos comprimidos en el archivo. Ideal para exportar archivos
a sistemas operativos extranjeros. Los "resource-forks" se ignorarán por completo.

-dg
--display-globaldots
Muestra puntos de progreso para el archivo en lugar de para cada archivo. El comando

zip -qdgds 10m

desactivará la mayoría de las salidas excepto puntos cada 10 MB.

-ds tamaño
--dot-size tamaño

Establece la cantidad de archivo de entrada procesado para cada punto mostrado. Consulte -dd para habilitar la visualización de puntos. Establecer esta opción implica -dd. El tamaño está en el formato nm donde n es un número y m es un multiplicador. Actualmente, m puede ser k (KB), m (MB), g (GB) o t (TB), por lo que si n es 100 y m es k, el tamaño sería 100k, que son 100 KB. El valor predeterminado es 10 MB.

La opción -v también muestra puntos y ahora también tiene como valor predeterminado 10 MB. Esta tasa también está controlada por esta opción. Un tamaño de 0 desactiva los puntos.

Esta opción no controla los puntos del mensaje "Escaneando archivos" mientras zip busca los archivos de entrada. El tamaño de punto para eso es fijo en 2 segundos o un número fijo de entradas, lo que sea más largo.

-du
--display-usize

Muestra el tamaño descomprimido de cada entrada.

-dv
--display-volume

Muestra el número de volumen (disco) desde el que se está leyendo cada entrada, si se lee un archivo existente, y al que se está escribiendo.

-D
--no-dir-entries

No cree entradas en el archivo zip para los directorios. Las entradas de directorio se crean de forma predeterminada para que se puedan guardar sus atributos en el archivo zip. La variable de entorno ZIPOPT se puede utilizar para cambiar las opciones predeterminadas. Por ejemplo, en Unix con sh:

ZIPOPT="-D"; export ZIPOPT

(La variable ZIPOPT se puede utilizar para cualquier opción, incluidos -i y -x utilizando un nuevo formato de opción detallado a continuación, y puede incluir varias opciones). La opción -D es una abreviatura de -x "*/" pero esta última no se podía establecer como predeterminada en la variable de entorno ZIPOPT, ya que el contenido de ZIPOPT se inserta cerca del principio de la línea de comandos y la lista de archivos debe terminar al final de la línea.

Esta versión de zip permite las opciones -x e -i en ZIPOPT si se utiliza el formato

-x archivo archivo ... @

donde @ (un argumento que es solo @) termina la lista.

-DF
--difference-archive

Cree un archivo que contenga todos los archivos nuevos y modificados desde que se creó el archivo original. Para que esto funcione, la lista de archivos de entrada y el directorio actual deben ser los mismos que durante la operación zip original.

Por ejemplo, si el archivo existente se creó utilizando

zip -r foofull .

desde el directorio bar, entonces el comando

zip -r foofull . -DF --out foonew

también desde el directorio bar crea el archivo foonew con solo los archivos que no están en foofull y los archivos cuyo tamaño o hora de archivo no coinciden con los de foofull.

Tenga en cuenta que la variable de entorno de zona horaria TZ debe establecerse de acuerdo con la zona horaria local para que esta opción funcione correctamente. Un cambio en la zona horaria desde que se creó el archivo original podría dar como resultado que no coincidan los tiempos y que se incluyan todos los archivos.

Una posible forma de hacer una copia de seguridad de un directorio podría ser crear un archivo normal del contenido del directorio como una copia de seguridad completa, luego usar esta opción para crear copias de seguridad incrementales.

-e
--encrypt

Cifre el contenido del archivo zip utilizando una contraseña que se ingresa en la terminal en respuesta a una solicitud (esto no se mostrará; si la salida estándar no es una tty, zip saldrá con un error). La solicitud de contraseña se repite para evitar que el usuario cometa errores al escribir.


-E
--longnames
[OS/2] Utilice el atributo extendido .LONGNAME (si se encuentra) como nombre de archivo.

-f
--freshen

Reemplace (actualice) una entrada existente en el archivo zip solo si se ha modificado más recientemente que la versión que ya está en el archivo zip; a diferencia de la opción de actualización (-u), esto no agregará archivos que no estén ya en el archivo zip. Por ejemplo:

zip -f foo

Este comando debe ejecutarse desde el mismo directorio desde el que se ejecutó el comando zip original, ya que las rutas almacenadas en los archivos zip siempre son relativas.

Tenga en cuenta que la variable de entorno de zona horaria TZ debe establecerse de acuerdo con la zona horaria local para que las opciones -f, -u y -o funcionen correctamente.

Las razones detrás de esto son algo sutiles, pero tienen que ver con las diferencias entre los tiempos de archivo de formato Unix (siempre en GMT) y la mayoría de los otros sistemas operativos (siempre en hora local) y la necesidad de comparar los dos. Un valor típico de TZ es MET-1MEST'' (hora de Europa Central con ajuste automático para elhorario de verano'' o horario de verano).

El formato es TTThhDDD, donde TTT es la zona horaria como MET, hh es la diferencia entre GMT y la hora local como -1 arriba, y DDD es la zona horaria cuando está en vigor el horario de verano. Omita DDD si no hay horario de verano. Para la zona horaria del este de los Estados Unidos EST5EDT.

-F
--fix
-FF
--fixfix

Arregle el archivo zip. La opción -F se puede utilizar si faltan algunas partes del archivo, pero requiere un directorio central razonablemente intacto. El archivo de entrada se escanea como de costumbre, pero zip ignorará algunos problemas. El archivo resultante debe ser válido, pero cualquier entrada inconsistente se dejará fuera.

Cuando se duplica, como en -FF, el archivo se escanea desde el principio y zip busca firmas especiales para identificar los límites entre los miembros del archivo. El -F único es más confiable si el archivo no está demasiado dañado, así que intente esta opción primero.

Si el archivo está demasiado dañado o el final ha sido truncado, debe usar -FF. Esta es una diferencia con zip 2.32, donde la opción -F puede leer un archivo truncado. La opción -F ahora arregla de manera más confiable los archivos con daños menores y la opción -FF es necesaria para arreglar los archivos donde -F podría haber sido suficiente antes.

Ninguna de las opciones recuperará los archivos que se hayan transferido incorrectamente en modo ascii en lugar de binario. Después de la reparación, la opción -t de unzip puede mostrar que algunos archivos tienen un CRC incorrecto. Estos archivos no se pueden recuperar; puede eliminarlos del archivo utilizando la opción -d de zip.

Tenga en cuenta que -FF puede tener problemas para arreglar los archivos que incluyen un archivo zip incrustado que se almacenó (sin compresión) en el archivo y, según el daño, puede encontrar las entradas en el archivo incrustado en lugar del archivo en sí. Intente -F primero, ya que no tiene este problema.


El formato de los comandos de reparación ha cambiado. Por ejemplo, para reparar el archivo dañado foo.zip,

zip -F foo --out foofix

intenta leer las entradas normalmente, copiando las entradas correctas al nuevo archivo foofix.zip.

Si esto no funciona, como cuando el archivo está truncado, o si algunas entradas que sabe que están en el archivo se omiten, entonces pruebe

zip -FF foo --out foofixfix

y compare el archivo resultante con el archivo creado por -F. La opción -FF puede crear
un archivo inconsistente. Dependiendo de lo que esté dañado, puede utilizar la opción -F para
reparar ese archivo.

Un archivo dividido con archivos divididos faltantes se puede reparar usando -F si tiene el último
dividido del archivo (el archivo .zip). Si este archivo falta, debe utilizar -FF para reparar
el archivo, lo que le pedirá los archivos divididos que tiene.

Actualmente, las opciones de reparación no pueden recuperar entradas que tienen una suma de comprobación incorrecta o están dañadas.

-FI
--fifo [Unix] Normalmente, zip omite la lectura de cualquier FIFO (tubería con nombre) que encuentre, ya que zip puede bloquearse si el FIFO no está siendo alimentado. Esta opción indica a zip que lea el
contenido de cualquier FIFO que encuentre.

-FS
--filesync
Sincronice el contenido de un archivo con los archivos del SO. Normalmente, cuando se actualiza un archivo, se agregan archivos nuevos y los archivos modificados se actualizan, pero los archivos que ya no existen en el SO no se eliminan del archivo. Esta opción habilita un nuevo modo que
comprueba las entradas en el archivo con el sistema de archivos. Si la hora del archivo y el tamaño del archivo de
la entrada coinciden con los del archivo del SO, la entrada se copia del archivo antiguo en lugar de
leerse del sistema de archivos y comprimirse. Si el archivo del SO ha cambiado, la entrada se
lee y comprime como de costumbre. Si la entrada en el archivo no coincide con un archivo en
el SO, la entrada se elimina. Habilitar esta opción debería crear archivos que sean los mismos
que los archivos nuevos, pero dado que las entradas existentes se copian en lugar de comprimirse, la actualización de un
archivo existente con -FS puede ser mucho más rápida que la creación de un nuevo archivo. También considere
usar -u para actualizar un archivo.

Para que esta opción funcione, el archivo debe actualizarse desde el mismo directorio en el que se creó para que las rutas relativas coincidan. Si se copian pocos archivos del archivo antiguo, puede ser más rápido crear un nuevo archivo.

Tenga en cuenta que la variable de entorno de zona horaria TZ debe establecerse de acuerdo con la zona horaria local para que esta opción funcione correctamente. Un cambio en la zona horaria desde que se creó el archivo original podría dar como resultado que no coincidan los tiempos y se vuelva a comprimir todos los archivos.

Esta opción elimina archivos del archivo. Si necesita conservar el archivo original, haga una copia del archivo primero o use la opción --out para enviar el archivo actualizado a un archivo nuevo. Aunque puede ser más lento, crear un nuevo archivo con un nuevo nombre de archivo es más seguro, evita las discrepancias entre las rutas del archivo y del SO, y es preferible.


-g
--grow
Añade (adjunta) los archivos especificados al archivo zip, en lugar de crear uno nuevo. Si esta operación falla, zip intenta restaurar el archivo a su estado original. Si la restauración falla, el archivo podría corromperse. Esta opción se ignora si no existe un archivo existente o si al menos un miembro del archivo debe actualizarse o eliminarse.

-h
-?
--help
Muestra la información de ayuda de zip (esto también aparece si zip se ejecuta sin argumentos).

-h2
--more-help
Muestra ayuda extendida, que incluye más información sobre el formato de la línea de comandos, la coincidencia de patrones y opciones más complejas.

-i files
--include files
Incluye solo los archivos especificados, como en:

zip -r foo . -i \*.c

lo que incluirá solo los archivos que terminan en .c en el directorio actual y sus subdirectorios. (Nota para usuarios de PKZIP: el comando equivalente es

pkzip -rP foo *.c

PKZIP no permite la recursión en directorios distintos del actual). La barra invertida evita la sustitución de nombres de archivo por parte del shell, de modo que la coincidencia de nombres la realiza zip en todos los niveles de directorio. [Esto es para Unix y otros sistemas donde \ escapa el siguiente carácter. Para otros sistemas donde el shell no procesa * no use \ y lo anterior es

zip -r foo . -i *.c

Los ejemplos son para Unix a menos que se especifique lo contrario.] Por lo tanto, para incluir dir, un directorio directamente debajo del directorio actual, use

zip -r foo . -i dir/\*

o

zip -r foo . -i "dir/*"

para hacer coincidir rutas como dir/a y dir/b/file.c [en puertos sin expansión de comodines en el shell como MSDOS y Windows

zip -r foo . -i dir/*

se usa]. Tenga en cuenta que actualmente la barra diagonal final es necesaria para los directorios (como en

zip -r foo . -i dir/

para incluir el directorio dir).

La forma de opción larga del primer ejemplo es

zip -r foo . --include \*.c

y hace lo mismo que la forma de opción corta.

Aunque la sintaxis de comando solía requerir -i al final de la línea de comandos, esta versión realmente permite -i (o --include) en cualquier lugar. La lista de archivos termina en el siguiente argumento que comienza con -, el final de la línea de comandos o el terminador de lista @ (un argumento que es solo @). Por lo tanto, lo anterior se puede dar como

zip -i \*.c @ -r foo .

por ejemplo. Debe haber un espacio entre la opción y el primer archivo de una lista. Para solo un archivo, puede usar la forma de valor único

zip -i\*.c -r foo .

(sin espacio entre la opción y el valor) o

zip --include=\*.c -r foo .

como ejemplos adicionales. Las formas de valor único no se recomiendan porque pueden ser confusas y, en particular, el formato -ifile puede causar problemas si la primera letra de file se combina con i para formar una opción de dos letras que comienza con i. Use -sc para ver cómo se analizará su línea de comandos.

También es posible:

zip -r foo . -_

lo que incluirá solo los archivos en el directorio actual y sus subdirectorios que coincidan con los patrones en el archivo include.lst.

Los archivos que coinciden con los patrones -i y -x corresponden a rutas internas del archivo. Consulte -R para obtener más información sobre los patrones.

-I
--no-image
[Acorn RISC OS] No analizar archivos de imagen. Cuando se utiliza, zip no considerará los archivos de imagen (por ejemplo, particiones DOS o archivos Spark cuando SparkFS está cargado) como directorios, sino que los almacenará como archivos individuales.

Por ejemplo, si tiene SparkFS cargado, comprimir un archivo Spark resultará en un archivo zip que contiene un directorio (y su contenido), mientras que usar la opción 'I' resultará en un archivo zip que contiene un archivo Spark. Obviamente, el segundo caso también se obtendrá (sin la opción 'I') si SparkFS no está cargado.

-ic
--ignore-case
[VMS, WIN32] Ignorar mayúsculas y minúsculas al hacer coincidir entradas de archivo. Esta opción solo está disponible en sistemas donde las mayúsculas y minúsculas de los archivos se ignoran. En los sistemas con sistemas de archivos que no distinguen entre mayúsculas y minúsculas, normalmente se ignoran las mayúsculas y minúsculas al hacer coincidir archivos en el sistema de archivos, pero no se ignoran para -f (freshen), -d (delete), -U (copy) y modos similares al hacer coincidir con las entradas del archivo (actualmente -f ignora mayúsculas y minúsculas en VMS) porque las entradas del archivo pueden provenir de sistemas donde las mayúsculas y minúsculas son importantes y pueden existir nombres que son iguales excepto por las mayúsculas y minúsculas en un archivo. La opción -ic hace que todas las coincidencias no distingan entre mayúsculas y minúsculas. Esto puede dar como resultado que varias entradas de archivo coincidan con un patrón de línea de comandos.

-j
--junk-paths

Almacenar solo el nombre del archivo guardado (eliminar la ruta) y no almacenar los nombres de los directorios. De forma predeterminada, zip almacenará la ruta completa (relativa al directorio actual).

-jj
--absolute-path
[MacOS] registrar Fullpath (+ Volname). Se almacenará la ruta completa, incluido el volumen. De forma predeterminada, se almacenará la ruta relativa.

-J
--junk-sfx

Eliminar cualquier dato prepuesto (por ejemplo, un stub SFX) del archivo.

-k
--DOS-names

Intentar convertir los nombres y las rutas para que se ajusten a MSDOS, almacenar solo el atributo MSDOS (solo el atributo de escritura de usuario de Unix) y marcar la entrada como creada en MSDOS (incluso si no lo fue); para la compatibilidad con PKUNZIP en MSDOS que no puede manejar ciertos nombres, como los que tienen dos puntos.

-l
--to-crlf

Traducir el carácter de fin de línea Unix LF al convenio MSDOS CR LF. Esta opción no debe utilizarse en archivos binarios. Esta opción se puede utilizar en Unix si el archivo zip está destinado a PKUNZIP en MSDOS. Si los archivos de entrada ya contienen CR LF, esta opción agrega un CR adicional. Esto es para garantizar que unzip -a en Unix obtenga una copia exacta del archivo original, para deshacer el efecto de zip -l. Consulte -ll para ver cómo se manejan los archivos binarios.

-la
--log-append

Agregar al archivo de registro existente. El valor predeterminado es sobrescribir.

-lf logfilepath
--logfile-path logfilepath

Abrir un archivo de registro en la ruta especificada. De forma predeterminada, cualquier archivo existente en esa ubicación se sobrescribe, pero la opción -la dará como resultado que se abra un archivo existente y se agregue la nueva información del registro a la información existente. Solo las advertencias y los errores se escriben en el archivo de registro a menos que también se dé la opción -li, en cuyo caso también se escribe toda la información en el archivo de registro.

-li
--log-info

Incluye mensajes informativos, como los nombres de los archivos que se están comprimiendo, en el registro. Por defecto, solo se incluyen la línea de comandos, las advertencias y los errores, y el estado final.

-ll
--from-crlf

Convierte el final de línea MSDOS CR LF en Unix LF. Esta opción no debe utilizarse en archivos binarios. Esta opción se puede utilizar en MSDOS si el archivo zip está destinado a ser descomprimido en Unix. Si el archivo se convierte y más tarde se determina que es binario, se emite una advertencia y es probable que el archivo esté dañado. En esta versión, si -ll detecta un archivo binario en el primer búfer leído de un archivo, zip ahora emite una advertencia y omite la conversión del final de línea del archivo. Este control parece detectar todos los archivos binarios probados, pero el control original permanece y si un archivo convertido se determina más tarde como binario, la advertencia sigue emitiéndose. Ahora se está utilizando un nuevo algoritmo para la detección de binarios que debería permitir la conversión del final de línea de archivos de texto en UTF-8 y codificaciones similares.

-L
--license

Muestra la licencia de zip.

-m
--move

Mueve los archivos especificados al archivo zip; en realidad, esto elimina los directorios/archivos de destino después de crear el archivo zip especificado. Si un directorio se vuelve vacío después de la eliminación de los archivos, el directorio también se elimina. No se realizan eliminaciones hasta que zip haya creado el archivo sin errores. Esto es útil para ahorrar espacio en disco, pero es potencialmente peligroso, por lo que se recomienda utilizarlo en combinación con -T para probar el archivo antes de eliminar todos los archivos de entrada.

-MM
--must-match

Todos los patrones de entrada deben coincidir con al menos un archivo y todos los archivos de entrada encontrados deben ser legibles. Normalmente, cuando un patrón de entrada no coincide con un archivo, se emite la advertencia "nombre no coincidente" y cuando se ha encontrado un archivo de entrada pero más tarde falta o no es legible, se emite una advertencia de "faltante o no legible". En cualquier caso, zip continúa creando el archivo, omitiendo los archivos nuevos faltantes o no legibles y los archivos que ya están en el archivo permanecen sin cambios. Después de que se crea el archivo, si alguno de los archivos no fue legible, zip devuelve el código de error OPEN (18 en la mayoría de los sistemas) en lugar del código de retorno normal de éxito (0 en la mayoría de los sistemas). Con -MM establecido, zip sale tan pronto como un patrón de entrada no coincide (cada vez que se emitiría la advertencia "nombre no coincidente") o cuando un archivo de entrada no es legible. En cualquier caso, zip sale con un error OPEN y no se crea ningún archivo.

Esta opción es útil cuando se va a comprimir una lista conocida de archivos, de modo que cualquier archivo faltante o no legible dará como resultado un error. Es menos útil cuando se utiliza con comodines, pero zip seguirá saliendo con un error si algún patrón de entrada no coincide con al menos un archivo y si alguno de los archivos coincidentes no es legible. Si desea crear el archivo de todos modos y solo necesita saber si se omitieron archivos, no utilice -MM y simplemente verifique el código de retorno. Además, -lf podría ser útil.


-n sufijos
--suffixes sufijos

No intente comprimir archivos con los sufijos especificados. Estos archivos simplemente se almacenan (compresión del 0 %) en el archivo zip de salida, para que zip no pierda tiempo intentando comprimirlos. Los sufijos se separan mediante dos puntos o puntos y comas. Por ejemplo:

zip -rn .Z:.zip:.tiff:.gif:.snd foo foo

copiará todo desde foo a foo.zip, pero almacenará cualquier archivo que termine en .Z, .zip, .tiff, .gif o .snd sin intentar comprimirlo (los archivos de imagen y sonido a menudo tienen sus propios métodos de compresión especializados). Por defecto, zip no comprime los archivos con las extensiones de la lista .Z:.zip:.zoo:.arc:.lzh:.arj. Estos archivos se almacenan directamente en el archivo de salida. La variable de entorno ZIPOPT se puede utilizar para cambiar las opciones predeterminadas. Por ejemplo, en Unix con csh:

setenv ZIPOPT "-n .gif:.zip"

Para intentar la compresión de todos los archivos, utilice:

zip -n : foo

La opción de máxima compresión -9 también intenta comprimir todos los archivos independientemente de la extensión.

En los sistemas Acorn RISC OS, los sufijos son en realidad tipos de archivo (formato de 3 dígitos hexadecimales). Por defecto, zip no comprime los archivos con los tipos de archivo de la lista DDC:D96:68E (es decir, Archivos, archivos CFS y archivos PackDir).

-nw
--no-wild

No realice el procesamiento interno de comodines (el procesamiento de comodines de la shell se sigue realizando mediante la shell a menos que los argumentos estén escapados). Útil si se está leyendo una lista de rutas y no se desea ninguna sustitución de comodines.

-N
--notes
[Amiga, MacOS] Guarde las notas de archivo de Amiga o MacOS como comentarios del archivo zip. Se pueden restaurar utilizando la opción -N de unzip. Si también se utiliza -c, se le pedirá que introduzca comentarios solo para aquellos archivos que no tengan notas.

-o
--latest-time

Establezca la hora de "última modificación" del archivo zip en la última (más antigua) hora de "última modificación" que se encuentre entre las entradas del archivo zip. Esto se puede utilizar sin ninguna otra operación, si se desea. Por ejemplo:

zip -o foo

cambiará la hora de la última modificación de foo.zip a la hora más reciente de las entradas en foo.zip.

-O archivo-de-salida
--output-file archivo-de-salida

Procese los cambios del archivo de la manera habitual, pero en lugar de actualizar el archivo existente, emita el nuevo archivo en archivo-de-salida. Útil para actualizar un archivo sin cambiar el archivo existente y el archivo de entrada debe ser un archivo diferente al archivo de salida.

Esta opción se puede utilizar para crear archivos divididos actualizados. También se puede utilizar con -U para copiar entradas de un archivo existente a un nuevo archivo. Consulte la sección EJEMPLOS a continuación.


Otro uso es convertir archivos ZIP de un tamaño de división a otro. Por ejemplo, para convertir un archivo con divisiones de 700 MB para CD a uno con divisiones de 2 GB para DVD, se puede usar:

zip -s 2g cd-split.zip --out dvd-split.zip

que usa el modo de copia. Consulte -U a continuación. También:

zip -s 0 split.zip --out unsplit.zip

convertirá un archivo dividido en un archivo único.

El modo de copia convertirá las entradas de flujo (usando descriptores de datos y que deberían ser compatibles con la mayoría de los programas de descompresión) en entradas normales (que deberían ser compatibles con todos los programas de descompresión), excepto si se usó el cifrado estándar. Para los archivos con entradas cifradas, zipcloak descifrará las entradas y las convertirá en entradas normales.

-p
--paths

Incluir rutas de archivo relativas como parte de los nombres de los archivos almacenados en el archivo. Este es el valor predeterminado. La opción -j elimina las rutas y solo almacena los nombres de los archivos.

-P password
--password password

Usar la contraseña para cifrar las entradas del archivo ZIP (si las hay). ¡ESTO NO ES SEGURO! Muchos sistemas operativos multiusuario proporcionan formas para que cualquier usuario vea la línea de comandos actual de cualquier otro usuario; incluso en sistemas independientes siempre existe la amenaza de que alguien mire por encima del hombro. Almacenar la contraseña de texto plano como parte de una línea de comandos en un script automatizado es aún peor. Siempre que sea posible, use la solicitud interactiva sin eco para ingresar contraseñas. (Y donde la seguridad es realmente importante, use un cifrado fuerte como Pretty Good Privacy en lugar del cifrado estándar relativamente débil proporcionado por las utilidades de archivos ZIP).

-q
--quiet

Modo silencioso; eliminar los mensajes informativos y las indicaciones de comentarios. (Útil, por ejemplo, en scripts de shell y tareas en segundo plano).

-Qn
--Q-flag n
[QDOS] almacenar información sobre el archivo en el encabezado del archivo con n definido como
bit 0: No agregar encabezados para ningún archivo
bit 1: Agregar encabezados para todos los archivos
bit 2: No esperar a que se presione una tecla de forma interactiva al salir

-r
--recurse-paths

Recorrer la estructura de directorios de forma recursiva; por ejemplo:

zip -r foo.zip foo

o de forma más concisa

zip -r foo foo

En este caso, todos los archivos y directorios de foo se guardan en un archivo ZIP llamado foo.zip, incluidos los archivos con nombres que comienzan con ".", ya que la recursión no usa el mecanismo de sustitución de nombres de archivo del shell. Si desea incluir solo un subconjunto específico de los archivos en el directorio foo y sus subdirectorios, use la opción -i para especificar el patrón de archivos que se incluirán. No debe usar -r con el nombre ".*", ya que eso coincide con ".." lo que intentará comprimir el directorio padre (probablemente no sea lo que se pretendía).

Se permiten múltiples directorios de origen como en

zip -r foo foo1 foo2

que primero comprime foo1 y luego foo2, recorriendo cada directorio.

Tenga en cuenta que, si bien los comodines para -r se resuelven normalmente al recorrer los directorios en el sistema de archivos, cualquier comodín -R, -x y -i se aplica a los nombres de ruta de archivo internos una vez que se escanean los directorios. Para que los comodines se apliquen a los archivos en los subdirectorios cuando se realiza la recursión en Unix y sistemas similares, donde el shell realiza la sustitución de comodines, ya sea escape todos los comodines o coloque todos los argumentos con comodines entre comillas. Esto permite que zip vea los comodines y coincida con los archivos en los subdirectorios utilizándolos a medida que realiza la recursión.


-R
--recurse-patterns

Recorre la estructura de directorios de forma recursiva, comenzando en el directorio actual; por ejemplo:

zip -R foo "*.c"

En este caso, todos los archivos que coincidan con *.c en el árbol que comienza en el directorio actual se almacenarán en un archivo zip llamado foo.zip. Tenga en cuenta que *.c coincidirá con file.c, a/file.c y a/b/.c. Se pueden listar más de un patrón como argumentos separados. Tenga en cuenta para los usuarios de PKZIP: el comando equivalente es

pkzip -rP foo *.c

Los patrones son rutas de archivo relativas según aparecen en el archivo o como serán después del empaquetado, y pueden tener comodines opcionales. Por ejemplo, dado que el directorio actual es foo y debajo de él hay directorios foo1 y foo2, y en foo1 está el archivo bar.c:

zip -R foo/*

empaquetará foo, foo/foo1, foo/foo1/bar.c y foo/foo2.

zip -R */bar.c

empaquetará foo/foo1/bar.c. Consulte la nota de -r sobre el escape de los comodines.

-RE
--regex
[WIN32] Antes de zip 3.0, la coincidencia de listas de expresiones regulares estaba habilitada de forma predeterminada en las plataformas de Windows. Debido a la confusión resultante de la necesidad de escapar de "[" y "]" en
los nombres, ahora está desactivada de forma predeterminada para Windows, por lo que "[" y "]" son simplemente caracteres normales en
los nombres. Esta opción vuelve a habilitar la coincidencia de [].

-s splitsize
--split-size splitsize

Habilita la creación de un archivo dividido y establece el tamaño de división. Un archivo dividido es un archivo que puede dividirse en varios archivos. A medida que se crea el archivo, si el tamaño del archivo llega al tamaño de división especificado, esa división se cierra y se abre la siguiente división. En general, todas las divisiones, excepto la última, tendrán el tamaño de división y la última tendrá lo que quede. Si todo el archivo es más pequeño que el tamaño de división, se crea un archivo de un solo archivo.

Los archivos divididos se almacenan en archivos numerados. Por ejemplo, si el archivo de salida se llama archivo y se requieren tres divisiones, el archivo resultante estará en los tres archivos archivo.z01, archivo.z02 y archivo.zip. No cambie la numeración de estos archivos o el archivo no será legible, ya que estos se utilizan para determinar el orden en que se leen las divisiones.

El tamaño de división es un número seguido opcionalmente por un multiplicador. Actualmente, el número debe ser un entero. El multiplicador puede ser actualmente uno de k (kilobytes), m (megabytes), g (gigabytes) o t (terabytes). Como 64k es el tamaño de división mínimo, los números sin multiplicadores predeterminan en megabytes. Por ejemplo, para crear un archivo dividido llamado foo con el contenido del directorio bar con divisiones de 670 MB que podrían ser útiles para grabarse en CD, el comando:

zip -s 670m -r foo bar

podría usarse.

Actualmente, las divisiones antiguas de un archivo dividido no se excluyen de un nuevo archivo, pero pueden excluirse específicamente. Si es posible, mantenga los archivos de entrada y salida fuera de la ruta que se está comprimiendo al crear archivos divididos.


Usar -s sin -sp como se muestra anteriormente crea todos los archivos divididos donde se está escribiendo foo, en este caso, el directorio actual. Este modo de división actualiza los archivos divididos a medida que se crea el archivo, lo que requiere que todos los archivos divididos permanezcan grabables, pero crea archivos divididos que pueden ser leídos por cualquier unzip que admita archivos divididos. Consulte -sp a continuación para habilitar el modo de pausa de división, que permite escribir los archivos directamente en un medio extraíble.

La opción -sv se puede utilizar para habilitar la división detallada y proporcionar detalles sobre cómo se está realizando la división. La opción -sb se puede utilizar para hacer sonar la campana cuando zip hace una pausa para el siguiente destino de división.

Los archivos divididos no se pueden actualizar, pero consulte la opción -O (--out) para obtener información sobre cómo se puede actualizar un archivo dividido a medida que se copia en un nuevo archivo. Un archivo dividido también se puede convertir en un archivo de un solo archivo utilizando un tamaño de división de 0 o negando la opción -s:

zip -s 0 split.zip --out single.zip

También consulte -U (--copy) para obtener más información sobre el uso del modo de copia.

-sb
--split-bell
Si se está dividiendo y se está utilizando el modo de pausa de división, haga sonar la campana cuando `zip` haga una pausa para cada destino de división.

-sc
--show-command
Muestra la línea de comandos al iniciar `zip` y luego sale. El nuevo analizador de comandos permuta los argumentos, colocando todas las opciones y cualquier valor asociado con ellas antes de cualquier argumento que no sea una opción. Esto permite que una opción aparezca en cualquier lugar de la línea de comandos, siempre y cuando cualquier valor que vaya con la opción vaya con ella. Esta opción muestra la línea de comandos tal como la ve `zip`, incluidos los argumentos del entorno, como los de la variable `ZIPOPT`. Cuando sea posible, las opciones que aparecen más adelante en la línea de comandos pueden anular las opciones que aparecen antes en la línea de comandos.

-sf
--show-files
Muestra los archivos que se van a operar y luego sale. Por ejemplo, si se está creando un nuevo archivo, esto mostrará la lista de los archivos que se agregarán. Si la opción se niega, `-sf-`, la salida se realizará solo en un archivo de registro abierto. No se recomienda mostrar en pantalla para listas grandes.

-so
--show-options
Muestra todas las opciones disponibles admitidas por `zip` según lo compilado en el sistema actual. A medida que este comando lee la tabla de opciones, debe incluir todas las opciones. Cada línea incluye la opción corta (si se define), la opción larga (si se define), el formato de cualquier valor que vaya con la opción, si la opción se puede negar y una pequeña descripción. El formato del valor puede ser sin valor, valor requerido, valor opcional, valor de un solo carácter, valor numérico o una lista de valores. La salida de esta opción no pretende mostrar cómo usar ninguna opción, sino solo mostrar qué opciones están disponibles.

-sp
--split-pause
Si la división está habilitada con `-s`, habilite el modo de pausa de división. Esto crea archivos divididos como lo hace `-s`, pero se utiliza la escritura en flujo, por lo que cada archivo dividido se puede cerrar tan pronto como se escribe y `zip` hará una pausa entre cada división para permitir cambiar el destino de la división o el medio.

Aunque este modo de división permite escribir las divisiones directamente en medios extraíbles, utiliza un formato de archivo de flujo que puede que no sea legible para algunos programas de descompresión. Antes de confiar en las divisiones creadas con -sp, pruebe una división de archivo con el programa de descompresión que vaya a utilizar.

Para convertir un archivo de división de flujo (creado con -sp) a un archivo estándar, consulte la opción --out.

-su
--show-unicode

Como -sf, pero también muestra la versión Unicode de la ruta si existe.

-sU
--show-just-unicode

Como -sf, pero solo muestra la versión Unicode de la ruta si existe; de lo contrario, muestra la versión estándar de la ruta.

-sv
--split-verbose

Habilita varios mensajes detallados durante la división, mostrando cómo se está realizando la división.

-S
--system-hidden
[MSDOS, OS/2, WIN32 y ATARI] Incluye archivos ocultos y de sistema.
[MacOS] Incluye archivos invisibles del Finder, que se ignoran de otro modo.

-t mmddaaaa
--from-date mmddaaaa

No opere en archivos modificados antes de la fecha especificada, donde mm es el mes (00-12), dd es el día del mes (01-31) y aaaa es el año. También se acepta el formato de fecha ISO 8601 aaaa-mm-dd. Por ejemplo:

zip -rt 12071991 infamy foo

zip -rt 1991-12-07 infamy foo

añadirá todos los archivos en foo y sus subdirectorios que se modificaron por última vez el 7 de diciembre de 1991 o después, al archivo zip infamy.zip.

-tt mmddaaaa
--before-date mmddaaaa

No opere en archivos modificados después o en la fecha especificada, donde mm es el mes (00-12), dd es el día del mes (01-31) y aaaa es el año. También se acepta el formato de fecha ISO 8601 aaaa-mm-dd. Por ejemplo:

zip -rtt 11301995 infamy foo

zip -rtt 1995-11-30 infamy foo

añadirá todos los archivos en foo y sus subdirectorios que se modificaron por última vez antes del 30 de noviembre de 1995, al archivo zip infamy.zip.

-T
--test

Prueba la integridad del nuevo archivo zip. Si la comprobación falla, el archivo zip antiguo no se modifica y (con la opción -m) no se eliminan los archivos de entrada.

-TT cmd
--unzip-command cmd

Utilice el comando cmd en lugar de 'unzip -tqq' para probar un archivo cuando se utiliza la opción -T. En Unix, para utilizar una copia de unzip en el directorio actual en lugar del sistema unzip estándar, podría utilizar:

zip archive file1 file2 -T -TT "./unzip -tqq"

En cmd, {} se reemplaza por el nombre del archivo temporal; de lo contrario, el nombre del archivo se añade al final del comando. Se comprueba el código de retorno para comprobar si la operación se realizó correctamente (0 en Unix).

-u
--update

Reemplace (actualice) una entrada existente en el archivo zip solo si se ha modificado más recientemente que la versión que ya está en el archivo zip. Por ejemplo:

zip -u stuff *

añadirá cualquier archivo nuevo en el directorio actual y actualizará cualquier archivo que se haya modificado desde que se creó o modificó por última vez el archivo zip stuff.zip (tenga en cuenta que zip no intentará empaquetar stuff.zip en sí mismo cuando haga esto).

Tenga en cuenta que la opción -u sin argumentos de archivo de entrada actúa como la opción -f (freshen).


-U
--copy-entries

Copia entradas de un archivo a otro. Requiere la opción --out para especificar un archivo de salida diferente al archivo de entrada. El modo de copia es el inverso de -d delete. Cuando se utiliza delete con --out, las entradas seleccionadas se eliminan del archivo y todas las demás entradas se copian al nuevo archivo, mientras que el modo de copia selecciona los archivos que se incluirán en el nuevo archivo. A diferencia de -u update, los patrones de entrada en la línea de comandos se comparan solo con las entradas del archivo y no con los archivos del sistema de archivos. Por ejemplo,

zip inarchive "*.c" --copy --out outarchive

copia las entradas con nombres que terminan en .c de inarchive a outarchive. El comodín debe escaparse en algunos sistemas para evitar que el shell sustituya los nombres de los archivos del sistema de archivos, que pueden no ser relevantes para las entradas del archivo.

Si no aparecen archivos de entrada en la línea de comandos y se utiliza --out, se asume el modo de copia:

zip inarchive --out outarchive

Esto es útil para cambiar el tamaño de los archivos divididos, por ejemplo. El cifrado y descifrado de entradas no están admitidos mediante el modo de copia. Utilice zipcloak para ello.

-UN v
--unicode v

Determina qué debe hacer zip con los nombres de archivo Unicode. zip 3.0, además de la ruta de archivo estándar, ahora incluye la traducción UTF-8 de la ruta si la ruta de entrada no es completamente ASCII de 7 bits. Cuando falta la ruta Unicode en una entrada, zip vuelve a la ruta de archivo estándar. El problema de utilizar la ruta estándar es que esta ruta está en el conjunto de caracteres local del zip que creó la entrada, que puede contener caracteres que no son válidos en el conjunto de caracteres que utiliza el programa de descompresión. Cuando zip está leyendo un archivo, si una entrada también tiene una ruta Unicode, zip ahora utiliza por defecto la ruta Unicode para recrear la ruta estándar utilizando el conjunto de caracteres local actual.

Esta opción se puede utilizar para determinar qué debe hacer zip con esta ruta si hay una discrepancia entre la ruta estándar almacenada y la ruta UTF-8 almacenada (lo que puede ocurrir si la ruta estándar se ha actualizado). En todos los casos, si hay una discrepancia, se supone que la ruta estándar es la más reciente y zip la utiliza. Los valores para v son

q - salir si las rutas no coinciden

w - advertir, continuar con la ruta estándar

i - ignorar, continuar con la ruta estándar

n - no Unicode, no utilizar rutas Unicode

El valor predeterminado es advertir y continuar.

Los caracteres que no son válidos en el conjunto de caracteres actual se escapan como #Uxxxx y #Lxxxxxx, donde x es un carácter ASCII para un dígito hexadecimal. El primero se utiliza si un número de carácter de 16 bits es suficiente para representar el carácter Unicode y el segundo si el carácter necesita más de 16 bits para representar su código de carácter Unicode. Establecer -UN en

e - escapar

como en

zip archive -sU -UN=e

fuerza a zip a escapar todos los caracteres que no son ASCII imprimibles de 7 bits.

Normalmente, zip almacena UTF-8 directamente en el campo de ruta estándar en los sistemas donde UTF-8 es el conjunto de caracteres actual y almacena UTF-8 en los nuevos campos adicionales en caso contrario. La opción


u - UTF-8

como en

archivo zip directorio -r -UN=UTF8

fuerza a zip a almacenar UTF-8 como nativo en el archivo. Tenga en cuenta que almacenar UTF-8 directamente es el valor predeterminado en los sistemas Unix que lo admiten. Esta opción podría ser útil en los sistemas Windows donde la ruta con escape es demasiado grande para ser una ruta válida y la versión UTF-8 de la ruta es más pequeña, pero UTF-8 nativo no es compatible con versiones anteriores en los sistemas Windows.

-v
--verbose
Modo detallado o imprime información de diagnóstico de la versión.

Normalmente, cuando se aplica a operaciones reales, esta opción habilita la visualización de un indicador de progreso durante la compresión (vea -dd para obtener más información sobre los puntos) y solicita información de diagnóstico detallada sobre las peculiaridades de la estructura del archivo zip.

Sin embargo, cuando -v es el único argumento de la línea de comandos, se imprime una pantalla de diagnóstico en su lugar. Esto ahora debería funcionar incluso si stdout se redirige a un archivo, lo que permite guardar fácilmente la información para enviarla con informes de errores a Info-ZIP. La pantalla de versión proporciona la cabecera de la pantalla de ayuda con el nombre del programa, la versión y la fecha de lanzamiento, algunos enlaces a las páginas de inicio y distribución de Info-ZIP, y muestra información sobre el entorno de destino (tipo y versión del compilador, versión del sistema operativo, fecha de compilación y las características opcionales habilitadas que se utilizaron para crear el ejecutable zip).

-V
--VMS-portable
[VMS] Guarda los atributos de archivo de VMS. (Los archivos se truncan en EOF). Cuando se desempaqueta un archivo -V en un sistema que no sea VMS, algunos tipos de archivo (en particular, los archivos de texto Stream_LF y los archivos binarios puros como fixed-512) deben extraerse intactos. Los archivos indexados y los tipos de archivo con tamaños de registro incrustados (en particular, los tipos de registro de longitud variable) probablemente se verán como corruptos en otros lugares.

-VV
--VMS-specific
[VMS] Guarda los atributos de archivo de VMS y todos los bloques asignados en un archivo, incluido cualquier dato más allá de EOF. Útil para mover archivos malformados entre sistemas VMS. Cuando se desempaqueta un archivo -VV en un sistema que no sea VMS, casi todos los archivos aparecerán corruptos.

-w
--VMS-versions
[VMS] Agrega el número de versión de los archivos al nombre, incluidos varios versiones de los archivos. El valor predeterminado es usar solo la versión más reciente de un archivo especificado.

-ww
--VMS-dot-versions
[VMS] Agrega el número de versión de los archivos al nombre, incluidos varios versiones de los archivos, utilizando el formato .nnn. El valor predeterminado es usar solo la versión más reciente de un archivo especificado.

-ws
--wild-stop-dirs
Los comodines solo coinciden a nivel de directorio. Normalmente, zip maneja las rutas como cadenas y, dado las rutas

/foo/bar/dir/file1.c

/foo/bar/file2.c

un patrón de entrada como

/foo/bar/*

normalmente coincidiría con ambas rutas, el * coincidiendo con dir/file1.c y file2.c. Tenga en cuenta que en el primer caso se cruzó un límite de directorio (/) en la coincidencia. Con -ws no se incluirán límites de directorio en la coincidencia, lo que hará que los comodines sean locales para un nivel de directorio específico. Por lo tanto, con -ws habilitado, solo coincidiría la segunda ruta.

Cuando se usa -ws, use ** para coincidir a través de los límites del directorio, como lo hace * normalmente.

-x archivos
--exclude archivos

Excluya explícitamente los archivos especificados, por ejemplo:

zip -r foo foo -x \*.o

lo que incluirá el contenido de foo en foo.zip mientras excluye todos los archivos que terminan en .o. La barra invertida evita la sustitución de nombres de archivo de la shell, para que la coincidencia de nombres se realice en zip en todos los niveles del directorio.

También es posible:

zip -r foo foo -_

lo que incluirá el contenido de foo en foo.zip mientras excluye todos los archivos que coincidan con los patrones en el archivo exclude.lst.

Las formas largas de las opciones anteriores son

zip -r foo foo --exclude \*.o

y

zip -r foo foo --exclude @exclude.lst

Se pueden especificar varios patrones, por ejemplo:

zip -r foo foo -x \*.o \*.c

Si no hay espacio entre -x y el patrón, se asume que solo hay un valor (sin lista):

zip -r foo foo -x\*.o

Consulte -i para obtener más información sobre incluir y excluir.

-X
--no-extra

No guarde atributos de archivo adicionales (Atributos Extendidos en OS/2, uid/gid y horas de archivo en Unix). El formato zip utiliza campos adicionales para incluir información adicional para cada entrada. Algunos campos adicionales son específicos de sistemas particulares, mientras que otros son aplicables a todos los sistemas. Normalmente, cuando zip lee entradas de un archivo existente, lee los campos adicionales que conoce, elimina el resto y agrega los campos adicionales aplicables a ese sistema. Con -X, zip elimina todos los campos antiguos e incluye solo los campos adicionales de Unicode y Zip64 (actualmente, estos dos campos adicionales no se pueden desactivar).

Al negar esta opción, -X-, se incluyen todos los campos adicionales predeterminados, pero también se copian todos los campos adicionales no reconocidos.

-y
--symlinks

Para UNIX y VMS (V8.3 y versiones posteriores), almacene los enlaces simbólicos como tales en el archivo zip, en lugar de comprimir y almacenar el archivo al que hace referencia el enlace. Esto puede evitar que se incluyan varias copias de archivos en el archivo mientras zip recorre los árboles de directorios y accede a los archivos directamente y a través de los enlaces.

-z
--archive-comment

Solicite un comentario de varias líneas para todo el archivo zip. El comentario termina con una línea que contiene solo un punto o una condición de fin de archivo (^D en Unix, ^Z en MSDOS, OS/2 y VMS). El comentario se puede tomar de un archivo:

zip -z foo < foowhat

-Z cm
--compression-method cm

Establezca el método de compresión predeterminado. Actualmente, los principales métodos admitidos por zip son store y deflate. El método de compresión se puede establecer en:

store: establecer el método de compresión en store obliga a zip a almacenar las entradas sin compresión. Esto generalmente es más rápido que comprimir las entradas, pero no da como resultado ningún ahorro de espacio. Esto es lo mismo que usar -0 (nivel de compresión cero).

deflate: este es el método predeterminado para zip. Si zip determina que almacenar es mejor que la desinflación, la entrada se almacenará en su lugar.

bzip2: si se compila el soporte de bzip2, este método de compresión también estará disponible. Solo algunos descompresores modernos admiten actualmente el método de compresión bzip2, por lo que pruebe el descompresor que utilizará antes de depender de los archivos que utilizan este método de compresión (método de compresión 12).

Por ejemplo, para añadir bar.c al archivo foo usando la compresión bzip2:

zip -Z bzip2 foo bar.c

El método de compresión se puede abreviar:

zip -Zb foo bar.c

-#
(-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
Regula la velocidad de compresión usando el dígito \# especificado, donde -0 indica que no se realice compresión (almacena todos los archivos), -1 indica la velocidad de compresión más rápida (menos compresión)
y -9 indica la velocidad de compresión más lenta (compresión óptima, ignora la lista de sufijos). El nivel de compresión predeterminado es -6.

Aunque todavía está en desarrollo, la intención es que esta configuración controle la velocidad de compresión
para todos los métodos de compresión. Actualmente, solo la desinflación se controla.

-!
--use-privileges
[WIN32] Utiliza los privilegios (si se otorgan) para obtener todos los aspectos de la seguridad de WinNT.

-@
--names-stdin
Toma la lista de archivos de entrada desde la entrada estándar. Solo un nombre de archivo por línea.

-$
--volume-label
[MSDOS, OS/2, WIN32] Incluye la etiqueta de volumen del disco que contiene el primer archivo que se va a
comprimir. Si solo desea incluir la etiqueta de volumen o forzar una unidad específica,
utilice el nombre de la unidad como primer nombre de archivo, como en:

zip -$ foo a: c:bar

EJEMPLOS

El ejemplo más simple:

zip stuff *

crea el archivo stuff.zip (asumiendo que no existe) y coloca todos los archivos en el directorio actual en él, en forma comprimida (el sufijo .zip se añade automáticamente, a menos que el nombre del archivo ya contenga un punto; esto permite la especificación explícita de otros sufijos).

Debido a la forma en que el shell en Unix realiza la sustitución de nombres de archivo, los archivos que comienzan con "." no se incluyen; para incluir también estos:

zip stuff .* *

Incluso esto no incluirá ningún subdirectorio del directorio actual.

Para comprimir todo un directorio, el comando:

zip -r foo foo

crea el archivo foo.zip, que contiene todos los archivos y directorios en el directorio foo que
se encuentra dentro del directorio actual.

Es posible que desee crear un archivo zip que contenga los archivos en foo, sin registrar el nombre del directorio, foo. Puede utilizar la opción -j para omitir las rutas, como en:

zip -j foo foo/*

Si tiene poco espacio en disco, es posible que no tenga suficiente espacio para almacenar tanto el directorio original como el archivo zip comprimido correspondiente. En este caso, puede crear el archivo en pasos utilizando la opción -m. Si foo contiene los subdirectorios tom, dick y harry, puede:

zip -rm foo foo/tom
zip -rm foo foo/dick
zip -rm foo foo/harry

donde el primer comando crea foo.zip, y los dos siguientes lo añaden. Al finalizar cada
comando zip, el último archivo creado se elimina, lo que libera espacio para que el siguiente comando zip funcione.

Utilice -s para establecer el tamaño de división y crear un archivo dividido. El tamaño se indica como un número seguido opcionalmente por uno de k (kB), m (MB), g (GB) o t (TB). El comando


zip -s 2g -r split.zip foo

crea un archivo dividido del directorio foo con divisiones de no más de 2 GB cada una. Si foo contenía 5 GB de contenido y el contenido se almacenaba en el archivo dividido sin compresión (para simplificar este ejemplo), esto crearía tres divisiones: split.z01 de 2 GB, split.z02 de 2 GB y split.zip de poco más de 1 GB.

La opción -sp se puede utilizar para pausar zip entre divisiones para permitir el cambio de medios extraíbles, por ejemplo, pero lea las descripciones y advertencias de -s y -sp a continuación.

Aunque zip no actualiza los archivos divididos, zip proporciona la nueva opción -O (--output-file) para permitir que los archivos divididos se actualicen y se guarden en un nuevo archivo. Por ejemplo:

zip inarchive.zip foo.c bar.c --out outarchive.zip

lee el archivo inarchive.zip, incluso si está dividido, agrega los archivos foo.c y bar.c y escribe el archivo resultante en outarchive.zip. Si inarchive.zip está dividido, entonces outarchive.zip tiene por defecto el mismo tamaño de división. Tenga en cuenta que outarchive.zip y cualquier archivo dividido que se cree con él siempre se sobrescribirán sin previo aviso. Esto puede cambiar en el futuro.

COINCIDENCIA DE PATRONES

Esta sección solo se aplica a Unix. Esté atento a las próximas actualizaciones sobre las operaciones de MSDOS y VMS. Sin embargo, los caracteres comodín especiales * y [] que se muestran a continuación se aplican al menos también a MSDOS.

Los shells de Unix (sh, csh, bash y otros) normalmente realizan la sustitución de nombres de archivo (también conocida como "globbing") en los argumentos del comando. Generalmente, los caracteres especiales son:

?      coincide con cualquier carácter individual

*      coincide con cualquier número de caracteres (incluido ninguno)

[]     coincide con cualquier carácter en el rango indicado dentro de los corchetes (ejemplo: [a-f], [0-9]).

Esta forma de coincidencia de comodines permite a un usuario especificar una lista de caracteres entre corchetes y, si alguno de los caracteres coincide, la expresión coincide. Por ejemplo:

zip archive "*.[hc]"

archivar todos los archivos en el directorio actual que terminan en .h o .c.

Se admiten rangos de caracteres:

zip archive "[a-f]*"

agregaría al archivo todos los archivos que comienzan con "a" hasta "f".

También se admite la negación, donde cualquier carácter en esa posición que no esté en la lista coincide. La negación se admite agregando ! o ^ al principio de la lista:

zip archive "*.[!o]"

coincide con los archivos que no terminan en ".o".

En WIN32, la coincidencia de [] debe habilitarse con la opción -RE para evitar la confusión que han causado los nombres con [ o ].

Cuando se encuentran estos caracteres (sin que se escapen con una barra diagonal invertida o comillas), el shell buscará los archivos relativos a la ruta actual que coincidan con el patrón y reemplazará el argumento con una lista de los nombres que coincidan.

El programa zip puede realizar la misma coincidencia en los nombres que están en el archivo zip que se está modificando o, en el caso de las opciones -x (excluir) o -i (incluir), en la lista de archivos que se van a operar, utilizando barras diagonales invertidas o comillas para indicarle al shell que no realice la expansión de nombres. En general, cuando zip encuentra un nombre en la lista de archivos, primero lo busca en el sistema de archivos. Si lo encuentra, lo agrega a la lista de archivos que se van a realizar. Si no lo encuentra, busca el nombre en el archivo zip que se está modificando (si existe), utilizando los caracteres de coincidencia de patrones descritos anteriormente, si están presentes. Para cada coincidencia, agregará ese nombre a la lista de archivos que se procesarán, a menos que este nombre coincida con uno de los nombres dados con la opción -x o no coincida con ninguno de los nombres dados con la opción -i.


El patrón de coincidencia incluye la ruta, por lo que patrones como `\*.o` coinciden con nombres que terminan en ".o", sin importar cuál sea el prefijo de la ruta. Tenga en cuenta que la barra invertida debe preceder a cada carácter especial (es decir, `?*[]`), o todo el argumento debe estar encerrado entre comillas dobles ("").

En general, use barras invertidas o comillas dobles para las rutas que tienen comodines para que zip realice la coincidencia de patrones de rutas y siempre para las rutas y cadenas que tienen espacios o comodines para -i, -x, -R, -d y -U y en cualquier lugar donde zip necesite procesar los comodines.

ENTORNO

Las siguientes variables de entorno se leen y se utilizan en zip según lo descrito.

ZIPOPT
contiene opciones predeterminadas que se utilizarán al ejecutar zip. El contenido de esta variable de entorno se agregará a la línea de comandos inmediatamente después del comando zip.

ZIP
[No en RISC OS y VMS] consulte ZIPOPT

Zip$Options
[RISC OS] consulte ZIPOPT

Zip$Exts
[RISC OS] contiene extensiones separadas por ":" que harán que los nombres de archivo nativos con una de las extensiones especificadas se agreguen al archivo zip con el nombre base y la extensión intercambiados.

ZIP_OPTS
[VMS] consulte ZIPOPT

VER TAMBIÉN

compress(1), shar(1), tar(1), unzip(1), gzip(1)

DIAGNÓSTICOS

El estado de salida (o nivel de error) se aproxima a los códigos de salida definidos por PKWARE y adopta los siguientes valores, excepto en VMS:

0 normal; no se detectaron errores ni advertencias.

2 final inesperado del archivo zip.

3 se detectó un error genérico en el formato del archivo zip. Es posible que el procesamiento se haya completado correctamente de todos modos; algunos archivos zip dañados creados por otros archivadores tienen soluciones sencillas.

4 zip no pudo asignar memoria para uno o más búferes durante la inicialización del programa.

5 se detectó un error grave en el formato del archivo zip. Es probable que el procesamiento haya fallado inmediatamente.

6 la entrada es demasiado grande para ser procesada (como archivos de entrada mayores de 2 GB cuando no se utiliza Zip64 o se intenta leer un archivo existente que es demasiado grande) o la entrada es demasiado grande para dividirse con zipsplit

7 formato de comentario no válido

8 zip -T falló o se quedó sin memoria

9 el usuario abortó prematuramente zip con control-C (o similar)

10 zip encontró un error al utilizar un archivo temporal

11 error de lectura o búsqueda

12    zip no tiene nada que ver

13    archivo zip faltante o vacío

14    error al escribir en un archivo

15    zip no pudo crear un archivo para escribir

16    parámetros de línea de comandos incorrectos

18    zip no pudo abrir un archivo especificado para leer

19    zip se compiló con opciones no compatibles en este sistema

VMS interpreta los valores de retorno estándar de Unix (o PC) como cosas más alarmantes, por lo que zip asigna estos valores a códigos de estado de estilo VMS. En general, zip establece Facility = 1955 (0x07A3), Code = 2 * Unix_status y una Severidad apropiada (según se especifica en ziperr.h). Se incluyen más detalles en la documentación específica de VMS. Consulte [.vms]NOTES.TXT y [.vms]vms_msg_gen.c.

ERRORES

zip 3.0 no es compatible con PKUNZIP 1.10. Use zip 1.1 para producir archivos zip que puedan ser extraídos por PKUNZIP 1.10.

Los archivos zip producidos por zip 3.0 no deben ser actualizados por zip 1.1 o PKZIP 1.10, si contienen miembros encriptados o si se han producido en una tubería o en un dispositivo no de acceso aleatorio. Las versiones anteriores de zip o PKZIP crearían un archivo con un formato incorrecto. Las versiones anteriores pueden listar el contenido del archivo zip pero no pueden extraerlo de todos modos (debido al nuevo algoritmo de compresión). Si no utiliza la encriptación y utiliza archivos de disco regulares, no tiene que preocuparse por este problema.

En VMS, no todos los formatos de archivo extraños se tratan correctamente. Solo se espera que los archivos zip en formato stream-LF funcionen con zip. Otros se pueden convertir utilizando el programa BILF de Rahul Dhesi. Esta versión de zip maneja internamente algunas de las conversiones. Al utilizar Kermit para transferir archivos zip de VMS a MSDOS, escriba "set file type block" en VMS. Al transferir de MSDOS a VMS, escriba "set file type fixed" en VMS. En ambos casos, escriba "set file type binary" en MSDOS.

En algunas versiones anteriores de VMS, zip puede bloquearse para especificaciones de archivo que utilizan la sintaxis DECnet foo::*.

En OS/2, zip no puede coincidir con algunos nombres, como aquellos que incluyen un signo de exclamación o un signo de almohadilla. Este es un error en el propio OS/2: los 32 bits de DosFindFirst/Next no encuentran tales nombres. Otros programas, como GNU tar, también se ven afectados por este error.

En OS/2, la cantidad de Atributos Extendidos mostrada por DIR es (por compatibilidad) la cantidad devuelta por la versión de 16 bits de DosQueryPathInfo(). De lo contrario, OS/2 1.3 y 2.0 informarían tamaños de EA diferentes al listar un archivo. Sin embargo, la disposición de la estructura devuelta por DosQueryPathInfo() de 32 bits es un poco diferente, utiliza bytes de relleno adicionales y punteros de enlace (es una lista enlazada) para tener todos los campos en límites de 4 bytes para la portabilidad a futuras versiones de OS/2. Por lo tanto, el valor informado por zip (que utiliza este formato de 32 bits) difiere del informado por DIR. zip almacena el formato de 32 bits para la portabilidad, incluso la versión de 16 bits compilada con MS-C que se ejecuta en OS/2 1.3, por lo que incluso esta muestra el tamaño de modo de 32 bits.

AUTORES

Copyright (C) 1997-2008 Info-ZIP.

Actualmente distribuido bajo la licencia Info-ZIP.


Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly, Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush y Paul Kienitz.

Copyright original:

Se concede permiso a cualquier individuo o institución para usar, copiar o redistribuir este software siempre y cuando se incluyan todos los archivos originales, que no se venda con fines de lucro y que se conserve este aviso de copyright.

AL IGUAL QUE CUALQUIER OTRA COSA QUE ES GRATUITA, ZIP Y SUS UTILIDADES ASOCIADAS SE PROPORCIONAN TAL CUAL Y SIN NINGUNA GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA. EN NINGÚN CASO, LOS TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE LOS DAÑOS QUE RESULTEN DEL USO DE ESTE SOFTWARE.

Envíe informes de errores y comentarios a través de la página web: www.info-zip.org. Para los informes de errores, incluya la versión de zip (vea zip -h), las opciones de compilación utilizadas (vea zip -v), la máquina y el sistema operativo en uso y la mayor cantidad de información adicional posible.

AGRADECIMIENTOS

Gracias a R. P. Byrne por su programa Shrink.Pas, que inspiró este proyecto y del que se "robó" el algoritmo de compresión; a Phil Katz por poner en el dominio público el formato de archivo zip, el formato de compresión y la extensión de nombre de archivo .ZIP, y por aceptar cambios menores en el formato de archivo; a Steve Burg por aclarar el formato deflate; a Haruhiko Okumura y Leonid Broukhis por proporcionar algunas ideas útiles para el algoritmo de compresión; a Keith Petersen, Rich Wales, Hunter Goatley y Mark Adler por proporcionar una lista de correo y un sitio FTP para que lo utilice el grupo Info-ZIP; y, lo más importante, al propio grupo Info-ZIP (enumerado en el archivo infozip.who) sin cuyos incansables esfuerzos de prueba y corrección de errores no habría sido posible crear un zip portátil. Finalmente, debemos agradecer (o culpar) al primer moderador de Info-ZIP, David Kirschbaum, por meternos en este lío. La página del manual fue reescrita para Unix por R. P. C. Rodgers y actualizada por E. Gordon para zip 3.0.