Попытка распаковать файл, «Имя файла не совпадает», когда каталог существует

32

При попытке распаковать файл с именем Joomla_3.0.3-Stable-Full_Package.zip в каталог с именем joomla, я получаю имя файла не совпадает. Почему это?

[root @ Feddy Joomla] # unzip -Z Joomla_3.0.3-Stable-Full_Package.zip / opt / lampp / htdocs / joomla /
Archive: Joomla_3.0.3-Stable-Full_Package.zip
Внимание: имя файла не соответствует: / opt / lampp / HTDOCS / Joomla /

Вот скриншот каталога:

Joomla скрининг

(Каталог Joomla пуст)

Сухай гупта
источник

Ответы:

36

Вы также можете получить это, когда пытаетесь указать файлы для распаковки и использовать подстановочный знак. Например:

unzip -o somearchive.zip somedir/*

Может случиться так, что bash расширится somedir/*до фактического существующего каталога и файлов, которые он содержит. Затем этот список передается для распаковки, и он пытается найти эти файлы в zip-файле.

Чтобы предотвратить такое поведение, просто избегайте *так:

unzip -o somearchive.zip somedir/\*

Или поместите файлы для извлечения в двойные кавычки:

unzip -o somearchive.zip "somedir/*"
sjbotha
источник
1
Что за флаг -o?
Амальговинус
1
Опция -o позволяет перезаписать существующие файлы без запроса.
sjbotha
Вы также можете получить сообщение об ошибке «Имя файла не совпадает», если ваш -oфлаг не в том месте: unzip -o ARCHIVE_NAME.zipхорошо, а unzip ARCHIVE_NAME.zip -oплохо
Jaymon
Понижающее голосование, потому что, хотя этот ответ дает правдивые утверждения, они не решают проблему, которую имеет ОП, что является неправильным пониманием этих аргументов для распаковки.
Эрнест Фридман-Хилл
У меня была эта ошибка, я нашел эту страницу, и этот ответ решил мою проблему.
Дерек Беннет
16

Аргумент имени файла после имени архива указывает файл для извлечения. Используйте -dдля указания целевого каталога:

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

Более того, -Zиспользуется для запроса архива, а не для извлечения.

choroba
источник
не понял тебя Можете ли вы написать команду
Сухаил Гупта
1
@SuhailGupta: unzip -d /opt/lampp/htdocs/joomla/ Joomla_3.0.3-Stable-Full_Package.zipбросить -Z, добавить -d.
Чороба
2

Эта точная команда работала для меня:
unzip -o archive.zip -d /Users/current/Dev/tools/

Обратите внимание на комбинацию параметров -o& -d(пункт назначения / путь инфляции).

кашица
источник
работал для меня тоже.
Маникандан Аруначалам
2

Вы также получите эту ошибку, если попытаетесь разархивировать весь каталог zips с помощью одной команды, например:

unzip *.zip

Я нашел решение на другом сайте. *Символ должен быть экранирован, так что вы должны запустить вместо этого:

unzip \*.zip

вместо.

dfasdfg
источник
о ... похоже, что escape-символы недопустимы, но я уверен, что все знают, что это такое.
dfasdfg
Это не имеет никакого смысла для меня, по крайней мере, если вы говорите о Unix / Linux. (Это может иметь смысл, если вы говорите о Windows, но этот вопрос касается Fedora Linux.) И, в той мере, в которой это имеет смысл (потенциально), он кажется дубликатом  ответа sjbotha . Можете ли вы объяснить, что вы имеете в виду более четко?
G-Man говорит: «Восстанови Монику»
я говорил о команде unzip, которую я использовал в системе linux. у меня был каталог со многими zip-файлами, и я попытался извлечь их все с помощью unzip * .zip и получил эту ошибку, потому что * не удалось избежать. Вы также можете быть правы насчет того, что это не принадлежит здесь, поскольку операционная система только что пыталась извлечь один zip-файл, а я пытался извлечь много с помощью одной команды.
dfasdfg
1

Попытка разархивировать заархивированный файл с новым именем вызовет исключение «Имя файла не совпадает». Чтобы обойти это, переместите ZIP-файл в каталог назначения.

mv the_file.zip somedir/

перейти в каталог назначения

cd somedir/

оттуда выполните команду unzip без аргумента имени файла назначения

unzip the_file.zip

Все будет хорошо работать.

так что в этом случае команды должны быть

[root@Feddy Joomla]# mv Joomla_3.0.3-Stable-Full_Package.zip /opt/lampp/htdocs/joomla/
[root@Feddy Joomla]# cd /opt/lampp/htdocs/joomla/
[root@Feddy Joomla]/opt/lampp/htdocs/joomla# unzip Joomla_3.0.3-Stable-Full_Package.zip
Tenflex
источник