"Avertissement zip: nom non conforme" lors de la compression d'un répertoire

19

J'ai un dossier d'environ 180 Go, je dois le compresser comme:

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

Mais ça dit:

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

Alors, comment dois-je faire cela? Sur une autre note, archive.zipn'existe pas, mais j'essaye de le créer.

Afficher un nom
la source
Essayezzip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Réponses:

7

Votre commande doit être:

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

La page de manuel ( man zip), montre que vous devriez avoir:

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

De plus, l' -roption de récursivité est fortement recommandée par rapport au glob de shell "*" pour cela.

Danny Staple
la source
Un autre écueil lié est une simple erreur de frappe (par exemple, si vous avez copié la commande d'un script à un autre). Par exemple, au lieu de winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*, vous tapez accidentellement winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Notez l'extra Output.zip... facile à faire!
AlainD
23

Cette erreur peut également être provoquée par la compression de liens symboliques dans l'arborescence de répertoires.

Si ceux-ci n'ont pas de destinations correctes (peut-être parce que le répertoire a été déplacé ou copié d'ailleurs), zip tentera de suivre le lien symbolique pour archiver le fichier cible.

Vous pouvez éviter cela (et également obtenir l'effet que vous souhaitez probablement de toute façon, qui n'est pas d'archiver plusieurs copies du fichier) en utilisant l' option -y(ou --symlinks).

Bob Eager
la source
0

Utilisez l'indicateur récursif ( -r) au lieu de glob ( *) pour faire correspondre les fichiers à compresser. De plus, spécifiez d'abord le nom de l'archive, puis donnez la liste des fichiers:

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

J'ai également eu cette erreur dans le passé pour une raison différente que le -rcommutateur ne peut pas résoudre. Ce qui s'est passé, c'est que j'ai basé des fichiers à ajouter au zip avec le code / variable bash suivant

somevar=`ls -1 somedir`

Le problème est qu'il lsrépertorie simplement les fichiers comme s'ils se trouvaient dans le répertoire en cours et c'est pourquoi zipse plaint (essentiellement les fichiers n'existent pas pour compresser car il est dit de regarder dans le mauvais répertoire / actuel).

Si c'est votre problème, vous pouvez le corriger comme suit:

somevar=`ls -1d somedir/*`

Comme vous pouvez le voir, j'ai utilisé le -dcommutateur et également /*à la fin du nom du répertoire, puis les fichiers ont été ajoutés avec succès.

Areeb Soo Yasir
la source