Comando zip de Linux



comando zip

La Código Postal El programa se utiliza para empaquetar y comprimir archivos.



Descripción

Código Postal es una compresión y empaquetado de archivos utilidad por Unix , VMS, MSDOS , LOS 2 , Ventanas 9 veces / P.EJ / XP , Minix, Atari , Macintosh, Amiga y Acorn RISC USTED . Es análogo a una combinación de comandos de Unix. alquitrán y comprimir y es compatible con PKZIP.

Un programa complementario separado, abrir la cremallera , desempaqueta y descomprime Código Postal archivo. La Código Postal y abrir la cremallera Los programas pueden trabajar con archivos producidos por PKZIP (que admiten la mayoría de las funciones de PKZIP hasta la versión 4.6 de PKZIP), y PKZIP y PKUNZIP pueden trabajar con archivos producidos por Código Postal (con algunas excepciones).



Código Postal es compatible con macOS X, y en ese sistema operativo, la mayoría de las funciones de Unix son las mismas.

Uso

Código Postal es útil para empaquetar un conjunto de archivos para su distribución, para archivar archivos y para ahorrar espacio en el disco comprimiendo temporalmente los archivos no utilizados o directorios .



La Código Postal programa pone uno o más archivos comprimidos en un solo Código Postal archivo, junto con información sobre los archivos (nombre, ruta, fecha, hora de la última modificación, protección e información de verificación para verificar la integridad del archivo). Se puede empaquetar una estructura de directorio completa en un Código Postal archivar con un solo comando. Las relaciones de compresión de 2: 1 a 3: 1 son comunes para archivos de texto. Código Postal tiene un método de compresión deflación ) y también puede almacenar archivos sin compresión. (Si bzip2 se agrega soporte, Código Postal también puede comprimir usando bzip2 compresión, pero tales entradas requieren un razonablemente moderno abrir la cremallera descomprimir. Cuándo bzip2 está seleccionada la compresión, reemplaza la deflación como método predeterminado). Código Postal elige automáticamente el mejor de los dos ( deflación o Tienda o si bzip2 está seleccionado, bzip2 o Tienda ) para cada archivo a comprimir.

Formato de comando

El formato de comando básico es:

|_+_|

...dónde archivo es un archivo zip nuevo o existente y camino es un directorio o ruta de archivo que opcionalmente incluye comodines. Cuando se le da el nombre de un archivo zip existente, Código Postal reemplazará entradas con nombres idénticos en el archivo zip (que coincidan con los nombres relativos almacenados en el archivo) o agregará entradas para nombres nuevos. 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 , luego:

|_+_|

o más concisamente:

|_+_|

... reemplazará foo / file1 en foo.zip y añadir foo / file3 a foo.zip . Después de este, foo.zip contiene foo / file1 , foo / file2 , y foo / file3 , con foo / file2 sin cambios desde antes.

Así que si antes del Código Postal se ejecuta el comando foo.zip posee:

|_+_|

y el directorio foo tiene:

|_+_|

luego foo.zip tendrá:

|_+_|

...dónde foo / file1 es reemplazado y foo / file3 es nuevo.

Listas de archivos

Si una lista de archivos se especifica como [correo electrónico protegido] , Código Postal toma la lista de archivos de entrada de entrada estándar en lugar de desde la línea de comandos. Por ejemplo,

|_+_|

... almacenará los archivos enumerados, uno por línea en la entrada estándar, en el archivo foo.zip .

En Unix, esta opción se puede utilizar con un efecto potente junto con el encontrar mando. Por ejemplo, para archivar todos los C fuente archivos en el directorio actual y sus subdirectorios:

|_+_|

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

Streaming de entrada y salida. Código Postal también aceptará un solo guión (' - ') como el Código Postal nombre del archivo, en cuyo caso escribirá el archivo zip en la salida estándar, lo que permitirá que la salida se envíe a otro programa. Por ejemplo:

|_+_|

... escribiría la salida zip directamente en una cinta con el tamaño de bloque especificado con el fin de realizar una copia de seguridad del directorio actual.

Código Postal también acepta un solo guión (' - ') como el nombre de un archivo a comprimir, en cuyo caso leerá el archivo desde la entrada estándar, lo que permite Código Postal para recibir información de otro programa. Por ejemplo:

|_+_|

... comprimiría la salida del alquitrán comando con el propósito de hacer una copia de seguridad del directorio actual. Esto generalmente produce una mejor compresión que el ejemplo anterior usando el -r opción porque Código Postal puede aprovechar la redundancia entre archivos. La copia de seguridad se puede restaurar usando el comando:

|_+_|

Cuando no Código Postal se proporciona el nombre del archivo y stdout no es una terminal, Código Postal actúa como un filtro, comprimiendo la entrada estándar a la salida estándar. Por ejemplo,

|_+_|

...es equivalente a

|_+_|

Código Postal Los archivos creados de esta manera se pueden extraer con el programa. funzip que se proporciona en el abrir la cremallera paquete, o por gunzip que se proporciona en el gzip paquete (pero algunas instalaciones de gunzip puede que no sea compatible con esto si Código Postal usó las extensiones Zip64). Por ejemplo:

|_+_|

La secuencia también se puede guardar en un archivo y abrir la cremallera usó.

Si la compatibilidad con Zip64 para archivos y archivos grandes está habilitada y Código Postal se utiliza como filtro, Código Postal crea un archivo Zip64 que requiere PKZIP 4.5 o posterior compatible abrir la cremallera para leer el archivo. Para evitar agravios en el Código Postal estructura de archivo 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 una secuencia, el tamaño de los datos no se conoce en ese momento. Si se sabe que los datos son inferiores a 4 GB, la opción -fz- se puede utilizar para evitar el uso de Zip64, pero Código Postal saldrá con un error si Zip64 era realmente necesario. Código Postal 3 y abrir la cremallera 6 y posteriores pueden leer archivos con entradas Zip64. También, Código Postal elimina las extensiones Zip64 si no son necesarias cuando se copian las entradas del archivo (consulte la -U ( --Copiar ) opción).

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

|_+_|

Tenga en cuenta que [correo electrónico protegido] las listas no funcionan en macOS.

Archivos zip

Al cambiar un archivo zip existente, Código Postal escribirá un archivo temporal con el nuevo contenido, y solo reemplazará el anterior cuando el proceso de creación de la nueva versión se haya completado sin errores.

Si el nombre del Código Postal archivo no contiene una extensión, la extensión .Código Postal está agregado. Si el nombre ya contiene una extensión distinta a .Código Postal , la extensión existente se mantiene sin cambios. Sin embargo, los archivos divididos (archivos divididos en varios archivos) requieren la .Código Postal extensión en la última división.

Escanear y leer archivos

Cuándo Código Postal comienza, busca archivos para procesar (si es necesario). Si esta exploración tarda más de unos 5 segundos, Código Postal muestra un mensaje de 'Escaneando archivos' y comienza a mostrar puntos de progreso cada 2 segundos o cada tantas entradas procesadas, lo que demore más. Si hay más de 2 segundos entre puntos, podría indicar que la búsqueda de cada archivo está tomando 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 donde el escaneo del directorio es seguido por una clasificación y estos dos pasos se separan con un espacio en los puntos. Si se actualiza un archivo existente, también aparece un espacio entre el escaneo del archivo existente y el nuevo escaneo de archivos.) Los puntos de escaneo de archivos no son controlados por el -ds opción de tamaño de punto, pero los puntos están desactivados por el -q Opción tranquila. La -sf La opción mostrar archivos se puede usar para buscar archivos y obtener la lista de archivos escaneados sin procesarlos.

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

Modos de comando

Código Postal ahora admite dos tipos distintos de modos de comando, externos e internos. Los modos externos ( agregar , actualizar , y refrescar ) lee archivos del sistema de archivos (así como de un archivo existente) mientras que los modos internos ( Eliminar y Copiar ) operan exclusivamente en entradas en un archivo existente.

agregar Actualice las entradas existentes y agregue nuevos archivos y créelos si el archivo no existe. Esta opción es el modo predeterminado.
actualizar ( -u ) Actualice las entradas existentes si son más nuevas en el sistema de archivos y agregue nuevos archivos. Si el archivo no existe, emita una advertencia, cree un nuevo archivo.
refrescar ( -F ) Actualice las entradas existentes de un archivo si es más reciente en el sistema de archivos. No agrega archivos nuevos al archivo.
Eliminar ( -D ) Seleccione entradas en un archivo existente y elimínelas.
Copiar ( -U ) Seleccione entradas en un archivo existente y cópielas en un nuevo archivo. Este nuevo modo es similar a la actualización, pero los patrones de la línea de comandos seleccionan entradas en el archivo existente en lugar de archivos del sistema de archivos y usa el --fuera opción 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 modo nuevo, aunque es similar a actualizar. Este modo sincroniza el archivo con los archivos en el sistema operativo, solo reemplazando archivos en el archivo si la hora del archivo o el tamaño del archivo del sistema operativo es diferente, agregando nuevos archivos y eliminando entradas del archivo donde no hay un archivo coincidente. Dado que este modo puede eliminar entradas del archivo, considere la posibilidad de realizar una copia de seguridad del archivo.

Ver también -DF para crear archivos de diferencias.

Archivos divididos

Código Postal la 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 solo archivos divididos en partes, ya que las compensaciones de las entradas ahora se basan en el comienzo de cada división. Concatenar las piezas juntas invalidará estas compensaciones, pero descomprimirlas normalmente puede solucionarlo. Código Postal Por lo general, se negará a procesar un archivo empalmado a menos que el -FF La opción de reparación se utiliza para corregir las compensaciones.)

Uno de los usos de los archivos divididos es almacenar un archivo grande en varios medios extraíbles. Para un archivo dividido con 20 archivos divididos, los archivos generalmente se nombran (reemplace ARCHIVO con el nombre de su archivo) ARCHIVE.z01 , ARCHIVE.z02 , ..., ARCHIVE.z19 , ARCHIVE.zip . Tenga en cuenta que el último archivo es el .Código Postal expediente. Por el contrario, los archivos distribuidos son el archivo original de varios discos que generalmente requieren disquetes y utilizan etiquetas de volumen para almacenar números de disco. Código Postal admite archivos divididos pero no archivos divididos, aunque existe un procedimiento para convertir archivos divididos del tamaño correcto en archivos divididos. Lo contrario también es cierto, donde cada archivo de un archivo distribuido se puede copiar en archivos con los nombres anteriores para crear un archivo dividido.

Usar -s para establecer el tamaño de división y crear un archivo dividido. El tamaño se da como un número seguido opcionalmente por uno de a (KB), metro (MB), gramo (GB), o t (TB) (el valor predeterminado es metro ). La -sp La opción se puede usar para pausar zip entre divisiones para permitir cambiar los medios extraíbles, por ejemplo, pero lea las descripciones y advertencias de ambos -s y -sp debajo.

Aunque Código Postal no actualiza archivos divididos, Código Postal proporciona la nueva opción -O ( --archivo de salida o --fuera ) para permitir que los archivos divididos se actualicen y guarden en un nuevo archivo. Por ejemplo,

|_+_|

... lee 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 se divide entonces outarchive.zip por defecto tiene el mismo tamaño de división. Tenga en cuenta que si outarchive.zip y cualquier archivo dividido que se cree con él ya existe, estos siempre se sobrescriben según sea necesario sin previo aviso. Esto puede cambiar en el futuro.

Soporte Unicode

Aunque el Código Postal El estándar requiere almacenar rutas en un archivo usando un juego de caracteres específico; en la práctica, las cremalleras tienen rutas almacenadas en archivos en cualquiera que sea el juego de caracteres local. Pueden ocurrir problemas cuando se crea o actualiza un archivo en un sistema usando un juego de caracteres y luego se extrae en otro sistema usando un juego de caracteres diferente. Cuando se compila con el soporte Unicode habilitado en plataformas que admiten caracteres anchos, Código Postal ahora almacena, además de la ruta local estándar para compatibilidad con versiones anteriores, el UTF-8 traducción del camino. 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 admitan Unicode y que coincidan lo más cerca posible en sistemas que no lo hacen.

En los sistemas Win32 donde las rutas se almacenan internamente como Unicode pero se representan en el juego de caracteres local, es posible que algunas rutas se omitan durante un escaneo de directorio del juego de caracteres local. Código Postal con soporte Unicode ahora puede leer y almacenar estas rutas. Tenga en cuenta que los sistemas Win 9x y GRASA los sistemas de archivos no son totalmente compatibles con 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 cómo cambia cada sistema operativo en los conjuntos de caracteres para su 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 comando

Esta versión de Código Postal ha actualizado el procesamiento de la línea de comandos y la compatibilidad con opciones largas.

Las opciones cortas toman la forma:

|_+_|

...dónde s es una opción corta de uno o dos caracteres. Una opción corta que toma un valor es la última en un argumento y cualquier cosa posterior se toma como valor. Si la opción se puede negar y ' - 'sigue inmediatamente a la opción, la opción se niega. Las opciones cortas también se pueden dar como argumentos separados

|_+_|

Las opciones cortas en general toman valores como parte del mismo argumento o como el siguiente argumento. Un opcional = también es compatible. Entonces -tt mmddyyyy , -tt = mmddyyyy , y -tt mmddyyyy todo el trabajo. La -x y -I Las opciones aceptan listas de valores y utilizan un formato ligeramente diferente que se describe a continuación. Ver el -x y -I opciones.

Las opciones largas toman la forma

|_+_|

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 opción) especificado precediéndolo con = (No hay espacios). Los valores también pueden seguir al argumento. Entonces --before-date = mmddyyyy y --antes de la fecha mmddyyyy ambos trabajan.

Los nombres de opciones largos se pueden acortar a la abreviatura única más corta. Consulte las descripciones de las opciones a continuación para conocer las opciones largas. Para evitar confusiones, evite abreviar una opción negable con un guión incrustado (' - ') en el guión si planea negarlo (el analizador consideraría un guión final, como para la opción --algunas opciones utilizando --algunos- como opción, como parte del nombre en lugar de un guión de negación). Esto se puede cambiar para forzar el último guión en --algunos- estar negando en el futuro.

Sintaxis

|_+_|

Opciones

-a , --ascii En sistemas que utilizan EBCDIC, esta opción traduce archivos a ASCII formato.
-A , --adjust-sfx Ajustar autoextracción ejecutable archivo. Un archivo ejecutable autoextraíble se crea anteponiendo el stub 'SFX' a un archivo existente. La -A la opción dice Código Postal para ajustar las compensaciones de entrada almacenadas en el archivo para tener en cuenta estos datos de 'preámbulo'.
-C.A , --archive-clear Esta opción es una opción solo para Windows. Una vez que se crea el archivo (y se prueba si -T se utiliza, que se recomienda), borre el archivo bits de archivos procesados. Una vez que se borran los bits, se borran permanentemente. Es posible que desee utilizar el -sf (mostrar archivos) opción para almacenar la lista de archivos procesados ​​en caso de que deba repetirse la operación de archivo. También considere usar el -MM (debe coincidir) opción. Asegúrate de revisar -DF como una forma posiblemente mejor de realizar copias de seguridad incrementales.
-COMO , --conjunto de archivos Esta opción es una opción exclusiva de Windows que solo incluye archivos que tienen el bit de archivo configurado. Los directorios no se almacenan cuando -COMO se utiliza, aunque por defecto el rutas de las entradas, incluidos los directorios, se almacenan como de costumbre y la mayoría de los descomprimidos pueden utilizarlos para recrear directorios.

El bit de archivo lo establece el sistema operativo cuando se modifica un archivo y, si se usa con -C.A , -COMO puede proporcionar una capacidad de copia de seguridad incremental. Sin embargo, otras aplicaciones pueden modificar el bit de archivo y puede que no sea un indicador confiable de qué archivos han cambiado desde la última operación de archivo. Se utilizan formas alternativas de crear copias de seguridad incrementales -t para usar fechas de archivo, aunque esto no detectará archivos antiguos copiados en directorios que se están archivando, y -DF para crear un archivo diferencial.
-B , --binario Forzar la lectura de archivos como binario (el valor predeterminado es texto).
-b camino , --temp-path camino Utilice la ruta especificada para temporal archivo zip. Por ejemplo:

zip options archive inpath inpath ...
... pondrá el archivo zip temporal en el directorio / tmp , copiando stuff.zip al directorio actual cuando haya terminado. 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 almacenar archivos antiguos y nuevos al mismo tiempo. También puede ser útil al transmitir en algunos casos para evitar la necesidad de descriptores de datos. Tenga en cuenta que el uso de esta opción puede requerir Código Postal Tómese más tiempo para copiar el archivo de almacenamiento cuando haya terminado en el sistema de archivos de destino.
-c , --entry-comments Agregar una línea comentarios para cada archivo. Las operaciones de archivo (agregar, actualizar) se realizan primero y luego se solicita al usuario un comentario de una línea para cada archivo. Ingrese el comentario seguido de regresar, o simplemente regrese sin comentarios.
-D , --Eliminar Eliminar (eliminar) entradas de un Código Postal archivo. Por ejemplo:

zip -r foo.zip foo
... eliminará la entrada foo / tom / basura , todos los archivos que comienzan con foo / harry / y todos los archivos que terminan con .o (en cualquier camino). Tenga en cuenta que la expansión del nombre de la ruta del shell se ha inhibido con barras invertidas, de modo que Código Postal puede ver el asteriscos , habilitando Código Postal para que coincida con el contenido de la Código Postal archive en lugar del contenido del directorio actual. (Las barras invertidas no se utilizan en plataformas basadas en MSDOS). También se pueden utilizar comillas para escapar de los asteriscos, como en

zip -r foo foo
No escapar de los asteriscos en un sistema donde el caparazón se expande comodines podría resultar en que los asteriscos se conviertan en una lista de archivos en el directorio actual y esa lista utilizada para eliminar entradas del archivo.

Bajo MSDOS, -D distingue entre mayúsculas y minúsculas cuando coincide con los nombres en el Código Postal archivo. Esto requiere que los nombres de los archivos se ingresen en mayúsculas si fueron comprimidos por PKZIP en un sistema MSDOS. Ver la opcion -ic para ignorar el caso en el archivo.
-pzs , --display-bytes Muestra los recuentos de bytes en ejecución que muestran los bytes comprimidos y los bytes restantes.
-dc , --display-count Muestra un recuento continuo de entradas comprimidas y entradas aún por procesar.
-dd , --display-dots Muestre puntos mientras cada entrada está comprimida (excepto en los puertos que tienen su propio indicador de progreso). Ver -ds a continuación para configurar el tamaño de los puntos. El valor predeterminado es un punto cada 10 MB de archivo de entrada procesado. La -v La opción también muestra puntos (anteriormente a una tasa mucho más alta que esta, pero ahora -v también tiene un valor predeterminado de 10 MB) y esta velocidad también está controlada por -ds .
-df , --datafork En MacOS, incluya solo la bifurcación de datos de los archivos comprimidos en el archivo. Bueno para exportar archivos a sistemas operativos externos. Las bifurcaciones de recursos se ignorarán en absoluto.
-dg , --display-globaldots Muestra puntos de progreso para el archivo en lugar de para cada archivo. El comando

foo/file1 foo/file2
... apagará la mayoría de las salidas excepto los puntos cada 10 MB.
-ds Talla , - tamaño de punto Talla Establezca la cantidad de archivo de entrada procesado para cada punto mostrado. Ver -dd para habilitar la visualización de puntos. Establecer esta opción implica -dd . El tamaño está en el formato Nuevo Méjico dónde norte es un número y metro es un multiplicador. Actualmente metro puede ser a ( KB ), metro ( MB ), gramo ( GB ), o t ( ADEMÁS ); Así que si norte es 100 y metro es a , Talla sería 100k que es 100 KB. El valor predeterminado es 10 MB.

La -v La opción también muestra puntos y ahora también tiene un valor predeterminado de 10 MB. Esta tasa también está controlada por esta opción. A Talla de 0 apaga los puntos.

Esta opción no controla los puntos del mensaje 'Escaneando archivos' como escaneos zip para archivos de entrada. El tamaño de punto para eso se fija en 2 segundos o un número fijo de entradas, lo que sea más largo.
-de , --display-help Muestra el tamaño sin comprimir de cada entrada.
-dv , --display-volume Muestra el número de volumen (disco) desde el que se lee cada entrada, si se lee un archivo existente y dónde se escribe.
-D , --no-decir-entries No cree entradas en el Código Postal archivo para directorios. Las entradas del directorio se crean de forma predeterminada para que sus atributos se puedan guardar en el archivo. La Variable ambiental ZIPOPT se puede utilizar para cambiar las opciones predeterminadas. Por ejemplo, en Unix con sh :

file1 file3
(La variable ZIPOPT se puede utilizar para cualquier opción, incluyendo -I y -x utilizando un nuevo formato de opción que se detalla a continuación, y puede incluir varias opciones). -D es una abreviatura de -x '*/' pero este último anteriormente no se podía establecer como predeterminado en el ZIPOPT variable de entorno como el contenido de ZIPOPT se inserta cerca del principio de la línea de comando y la lista de archivos tenía que terminar al final de la línea.

Esta versión de Código Postal permite -x y -I opciones en ZIPOPT si la forma

foo/file1 foo/file2 foo/file3
... se utiliza, donde el @ (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 el Código Postal operación.

Por ejemplo, si el archivo existente se creó utilizando

zip [email protected] foo
desde el bar directorio, luego el comando

find . -name '*.[ch]' -print | zip source [email protected] 
... también del bar directorio crea el archivo foonew con solo los archivos que no están en tonto y los archivos en los que el tamaño o el tiempo de archivo de los archivos 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 resultar en que no coincidan las horas y que se incluyan todos los archivos.

Un posible enfoque para 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 y luego usar esta opción para crear copias de seguridad incrementales.
-es , --encriptar Cifre el contenido del Código Postal archivo usando una contraseña que se ingresa en el terminal en respuesta a un mensaje (esto no se repetirá; si el error estándar no es un tty, Código Postal saldrá con un error). La solicitud de contraseña se repite para evitar que el usuario cometa errores.
-ES , --nombres largos En OS / 2, utilice el atributo extendido .LONGNAME (si lo encuentra) como nombre de archivo.
-F , --refrescar Reemplazar (actualizar) una entrada existente en el archivo zip solo si se ha modificado más recientemente que la versión que ya está en el Código Postal archivo; a diferencia de la opción de actualización ( -u ) esto no agregará archivos que no estén ya en el Código Postal archivo. Por ejemplo:

zip -r - . | dd of=/dev/nrst0 obs=16k
Este comando debe ejecutarse desde el mismo directorio desde el que se Código Postal se ejecutó el comando, ya que las rutas almacenadas en Código Postal los archivos son siempre relativos.

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

Las razones detrás de esto son algo sutiles, pero tienen que ver con las diferencias entre las horas de archivo en formato Unix (siempre en GMT) y la mayoría de los otros sistemas operativos (siempre en la 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 'horario de verano' o horario de verano).

El formato es TTThhDDD , dónde TT es la zona horaria como PST, S.S es la diferencia entre GMT y la hora local, como -1 arriba, y DDD es la zona horaria en la que está en vigor el horario de verano. Deja el DDD si no hay horario de verano. Para la zona horaria del este de EE. UU .: EST5EDT .
-F , --reparar , -FF , --fixfix Arregla el Código Postal archivo. La -F La opción 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 Código Postal ignora algunos problemas. El archivo resultante debe ser válido, pero se omitirá cualquier entrada inconsistente.

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

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

Ninguna opción recuperará archivos que se hayan transferido incorrectamente en modo ascii en lugar de binario. Después de la reparación, el -t opción de abrir la cremallera puede mostrar que algunos archivos tienen un CRC incorrecto. Estos archivos no se pueden recuperar; puede eliminarlos del archivo utilizando el -D opción de Código Postal .

Tenga en cuenta que -FF puede tener problemas para arreglar archivos que incluyen un incrustado Código Postal archivo que se almacenó (sin compresión) en el archivo y, dependiendo del daño, puede encontrar las entradas en el archivo incrustado en lugar del archivo en sí. Intentar -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 ,

tar cf - . | zip backup -
... intenta leer las entradas normalmente, copiando buenas entradas en el nuevo archivo foofix.zip . Si esto no funciona, como cuando el archivo está truncado , o si se pierden algunas entradas que sabe que están en el archivo, intente

unzip -p backup | tar xf -
... y compare el archivo resultante con el archivo creado por -F . La -FF La opción puede crear un archivo incoherente. Dependiendo de lo que esté dañado, puede usar el -F opción para arreglar ese archivo.

Un archivo dividido con archivos divididos faltantes se puede arreglar usando -F si tiene la última división del archivo (el .Código Postal expediente). Si falta este archivo, debe utilizar -FF para arreglar el archivo, lo que le pedirá las divisiones que tenga.

Actualmente, las opciones de corrección no pueden recuperar las entradas que tienen una suma de comprobación incorrecta o que están dañadas de alguna otra manera.
-SER , --fifo En Unix, normalmente Código Postal omite la lectura de los FIFO (canalizaciones con nombre) encontrados, ya que Código Postal puede colgarse si no se alimenta el FIFO. Esta opción dice Código Postal para leer el contenido de cualquier FIFO que encuentre.
-FS , --filesync Sincronice el contenido de un archivo con los archivos del sistema operativo. Normalmente, cuando se actualiza un archivo, se agregan nuevos archivos y los archivos modificados se actualizan, pero los archivos que ya no existen en el sistema operativo no se eliminan del archivo. Esta opción habilita un nuevo modo que compara las entradas del 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 sistema operativo, la entrada se copia del archivo antiguo en lugar de leerse del sistema de archivos y comprimirse. Si el archivo del sistema operativo ha cambiado, la entrada se lee y se comprime como de costumbre. Si la entrada en el archivo no coincide con un archivo en el sistema operativo, la entrada se elimina. Habilitar esta opción debería crear archivos que son lo mismo que archivos nuevos, pero dado que las entradas existentes se copian en lugar de comprimirse, actualizar un archivo existente con -FS puede ser mucho más rápido que crear 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 coincidan las rutas relativas. Si se copian pocos archivos del antiguo archivo, puede que sea más rápido crear un nuevo archivo.

Tenga en cuenta que la variable de entorno de zona horaria TZ debe configurarse 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 haya coincidencias ni recompresión de todos los archivos.

Esta opción elimina archivos del archivo. Si necesita conservar el archivo original, primero haga una copia del archivo o utilice el --fuera opción para generar el archivo actualizado en un nuevo archivo. Aunque puede ser más lento, crear un nuevo archivo con un nuevo nombre de archivo es más seguro, evita discrepancias entre el archivo y las rutas del sistema operativo, y es preferible.
-gramo , --crecer Crecer (agregar a) el especificado Código Postal archive, 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 puede dañarse. Esta opción se ignora cuando no hay un archivo existente o cuando al menos un miembro del archivo debe actualizarse o eliminarse.
-h , -? , --ayuda Mostrar el Código Postal información de ayuda (esto también aparece si Código Postal se ejecuta sin argumentos).
-h2 , --más ayuda Muestra ayuda ampliada que incluye más información sobre el formato de la línea de comandos, la coincidencia de patrones y opciones más oscuras.
-I archivos , --incluir archivos Incluya solo los archivos especificados, como en:

tar cf - . | zip | dd of=/dev/nrst0 obs=16k
... que incluirá solo los archivos que terminan en .c en el directorio actual y sus subdirectorios. (Nota para los usuarios de PKZIP: el comando equivalente es

tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k
PKZIP no permite la recursividad en directorios distintos al actual.) La barra invertida evita la sustitución del nombre del archivo de shell, de modo que la coincidencia de nombres se realiza mediante Código Postal en todos los niveles de directorio. [Esta opción es para Unix y otros sistemas donde ' 'escapa al siguiente carácter.] Así que para incluir para ti , un directorio directamente debajo del directorio actual, use:

dd if=/dev/nrst0 ibs=16k | funzip | tar xvf -
o:

zip archive '*.h' '*.c' -x donotinclude.h orthis.h > tofile
... para hacer coincidir caminos como decir / a y dir / b / file.c . Tenga en cuenta que actualmente el último / es necesario para directorios (como en:

zip inarchive.zip foo.c bar.c --out outarchive.zip
... para incluir directorio de directorio).

La forma de opción larga del primer ejemplo es:

-s[-][s[-]...][value][=value][ value]
... y hace lo mismo que el formulario de opción corta.

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

-s[-][value][=value][ value] -s[-][value][=value][ value] ...
...por ejemplo. Debe haber un espacio entre la opción y el primer archivo de una lista. Para un solo archivo, puede usar el formulario de valor único:

--longoption[-][=value][ value]
(sin espacio entre opción y valor) o:

zip [ [email protected] $] [--  longoption  ...] [-b  path  ] [-n  suffixes  ] [-t  date  ] [-tt  date  ] [  zipfile  [  file  ...]] [-xi  list  ]
... como ejemplos adicionales. Las formas de valor único no se recomiendan porque pueden ser confusas y, en particular, la -archivo El formato puede causar problemas si la primera letra del archivo se combina con I para formar una opción de dos letras que comience con I . Usar -Carolina del Sur para ver cómo se analizará su línea de comando.

También es posible:

zip -b /tmp stuff *
... que solo incluirá los archivos en el directorio actual y sus subdirectorios que coincidan con los patrones en el archivo include.lst .

Archivos a -I y -x son patrones que coinciden con las rutas de archivo internas. Ver -R para obtener más información sobre los patrones.
-I , --Sin imágen En Acorn RISC OS, esta opción indica Código Postal no escanear archivos de imagen. Cuando se usa, Código Postal no considerará los archivos de imagen (por ejemplo, particiones DOS o archivos Spark cuando se carga SparkFS) como directorios, pero los almacenará como archivos individuales.

Por ejemplo, si tiene SparkFS cargado, comprimir un archivo Spark dará como resultado un archivo zip que contiene un directorio (y su contenido) mientras usa el ' I 'dará como resultado un archivo zip que contiene un archivo Spark. Obviamente este segundo caso también se obtendrá (sin el ' I ') si SparkFS no está cargado.
-ic , --ignorar caso En sistemas VMS o Windows, ignore las mayúsculas y minúsculas cuando haga coincidir las entradas del archivo. Esta opción solo está disponible en sistemas donde se ignora el caso de los archivos. En sistemas con sistemas de archivos que no distinguen entre mayúsculas y minúsculas, normalmente se ignoran las mayúsculas y minúsculas cuando se comparan archivos en el sistema de archivos, pero -F (refrescar), -D (Eliminar), -U (copia) y modos similares cuando se comparan con las entradas del archivo (actualmente -F ignora mayúsculas y minúsculas en VMS) porque las entradas de archivo pueden ser de sistemas donde las mayúsculas y minúsculas sí importan y los nombres que son iguales, excepto el caso, pueden existir en un archivo. La -ic La opción hace que todas las coincidencias no distingan entre mayúsculas y minúsculas. Esta opción puede dar como resultado que varias entradas de archivo coincidan con un patrón de línea de comando.
-j , - caminos-basura Almacene solo el nombre de un archivo guardado (sin la ruta) y no almacene nombres de directorio. Por defecto, Código Postal almacenará la ruta completa, relativa al directorio actual.
-jj , - camino-absoluto En macOS, registre Fullpath (+ Volname). Se almacenará la ruta completa, incluido el volumen. De forma predeterminada, se almacenará la ruta relativa.
-J , --junk-sfx Elimine cualquier dato antepuesto (por ejemplo, un stub SFX) del archivo.
-a , --DOS-names Intente convertir los nombres y rutas para que se ajusten a MSDOS, almacene solo el atributo MSDOS (solo el atributo de escritura del usuario de Unix) y marque la entrada como hecha en MSDOS (aunque no lo fue); para compatibilidad con PKUNZIP bajo MSDOS que no puede manejar ciertos nombres como aquellos con dos puntos.
-l , --a-crlf Traduzca el carácter de final de línea de Unix LF a la convención de MSDOS CR LF. Esta opción no debe usarse en archivos binarios. Esta opción se puede utilizar en Unix si el Código Postal El archivo está destinado a PKUNZIP en MSDOS. Si los archivos de entrada ya contienen CR LF, esta opción agrega un CR adicional. Esta opción es para asegurar que descomprimir -a en Unix obtendrá una copia exacta del archivo original, para deshacer el efecto de zip -l . Ver -ll para saber cómo se manejan los archivos binarios.
-la , --log-append Agregar a existente archivo de registro . El valor predeterminado es sobrescribir.
-lf logfilepath ,
--logfile-path logfilepath
Abra un archivo de registro en la ruta indicada. Por defecto, cualquier archivo existente en esa ubicación se sobrescribe, pero el -la La opción resultará en la apertura de un archivo existente y la nueva información de registro adjunta a cualquier información existente. Solo las advertencias y los errores se escriben en el registro a menos que -en el También se da la opción, entonces todos los mensajes de información también se escriben en el registro.
-en el , --log-info Incluya mensajes de información, como nombres de archivos comprimidos, en el registro. El valor predeterminado es incluir solo la línea de comando, las advertencias y los errores, y el estado final.
-ll , --de-crlf Traduzca el CR LF de fin de línea de MSDOS a Unix LF. Esta opción no debe usarse en archivos binarios. Esta opción se puede utilizar en MSDOS si el archivo zip está destinado a abrir la cremallera bajo Unix. Si el archivo se convierte y posteriormente se determina que es binario, se emite una advertencia y es probable que el archivo esté dañado. En este comunicado si -ll detecta binario en el primer búfer leído de un archivo, Código Postal ahora emite una advertencia y omite la conversión de fin de línea en el archivo. Esta verificación parece detectar todos los archivos binarios probados, pero la verificación original permanece y si posteriormente se determina que un archivo convertido es binario, esa advertencia aún se emite. Ahora se está utilizando un nuevo algoritmo para la detección binaria que debería permitir la conversión de final de línea de archivos de texto en UTF-8 y codificaciones similares.
-L , --licencia Mostrar el Código Postal licencia.
-metro , --moverse Mueva los archivos especificados al Código Postal archivo; en realidad, esto elimina los directorios / archivos de destino después de realizar el Código Postal archivo. Si un directorio se vacía después de eliminar los archivos, el directorio también se elimina. No se realizan eliminaciones hasta Código Postal ha creado el archivo sin errores. Esta opción es útil para conservar Espacio del disco , pero es potencialmente peligroso por lo que se recomienda usarlo en combinación con -T para probar el archivo antes de eliminar todos los archivos de entrada.
-MM , --debe coincidir con 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 una advertencia de 'nombre no coincidente' y cuando se encuentra un archivo de entrada pero luego falta o no se puede leer, se emite una advertencia que falta o no se puede leer. En cualquier caso Código Postal continúa creando el archivo, y los archivos nuevos que faltan o no se pueden leer se omiten y los archivos que ya están en el archivo permanecen sin cambios. Una vez creado el archivo, si alguno de los archivos no es legible, Código Postal devuelve el código de error OPEN (18 en la mayoría de los sistemas) en lugar del retorno normal de éxito (0 en la mayoría de los sistemas). Con -MM colocar, Código Postal sale tan pronto como un patrón de entrada no coincide (siempre que se emita la advertencia de 'nombre no coincidente') o cuando un archivo de entrada no es legible. En cualquier caso Código Postal 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, por lo que cualquier archivo que falte o sea ilegible resultará en un error. Es menos útil cuando se usa con comodines, pero Código Postal 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 es ilegible. Si desea crear el archivo de todos modos y solo necesita saber si se omitieron los archivos, no use -MM y simplemente verifique el código de retorno. También -lf Podría ser útil.
-norte sufijos ,
--sufijos sufijos
No intente comprimir archivos nombrados con los sufijos dados. Estos archivos se almacenan (0% de compresión) en el archivo zip de salida, por lo que zip no pierde el tiempo tratando de comprimirlos. Los sufijos están separados por dos puntos o punto y coma. Por ejemplo:

zip -d foo foo/tom/junk foo/harry/* *.o
copiará todo desde foo dentro foo.zip , pero almacenará cualquier archivo que termine en .CON , .Código Postal , .pelea , .gif , o .snd sin intentar comprimirlos (los archivos de imagen y sonido suelen tener sus propios métodos de compresión especializados). Por defecto, Código Postal no comprime archivos con extensiones en 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 :

zip -d foo foo/tom/junk 'foo/harry/*' '*.o'
Para intentar la compresión en todos los archivos, use:

zip -qdgds 10m
La opción de máxima compresión -9 también intenta la compresión en todos los archivos independientemente de su extensión.

En los sistemas Acorn RISC OS, los sufijos son en realidad tipos de archivo (3 maleficio formato de dígitos). Por defecto, zip no comprime archivos con tipos de archivo en la lista DDC: D96: 68E (es decir, archivos, archivos CFS y archivos PackDir).
-noroeste , --no-salvaje No realice el procesamiento interno de comodines (el procesamiento de comodines de shell aún lo realiza el shell a menos que se escapen los argumentos). Útil si se lee una lista de rutas y no se desea ninguna sustitución de comodines.
-NORTE , - notas [Amiga, MacOS] Guarde las notas de archivo de Amiga o MacOS como comentarios de archivo zip. Se pueden restaurar utilizando el -NORTE opción de abrir la cremallera . Si -c También se utiliza, se le solicitarán comentarios solo para aquellos archivos que no tienen notas de archivo.
-o , - última vez Establezca la hora de 'última modificación' del Código Postal archivo a la última hora (más antigua) de 'última modificación' encontrada entre las entradas en el Código Postal archivo. Esta opción se puede utilizar sin ninguna otra operación, si se desea. Por ejemplo:

ZIPOPT='-D'; export ZIPOPT
... cambiará la última hora modificada de foo.zip a la última hora de las entradas en foo.zip .
-O archivo de salida ,
--archivo de salida archivo de salida
Procese los cambios de archivo como de costumbre, pero en lugar de actualizar el archivo existente, envíe el nuevo archivo a 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.

Otro uso es convertir Código Postal archivos de un tamaño dividido a otro. Por ejemplo, para convertir un archivo con 700 MB CD se divide en uno con 2 GB DVD divisiones, puede usar:

-x file file ... @
... que usa el modo de copia. Ver -U debajo. También:

|_+_|

... convertirá un archivo dividido en un archivo de un solo archivo.

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 descomprimidos) en entradas normales (que deberían ser compatibles con todos los descomprimidos), excepto si se usó cifrado estándar. Para archivos con entradas cifradas, zipcloak descifrará las entradas y las convertirá en entradas normales.

-pag , --rutas Incluya rutas de archivo relativas como parte de los nombres de los archivos almacenados en el archivo. Esta opción es la predeterminada. La -j La opción desecha las rutas y solo almacena los nombres de los archivos.
-PAG contraseña ,
--contraseña contraseña
Usar contraseña a cifrar entradas zipfile (si las hay). ¡ESTO ES INSEGURO! Muchos sistemas operativos multiusuario proporcionan formas para que cualquier usuario vea la línea de comandos actual de cualquier otro usuario; incluso en los sistemas independientes siempre existe la amenaza de mirar por encima del hombro. Almacenar la contraseña de texto sin formato como parte de una línea de comando en un texto es aún peor. Siempre que sea posible, utilice el indicador interactivo 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 que proporcionan las utilidades zipfile).
-q , --tranquilo Modo silencioso; elimine los mensajes informativos y las solicitudes de comentarios. (Útil, por ejemplo, en scripts de shell y tareas en segundo plano).
-r , --recurse-caminos Recorre la estructura del directorio de forma recursiva; por ejemplo:

zip -r foofull .
o más concisamente

zip -r foofull . -DF --out foonew
En este caso, todos los archivos y directorios en foo se guardan en un archivo llamado foo.zip , incluidos los archivos con nombres que comienzan con ' . ', ya que la recursividad no utiliza el mecanismo de sustitución de nombre de archivo del shell. Si desea incluir solo un subconjunto específico de los archivos en el directorio foo y sus subdirectorios, use el -I opción para especificar el patrón de archivos que se incluirán. No deberías usar -r con el nombre ' .* ', ya que coincide' .. 'que intentará comprimir el directorio principal (probablemente no sea lo que se pretendía).

Se permiten varios directorios de origen:

zip -f foo
... que primero se cierra foo1 y entonces foo2 , bajando por cada directorio.

Tenga en cuenta que mientras que los comodines -r normalmente se resuelven al recuperar directorios en el sistema de archivos, cualquier -R , -x , y -I Los comodines se aplican a los nombres de rutas de archivos internos una vez que se analizan los directorios. Para que los comodines se apliquen a archivos en subdirectorios cuando se recurre a Unix y sistemas similares donde el shell realiza la sustitución de comodines, escape todos los comodines o coloque todos los argumentos con comodines entre comillas. Esto permite Código Postal vea los comodines y haga coincidir archivos en subdirectorios usándolos mientras se repite.
-R , --patrones-recurrentes Recorre la estructura del directorio de forma recursiva comenzando en el directorio actual; por ejemplo:

zip -F foo --out foofix
En este caso, todos los archivos que coinciden *.c en el árbol que comienza en el directorio actual se almacenan en un archivo zip llamado foo.zip . Tenga en cuenta que *.c coincidirá file.c , a / file.c y a B C . Se puede enumerar más de un patrón como argumentos separados. Nota para los usuarios de PKZIP: el comando equivalente es

zip -FF foo --out foofixfix
Los patrones son rutas de archivo relativas tal como aparecen en el archivo, o lo harán después de comprimirlas, 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 es el archivo bar.c ,

zip -r foo . -i *.c
... se cerrará la cremallera foo , foo / foo1 , foo / foo1 / bar.c , y foo / foo2 .

pkzip -rP foo *.c
... se cerrará la cremallera foo / foo1 / bar.c . Ver la nota para -r sobre cómo escapar de los comodines.
-RE , --regex [WIN32] Antes Código Postal 3.0, expresión regular la coincidencia de listas estaba habilitada de forma predeterminada en las plataformas Windows. Debido a la confusión resultante de la necesidad de escapar ' [' y ' ] 'en nombres, ahora está desactivado de forma predeterminada para Windows, por lo que' [ ' y ' ] 'son solo caracteres normales en los nombres. Esta opción habilita [] emparejando de nuevo.
-s dividir ,
- tamaño dividido dividir
Habilite la creación de un archivo dividido y establezca el tamaño de la división. Un archivo dividido es un archivo que se puede dividir en muchos archivos. A medida que se crea el archivo, si el tamaño del archivo alcanza el tamaño de división especificado, esa división se cierra y se abre la siguiente división. En general, todas las divisiones, pero la última será el tamaño de la división y la última será lo que quede. Si el archivo completo es más pequeño que el tamaño de la división, se crea un archivo de archivo único.

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 archive.z01 , archive.z02 , y archive.zip . No cambie la numeración de estos archivos o el archivo no será legible, ya que 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 a (kilobytes), metro (megabytes), gramo (gigabytes), o t (terabytes). Como 64 k es el tamaño mínimo de división, los números sin multiplicadores se establecen de forma predeterminada en megabytes. Por ejemplo, para crear un archivo dividido llamado foo con el contenido del directorio bar con divisiones de 670 MB que podría ser útil para grabar en CD, el comando:

zip -r foo . -i dir/*
puede ser usado.

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

Utilizando -s sin -sp como arriba, crea todas las divisiones donde se escribe foo, en este caso el directorio actual. Este modo de división actualiza las divisiones a medida que se crea el archivo, lo que requiere que todas las divisiones sigan siendo grabables, pero crea archivos divididos que son legibles por cualquier persona. abrir la cremallera que admite archivos divididos. Ver -sp a continuación para habilitar el modo de pausa dividida que permite escribir divisiones directamente en medios extraíbles.

La opción -sv se puede utilizar para habilitar la división detallada y proporcionar detalles de cómo se realiza la división. La -sb La opción se puede usar para hacer sonar el timbre cuando el zip se detiene para el siguiente destino dividido.

Los archivos divididos no se pueden actualizar, pero consulte la -O ( --fuera ) para saber 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 usando un tamaño dividido de 0 o negando el -s opción:

zip -r foo . -i 'dir/*'
Ver también -U ( --Copiar ) para obtener más información sobre el uso del modo de copia.
-sb , - campana dividida Si divide y usa el modo de pausa dividida, toque el timbre cuando Código Postal hace una pausa para cada destino dividido.
-Carolina del Sur , --mostrar-comando Mostrar la línea de comando comenzando Código Postal como procesado y salir. El nuevo analizador de comandos permuta los argumentos, poniendo todas las opciones y los valores asociados con ellos antes de cualquier argumento que no sea de opción, lo que permite que una opción aparezca en cualquier lugar de la línea de comando siempre que los valores que acompañan a la opción vayan con ella. Esta opción muestra la línea de comando como la ve zip, incluidos los argumentos del entorno, como los ZIPOPT variable. Donde esté permitido, las opciones posteriores en la línea de comando pueden anular las opciones anteriores en la línea de comando.
-sf , --Mostrar archivos Muestre los archivos en los que se operaría, luego salga. Por ejemplo, si crea un nuevo archivo, esto mostrará una lista de los archivos que se agregarían. Si se niega la opción ( -sf- ), salida solo a un archivo de registro abierto. No se recomienda la visualización en pantalla para listas grandes.
-entonces , --show-options Mostrar todas las opciones disponibles admitidas por Código Postal compilado en el sistema actual. Como este comando lee la tabla de opciones, debe incluir todas las opciones. Cada línea incluye la opción corta (si está definida), la opción larga (si está definida), el formato de cualquier valor que vaya con la opción, si la opción puede ser negada, y una pequeña descripción. El formato del valor puede ser sin valor, valor obligatorio, valor opcional, valor de un solo carácter, valor numérico o una lista de valores. El resultado de esta opción no pretende mostrar cómo usar ninguna opción, sino solo mostrar qué opciones están disponibles.
-sp , - pausa dividida Si la división está habilitada con -s , habilite el modo de pausa dividida. Esta opción crea archivos divididos como -s lo hace, pero se usa la escritura de flujo para que cada división se pueda cerrar tan pronto como se escriba y zip hará una pausa entre cada división para permitir cambiar el destino o el medio de la división.

Aunque este modo de división permite escribir divisiones directamente en medios extraíbles, utiliza un formato de archivo de flujo que puede no ser legible por algunos descomprimidos. Antes de confiar en las divisiones creadas con -sp , pruebe un archivo dividido con la descompresión que utilizará.

Para convertir un archivo de flujo dividido (creado con -sp ) a un archivo estándar ver el --fuera opción.
-su , --show-unicode Como -sf , pero también mostrar Unicode versión 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 Habilite varios mensajes detallados al dividir, mostrando cómo se realiza la división.
-S , --sistema oculto Incluya el sistema y los archivos ocultos. En MacOS, incluye archivos invisibles del buscador, que de lo contrario se ignoran.
-t mmddyyyy ,
--partir de la fecha mmddyyyy
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. El formato de fecha ISO 8601 aaaa - mm - dd también se acepta. Por ejemplo:

zip -r foo . -i dir/
zip -r foo . --include *.c
... agregará 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 mmddyyyy ,
--antes de la fecha mmddyyyy
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. El formato de fecha ISO 8601 aaaa - mm - dd también se acepta. Por ejemplo:

zip -i *.c @ -r foo .
zip -i*.c -r foo .
... agregará 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 , --prueba Pruebe la integridad del nuevo archivo zip. Si la comprobación falla, el archivo zip antiguo no se modifica y (con el -metro opción) no se eliminan archivos de entrada.
-TT cmd ,
--comando-descomprimir cmd
Usar comando cmd en vez de ' descomprimir -tqq 'para probar un archivo cuando el -T se utiliza la opción. En Unix, para usar una copia de abrir la cremallera en el directorio actual en lugar del sistema estándar abrir la cremallera , podría utilizar:

zip --include=*.c -r foo .
En cmd , {} se reemplaza por el nombre del archivo temporal; de lo contrario, el nombre del archivo se agrega al final del comando. Se comprueba si el código de retorno es correcto (0 en Unix).
-u , --actualizar 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 -r foo . [email protected] 
... agregará cualquier archivo nuevo en el directorio actual y actualizará cualquier archivo que se haya modificado desde el archivo zip stuff.zip fue creado / modificado por última vez (tenga en cuenta que zip no intentará empacar stuff.zip en sí mismo cuando haces esto).

Tenga en cuenta que el -u La opción sin argumentos de archivo de entrada actúa como la -F (refrescar) opción.
-U , --copia-entradas Copie las entradas de un archivo a otro. Requiere el --fuera opción para especificar un archivo de salida diferente al archivo de entrada. El modo de copia es el reverso de -D (Eliminar). Cuando se utiliza eliminar con --fuera , las entradas seleccionadas se eliminan del archivo y todas las demás entradas se copian en el nuevo archivo, mientras que el modo de copia selecciona los archivos que se incluirán en el nuevo archivo. a diferencia de -u (actualización), los patrones de entrada en la línea de comando se comparan solo con las entradas del archivo y no con los archivos del sistema de archivos. Por ejemplo,

zip -rn .Z:.zip:.tiff:.gif:.snd foo foo
... copia entradas con nombres que terminan en .c de inarchivo 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 tener relevancia para las entradas del archivo.

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

setenv ZIPOPT '-n .gif:.zip'
Esta opción es útil para cambiar el tamaño de la división, por ejemplo. El cifrado y descifrado de entradas aún no es compatible con el modo de copia. Usar zipcloak para eso.
-UN v , --unicode v Determina que Código Postal debería hacer con los nombres de archivo Unicode. Código Postal 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 a una entrada le falta la ruta Unicode, Código Postal vuelve a la ruta de archivo estándar. El problema con el uso de la ruta estándar es que esta ruta está en el juego de caracteres local de la Código Postal que creó la entrada, que puede contener caracteres que no son válidos en el conjunto de caracteres que utiliza el abrir la cremallera . Cuándo Código Postal está leyendo un archivo, si una entrada también tiene una ruta Unicode, Código Postal ahora utiliza de forma predeterminada la ruta Unicode para recrear la ruta estándar usando el juego de caracteres local actual.

Esta opción se puede utilizar para determinar qué debería hacer zip con esta ruta si hay una discrepancia entre la ruta estándar almacenada y la ruta UTF-8 almacenada (lo que puede suceder si se actualizó la ruta estándar). En todos los casos, si hay un desajuste, se asume que la ruta estándar es más actual y Código Postal usa eso. Valores para v están

q salir si los caminos no coinciden
en advertir, continuar con la ruta estándar
I ignorar, continuar con la ruta estándar
norte sin Unicode, no use rutas Unicode
El valor predeterminado es advertir y continuar.

Los caracteres que no son válidos en el juego de caracteres actual se escapan como #U xxxx y #L xxxxxx , dónde 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. Configuración -UN a

es escape
como en:

zip -n : foo
...efectivo Código Postal para escapar de todos los caracteres que no son ASCII de 7 bits imprimibles.

Normalmente Código Postal almacena UTF-8 directamente en el campo de ruta estándar en sistemas donde UTF-8 es el juego de caracteres actual y almacena el UTF-8 en los nuevos campos adicionales de lo contrario. La opción

tu UTF-8
como en

zip -o foo
...efectivo Código Postal para 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 sistemas Windows donde la ruta de 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 el UTF-8 nativo no es compatible con versiones anteriores en sistemas Windows.
-v , --verboso Modo detallado o información de versión de diagnóstico de impresión.

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

Sin embargo cuando -v es el único argumento de línea de comando que se imprime en su lugar una pantalla de diagnóstico. Esto debería funcionar ahora 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 el encabezado de la pantalla de ayuda con el nombre del programa, la versión y la fecha de lanzamiento, algunos indicadores a los sitios de distribución y de inicio 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 características opcionales habilitadas que se utilizan para crear el Código Postal ejecutable).
-V , --VMS-portátil En VMS, guarde los atributos del archivo VMS. (Los archivos se truncan en EOF). -V El archivo se descomprime en un sistema que no es VMS, algunos tipos de archivos (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 archivos con tamaños de registro incrustados (especialmente los tipos de registros de longitud variable) probablemente se considerarán corruptos en otros lugares.
-VV , - específico de VMS En VMS, guarde los atributos del archivo VMS y todos los bloques asignados en un archivo, incluidos los datos más allá de EOF. Útil para mover archivos mal formados entre sistemas VMS. Cuando una -VV El archivo se descomprime en un sistema que no es VMS, casi todos los archivos aparecerán corruptos.
-en , --VMS-versiones En VMS, agregue el número de versión de los archivos al nombre, incluidas varias versiones de los archivos. El valor predeterminado es usar solo la versión más reciente de un archivo específico.
-ww , --VMS-dot-versiones En VMS, agregue el número de versión de los archivos al nombre, incluidas varias versiones de archivos, utilizando el . nnn formato. El valor predeterminado es usar solo la versión más reciente de un archivo específico.
-ws , --wild-stop-dirs Los comodines solo coinciden a nivel de directorio. Normalmente Código Postal maneja los caminos como cadenas y da los caminos

zip -s 2g cd-split.zip --out dvd-split.zip
un patrón de entrada como

zip -s 0 split.zip --out unsplit.zip
Normalmente coincidiría con ambos caminos, el * pareo dir / file1.c y file2.c . Tenga en cuenta que en el primer caso, un límite de directorio ( / ) fue cruzado en el partido. 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. Entonces, con -ws habilitado, solo se coincidiría con la segunda ruta.

Cuando usas -ws , usar ** para hacer coincidir a través de los límites del directorio como * lo hace normalmente.
-x archivos , --excluir archivos Excluya explícitamente los archivos especificados, como en:

zip -r foo.zip foo
... que incluirá el contenido de foo en foo.zip excluyendo todos los archivos que terminan en .o . La barra invertida evita la sustitución del nombre del archivo de shell, de modo que la coincidencia de nombres se realiza mediante zip en todos los niveles de directorio.

También es posible:

zip -r foo foo
... que incluirá el contenido de foo en foo.zip excluyendo todos los archivos que coinciden con los patrones del archivo exclude.lst .

Las formas de opciones largas de los anteriores son

zip -r foo foo1 foo2
y

zip -R foo '*.c'
Se pueden especificar varios patrones, como en:

pkzip -rP foo *.c
Si no hay espacio entre -x y el patrón, solo se asume un valor (sin lista):

zip -R foo/*
Ver -I para 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 tiempos de archivo en Unix). La Código Postal El formato 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 Código Postal lee las 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 y solo incluye los campos adicionales Unicode y Zip64 (actualmente estos dos campos adicionales no se pueden deshabilitar).

Negar esta opción, -X- , incluye todos los campos adicionales predeterminados, pero también copia los campos adicionales no reconocidos.
-y , --symlinks Para UNIX y VMS (V8.3 y 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. Esta opción puede evitar que se incluyan varias copias de archivos en el archivo como Código Postal recurre el árboles de directorio y accede a archivos directamente y mediante enlaces.
-con , --archive-comment Solicitar 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:

|_+_|
-CON cm ,
--método de compresión cm
Establezca el método de compresión predeterminado. Actualmente, los principales métodos admitidos por zip son almacenar y desinflar. El método de compresión se puede configurar en:

Tienda Configurar el método de compresión para almacenar fuerza a zip a almacenar entradas sin compresión. Este método es generalmente más rápido que comprimir entradas, pero no ahorra espacio. Este método es el mismo que utilizar -0 (nivel de compresión cero).
desinflar Este método es el método predeterminado para Código Postal . Si Código Postal determina que almacenar es mejor que desinflar, la entrada se almacenará en su lugar.
bzip2 Si se compila la compatibilidad con bzip2, este método de compresión también estará disponible. Actualmente, solo algunos descomprimidos modernos admiten el método de compresión bzip2, así que pruebe el descomprimido que utilizará antes de confiar en los archivos que utilizan este método (método de compresión 12).
Por ejemplo, para agregar bar.c archivar foo usando la compresión bzip2:

zip -R */bar.c
El método de compresión se puede abreviar:

|_+_|
- # Regular la velocidad de compresión usando el dígito especificado # , Entre 0 y 9 , dónde -0 indica que no hay compresión (almacenar 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 se está trabajando, la intención es que esta configuración controle la velocidad de compresión para todos los métodos de compresión. Actualmente solo se controla la deflación.
-! , --utilizar-privilegios En Windows, use privilegios (si se otorgan) para obtener todos los aspectos de WinNT seguridad.
[correo electrónico protegido] , --nombres-stdin Tome la lista de archivos de entrada de la entrada estándar. Solo un nombre de archivo por línea.
-$ , - etiqueta de volumen Incluya la etiqueta de volumen de la unidad que contiene el primer archivo que se comprimirá. Si desea incluir solo la etiqueta de volumen o forzar una unidad específica, use el nombre de la unidad como primer nombre de archivo, como en:

|_+_|

Ambiente

Código Postal usa lo siguiente Variables de entorno :

ZIPOPT Contiene opciones predeterminadas que se utilizarán al ejecutar Código Postal . El contenido de esta variable de entorno se agregará a la línea de comando justo después de la Código Postal mando.
CÓDIGO POSTAL Un alias para ZIPOPT , excepto en RISC OS y VMS.

En Risc y VMS, hay variables de entorno especiales adicionales; consulte su documentación para obtener más detalles.

Ejemplos de

|_+_|

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

|_+_|

Lo mismo que el comando anterior, pero también incluye archivos que comienzan con un punto (excepto para los nombres de directorio especiales ' . ' y ' .. '.

|_+_|

Cierra todo el subdirectorio foo en un archivo, foo.zip y registra el nombre del directorio con cada archivo.

|_+_|

Igual que el comando anterior, pero a diferencia de -r , la -j La opción no registrará el nombre del directorio, solo los nombres de los archivos.

|_+_|

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

comprimir - Comprimir un archivo o archivos.
alquitrán - Crear, modificar, enumerar el contenido y extraer archivos de archivos tar.
abrir la cremallera - Enumere, pruebe y extraiga archivos comprimidos en un archivo zip.
gzip, gunzip, zcat - Crear, modificar, enumerar el contenido y extraer archivos de archivos zip GNU.
zipinfo - Muestra información técnica sobre un archivo zip.