Попытка распаковать файл внутри подкаталога приводит к ошибке: Внимание: имя файла не совпадает

Попытка распаковать файл внутри подкаталога приводит к ошибке: Внимание: имя файла не совпадает

Итак, у меня есть скрипт, который перебирает zip-файлы, выводит список их содержимого с помощью unzip -l $filename и ищет совпадения с шаблоном (.*)report.xml, в данном случае выдает test0\report.xml

Но когда он пытается распаковать с помощью unzip -j $filename, я получаюcaution: filename not matched: test0\report.xml

Я остановился и попробовал вручную на файле, в котором перечислено:

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

Затем делаем

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

Выдает мне ошибкуcaution: filename not matched: test0report.xml

Я попробовал позвонить, \\чтобы избежать этого, но ошибка та же, но test0\report.xmlвместо этого написано.

Я перепробовал все, что угодно, например \, или /, или //, поэтому не думаю, что это проблема экранирования обратной косой черты.

Пожалуйста помоги.

решение1

Я воссоздал проблему в моем Kubuntu. Имя файла было буквально test0\report.xmlи когда я это сделал

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

unzipвернул filename not matched: test0\report.xml, хотя, я думаю, полученная строка должна совпадать.

Инструмент поддерживает некоторые подстановочные знаки. Мне удалось распаковать файл с помощью этой команды:

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

Ошибка? Думаю, вам придется добавить немного логики в свой скрипт или просто вручную распаковывать всякий раз, когда такая (надеюсь, редкая) ситуация снова возникнет. Или воспользуйтесь этими подстановочными знаками, поддерживаемыми unzipи вместо сопоставления (.*)report.xmlв скрипте пусть unzipделает работу:

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

Связанный контент