Al intentar descomprimir un archivo dentro del subdirectorio aparece el error: precaución: el nombre del archivo no coincide

Al intentar descomprimir un archivo dentro del subdirectorio aparece el error: precaución: el nombre del archivo no coincide

Entonces tengo una secuencia de comandos que itera sobre archivos zip, enumera su contenido con unzip -l $filename y busca coincidencias con el patrón (.*)report.xml, en este caso produce test0\report.xml

Pero cuando intenta descomprimir usando unzip -j $filename, aparececaution: filename not matched: test0\report.xml

Me detuve y probé manualmente en un archivo que enumera:

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

Entonces haciendo

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

me da el errorcaution: filename not matched: test0report.xml

Intenté llamar con \\para escapar, luego el mismo error pero dije test0\report.xmlen su lugar.

Intenté todo como \, o /, o //, así que no creo que se trate de un problema de escape de barra invertida.

Por favor ayuda.

Respuesta1

He recreado el problema en mi Kubuntu. El nombre del archivo era literalmente test0\report.xmly cuando lo hice

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

unzipdevuelto filename not matched: test0\report.xmlaunque creo que la cadena que obtuvo debería coincidir.

La herramienta admite algunos comodines. Pude descomprimir el archivo con este comando:

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

¿Un insecto? Supongo que tienes que agregar algo de lógica a tu script o simplemente descomprimirlo a mano cada vez que esta (con suerte, rara) situación vuelva a ocurrir. O aproveche estos comodines admitidos por unzipy en lugar de coincidir (.*)report.xmlen el script, dejemos unziphacer el trabajo:

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

información relacionada