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

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

но когда он пытается распаковать с помощью unzip -j $filename, Я caution: filename not matched: test0report.xml

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

7285 2018-05-04 13:34 test0report.xml

затем делаю

unzip -j 2747693b-7027-44d3-98f4-a01f1ed139cf.zip test0report.xml

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

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

Я пробовал все, как , Или/, Или // так что я не думаю, что это назад Слэш побега вопрос.

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

5
задан Carmageddon
источник

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'
0
отвечен Kamil Maciorowski 2018-06-08 18:03:44
источник

Другие вопросы bash linux unzip zip