"Avviso zip: nome non corrispondente" durante la compressione di una directory


19

Ho una cartella di circa 180 GB, devo comprimerla come:

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

Ma dice:

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

Quindi come posso farlo? In un'altra nota, archive.zipnon esiste, ma sto cercando di crearlo.


Provazip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas,

Risposte:


7

Il tuo comando dovrebbe essere:

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

La pagina del manuale ( man zip), mostra che dovresti avere:

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

Inoltre, l' -ropzione per la ricorsione è altamente raccomandata sul "*" shell glob per questo.


Un altro errore correlato è un semplice errore di battitura (ad es. Se si è copiato il comando da uno script a un altro). Ad esempio, invece di winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*digitare accidentalmente winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Nota l'extra Output.zip... fatto facilmente!
AlainD,

23

Questo errore può anche essere causato da collegamenti simbolici nella struttura di directory compressi.

Se questi non hanno destinazioni corrette (forse perché la directory è stata spostata o copiata da altrove), zip tenterà di seguire il link simbolico per archiviare il file di destinazione.

Puoi evitarlo (e ottenere comunque l'effetto che probabilmente desideri, ovvero non archiviare più copie del file) usando l' opzione -y(o --symlinks).


0

Utilizzare il flag ricorsivo ( -r) anziché glob ( *) per abbinare i file da comprimere. Inoltre, specificare prima il nome dell'archivio e quindi fornire l'elenco dei file:

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

0

Ho anche avuto questo errore in passato per un motivo diverso che lo -rswitch non può risolvere. Quello che è successo è che ho basato i file da aggiungere allo zip con il seguente codice / variabile bash

somevar=`ls -1 somedir`

Il problema è che lselenca semplicemente i file come se fossero nella directory corrente e questo è il motivo per cui zipsi lamenta (essenzialmente i file non esistono per comprimersi perché gli viene detto di guardare nella directory errata / corrente).

Se questo è il tuo problema, puoi correggerlo in questo modo:

somevar=`ls -1d somedir/*`

Come puoi vedere ho usato l' -dinterruttore e anche /*alla fine del nome della directory e quindi i file sono stati aggiunti con successo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.