Намагаючись розпакувати файл, "Ім'я файлу не відповідає", коли існує каталог


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/*до фактично існуючого dir та файлів, які він містить. Потім цей список передається в розпакування, і він намагається знайти ці файли у zip-файлі.

Щоб запобігти такій поведінці, просто уникайте *подібного:

unzip -o somearchive.zip somedir/\*

Або поставте файли для вилучення у подвійних лапки:

unzip -o somearchive.zip "somedir/*"

1
Що прапор -o?
Амальговінус

1
Варіант -o - це перезаписати наявні файли без запиту.
sjbotha

Ви також можете отримати помилку " -ounzip -o ARCHIVE_NAME.zipunzip ARCHIVE_NAME.zip -o
Ім'я

Відмовляючись від того, що, хоча ця відповідь дає правдиві твердження, вони не стосуються проблеми, яку має ОП, а це непорозуміння щодо аргументів, які слід розкрити.
Ернест Фрідман-Хілл

У мене була ця помилка, знайшла цю сторінку, і ця відповідь вирішила мою проблему.
Дерек Беннетт

16

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

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

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


не зрозумів тебе. Чи можете ви, будь ласка, написати команду
Suhail Gupta

1
@SuhailGupta:, unzip -d /opt/lampp/htdocs/joomla/ Joomla_3.0.3-Stable-Full_Package.zipтобто упустити -Z, додати -d.
choroba

2

Ця точна команда працювала для мене:
unzip -o archive.zip -d /Users/current/Dev/tools/

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


працював і для мене.
Манікандан Аруначалам

2

Ви також отримаєте цю помилку, якщо спробуєте розпакувати цілу папку зіпсів за допомогою однієї команди, наприклад:

unzip *.zip

Я знайшов рішення на іншому сайті. *Символ повинен бути екранований, так що ви повинні запустити замість цього:

unzip \*.zip

замість цього.


Ой, схоже, символи втечі не дозволяються, але я впевнений, що всі знають, що це.
dfasdfg

Це не має для мене сенсу, принаймні, якщо ви говорите про Unix / Linux. (Це може мати сенс, якщо ви говорите про Windows, але це питання стосується Fedora Linux.) І, наскільки це має сенс (потенційно), це здається дублікатом відповіді  sjbotha . Чи можете ви пояснити, що ви маєте на увазі більш чітко?
G-Man каже "Відновити Моніку"

я говорив про команду unzip, яку я використовував у системі Linux. У мене був каталог з багатьма поштовими файлами, і я спробував витягнути їх усі 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.