"Advertencia zip: nombre no coincidente" al comprimir un directorio

19

Tengo una carpeta de alrededor de 180 GB, necesito comprimirla como:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

Pero dice:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

Entonces, ¿cómo lo hago? En otra nota, archive.zipno existe, pero estoy tratando de crearlo.

Nombre para mostrar
fuente
Pruebazip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Respuestas:

7

Su comando debe ser:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

La página del manual ( man zip) muestra que debe tener:

zip <options> <archive> <inpath...>

Además, la -ropción de recursión es muy recomendable sobre el globo de shell "*" para esto.

Danny Staple
fuente
Otro error relacionado es un simple error de escritura (por ejemplo. Si ha copiado el comando de una escritura a otra). Por ejemplo, en lugar de winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*, escribe accidentalmente winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Tenga en cuenta el extra Output.zip... fácil de hacer!
AlainD
23

Este error también puede ser causado por enlaces simbólicos en el árbol de directorios que se está comprimiendo.

Si no se tienen destinos correctos (tal vez debido a que el directorio se ha movido o copiado de otro sitio), postal intentará seguir el enlace simbólico para archivar el archivo de destino.

Esto se puede evitar (y también obtener el efecto es probable que desee de todos modos, que no es archivar múltiples copias del archivo) utilizando el -y(o --symlinksla opción).

Bob ansioso
fuente
0

Use la bandera recursiva ( -r) en lugar de glob ( *) para hacer coincidir los archivos a comprimir. Además, especifique el nombre del archivo primero y luego dar la lista de archivos:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/
53c
fuente
0

También recibí este error en el pasado por una razón diferente que el -rinterruptor no puede solucionar. Lo que sucedió es que basé los archivos para agregar al zip con el siguiente código / variable bash

somevar=`ls -1 somedir`

El problema es que lssólo se enumeran los archivos fuera como si fuera en el directorio actual y por eso zipse queja (esencialmente los archivos no existen para los zip porque se dijo que mirara en el directorio equivocado / actual).

Si este es su problema se puede corregir de este modo:

somevar=`ls -1d somedir/*`

Como se puede ver he usado el -dinterruptor y también /*al final del nombre del directorio y luego se añadieron correctamente los archivos.

Areeb Soo Yasir
fuente