Tentando descompactar um arquivo dentro do diretório sub recebendo erro: cuidado: nome do arquivo não correspondido

0

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

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

Eu 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 erro caution: filename not matched: test0report.xml

Eu tentei chamar com \ para escapar, depois o mesmo erro, mas dizendo test0\report.xml .

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

Por favor ajude.

    
por Carmageddon 08.06.2018 / 19:35

1 resposta

0

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

unzip -j foo.zip test0\report.xml

unzip retornou filename not matched: test0\report.xml embora a string tenha sido compatível, eu acho.

A ferramenta suporta alguns curingas. Consegui descompactar o arquivo com este comando:

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

Um bug? Eu acho que você tem que adicionar alguma lógica ao seu script ou apenas descompactar manualmente sempre que essa situação (esperançosamente rara) ocorrer novamente. Ou aproveite esses curingas suportados por unzip e, em vez de corresponder a (.*)report.xml no script, deixe unzip fazer o trabalho:

unzip -j foo.zip '*report.xml'
    
por 08.06.2018 / 19:58