Tentando descompactar um arquivo dentro do subdiretório recebendo erro: cuidado: nome do arquivo não corresponde

Tentando descompactar um arquivo dentro do subdiretório recebendo erro: cuidado: nome do arquivo não corresponde

Então, eu tenho um script que itera sobre arquivos zip, lista seu conteúdo com unzip -l $filename e procura correspondências com pattern (.*)report.xml, neste caso produz test0\report.xml

Mas quando ele tenta descompactar usando unzip -j $filename, recebocaution: filename not matched: test0\report.xml

Parei e tentei manualmente em um arquivo que lista:

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

Então fazendo

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

Me dá o errocaution: filename not matched: test0report.xml

Tentei ligar \\para escapar, mas o mesmo erro, mas dizendo test0\report.xml.

Eu tentei de tudo como \, ou /, ou // então não acho que isso seja um problema de escape de barra invertida.

Por favor ajude.

Responder1

Eu recriei o problema no meu Kubuntu. O nome do arquivo era literalmente test0\report.xmle quando o fiz

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

unzipretornou filename not matched: test0\report.xmlembora a string obtida deva corresponder, eu acho.

A ferramenta oferece suporte a alguns curingas. Consegui descompactar o arquivo com este comando:

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

Um inseto? Eu acho que você precisa adicionar alguma lógica ao seu script ou apenas descompactar manualmente sempre que tal situação (esperançosamente rara) ocorrer novamente. Ou aproveite esses curingas suportados por unzipe, em vez de corresponder (.*)report.xmlno script, deixe unzipo trabalho:

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

informação relacionada