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

Suh*_*pta 44 linux fedora zip terminal

在尝试解压缩名为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/
Run Code Online (Sandbox Code Playgroud)

这是目录的屏幕截图:

joomla 投屏

(joomla目录为空)

sjb*_*tha 49

您也可以在尝试指定要解压缩的文件并使用通配符时获得此信息。例如:

unzip -o somearchive.zip somedir/*
Run Code Online (Sandbox Code Playgroud)

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

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

unzip -o somearchive.zip somedir/\*
Run Code Online (Sandbox Code Playgroud)

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

unzip -o somearchive.zip "somedir/*"
Run Code Online (Sandbox Code Playgroud)

  • 投反对票是因为,尽管这个答案做出了真实的陈述,但它们没有解决OP所存在的问题,这是对解压参数的误解。 (6认同)
  • -o 标志是什么? (2认同)

cho*_*oba 24

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

Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
    ...
    -d  extract files into exdir
Run Code Online (Sandbox Code Playgroud)

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

  • @SuhailGupta:`unzip -d /opt/lampp/htdocs/joomla/ Joomla_3.0.3-Stable-Full_Package.zip`,即删除`-Z`,添加`-d`。 (2认同)

小智 22

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

unzip *.zip
Run Code Online (Sandbox Code Playgroud)

我在另一个网站上找到了解决方案。该*符号必须转义,所以你应该用这个来代替:

unzip \*.zip
Run Code Online (Sandbox Code Playgroud)

反而。

  • 这对我来说没有任何意义,至少如果你谈论的是 Unix / Linux 的话。 (如果你谈论的是 Windows,这可能是有意义的,但这个问题是关于 Fedora Linux 的。)而且,就它确实有意义(可能)而言,它似乎是 [sjbotha 的答案](https: //superuser.com/q/563215/354511#611480)。你能更清楚地解释你的意思吗? (2认同)

小智 11

这个确切的命令对我有用:
unzip -o archive.zip -d /Users/current/Dev/tools/

-o注意选项& -d(目的地/通货膨胀路径)的组合。