尝试解压文件,但目录存在时出现“文件名不匹配”

尝试解压文件,但目录存在时出现“文件名不匹配”

当我尝试将名为的文件解压Joomla_3.0.3-Stable-Full_Package.zip到名为的目录中时joomla,出现文件名不匹配的情况。这是为什么?

# unzip -Z Joomla_3.0.3-Stable-Full_Package.zip /opt/lampp/htdocs/joomla/  
Archive:  Joomla_3.0.3-Stable-Full_Package.zip  
caution: filename not matched:  /opt/lampp/htdocs/joomla/

以下是该目录的屏幕截图:

joomla 屏幕投射

(joomla 目录是空的)

答案1

尝试指定要解压缩的文件并使用通配符时,也会出现此错误。例如:

unzip -o somearchive.zip somedir/*

可能发生的情况是,bash 展开somedir/*为实际存在的目录及其包含的文件。然后,该列表被传递给 unzip,并尝试在 zip 文件中找到这些文件。

为了防止这种行为,只需*像这样逃避:

unzip -o somearchive.zip somedir/\*

或者,将要提取的文件放在双引号中:

unzip -o somearchive.zip "somedir/*"

答案2

如果您尝试使用单个命令解压缩整个目录的 zip 文件,也会收到该错误,例如:

unzip *.zip

我在另一个网站上找到了解决方案。该*符号必须转义,因此您应该运行以下命令:

unzip \*.zip

反而。

答案3

档案名称后的文件名参数指定要提取的文件。用于-d指定目标目录:

Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
    ...
    -d  extract files into exdir

此外,-Z用于查询档案,而不是提取。

答案4

使用 -d 运算符

unzip Joomla_3.0.3-Stable-Full_Package.zip -d /opt/lampp/htdocs/joomla

相关内容