2 votes

En essayant de décompresser un fichier dans un sous-répertoire, on obtient l'erreur suivante : caution : filename not matched (attention : le nom du fichier ne correspond pas)

J'ai donc un script qui parcourt les fichiers zip, liste leur contenu avec unzip -l $filename, et recherche les correspondances avec le motif (.*)report.xml Dans ce cas, on obtient test0\report.xml

Mais lorsqu'il essaie de décompresser en utilisant unzip -j $filename J'obtiens caution: filename not matched: test0\report.xml

Je me suis arrêté et j'ai essayé manuellement sur un fichier qui liste :

7285 2018-05-04 13:34 test0\report.xml

Ensuite, faire

unzip -j 2747693b-7027-44d3-98f4-a01f1ed139cf.zip test0\report.xml

L'erreur suivante s'affiche caution: filename not matched: test0report.xml

J'ai essayé d'appeler avec \\ pour y échapper, puis même erreur mais en disant test0\report.xml au lieu de cela.

J'ai tout essayé, comme \, ou /, ou //, donc je ne pense pas qu'il s'agisse d'un problème d'échappement des slashs.

Merci de m'aider.

4voto

Kamil Maciorowski Points 57004

J'ai recréé le problème dans mon Kubuntu. Le nom du fichier était littéralement test0\report.xml et quand je l'ai fait

unzip -j foo.zip test0\\report.xml

unzip retourné filename not matched: test0\report.xml bien que la chaîne qu'il obtient devrait correspondre, je pense.

L'outil prend en charge certains caractères génériques. J'ai pu décompresser le fichier avec cette commande :

unzip -j foo.zip 'test0?report.xml'

Un bug ? Je suppose que vous devez ajouter une certaine logique à votre script ou simplement dézipper à la main chaque fois qu'une telle situation (que j'espère rare) se reproduit. Ou profiter des caractères génériques supportés par unzip et au lieu de faire correspondre (.*)report.xml dans le script let unzip faire le travail :

unzip -j foo.zip '*report.xml'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X