尝试解压子目录中的文件时出现错误:警告:文件名不匹配

尝试解压子目录中的文件时出现错误:警告:文件名不匹配

因此,我有一个脚本,它迭代 zip 文件,使用 unzip -l $filename 列出其内容,并查找与 pattern 匹配的内容(.*)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

unzipfilename not matched: test0\report.xml尽管我认为它得到的字符串应该匹配,但它还是返回了。

该工具支持一些通配符。我能够使用以下命令解压缩文件:

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

有错误?我猜你必须在脚本中添加一些逻辑,或者每当这种情况(希望很少见)再次发生时手动解压。或者利用脚本中支持的这些通配符unzip,而不是匹配,让脚本完成这项工作:(.*)report.xmlunzip

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

相关内容