Tentando descompactar um arquivo, 'Nome do arquivo não corresponde' quando o diretório existe

32

Ao tentar descompactar um arquivo chamado Joomla_3.0.3-Stable-Full_Package.zip no diretório chamado joomla , recebo o nome do arquivo que não corresponde. Por que é que?

[root @ Feddy Joomla] # descompacte -Z Joomla_3.0.3-Stable-Full_Package.zip / opt / lampp / htdocs / joomla /
Arquivo: Joomla_3.0.3-Stable-Full_Package.zip
cuidado: nome do arquivo não corresponde: / opt / lampp / htdocs / joomla /

Aqui está o elenco da tela do diretório:

elenco da tela do joomla

(O diretório joomla está vazio)

Suhail Gupta
fonte

Respostas:

36

Você também pode obter isso ao tentar especificar os arquivos para descompactar e usar um caractere curinga. Por exemplo:

unzip -o somearchive.zip somedir/*

O que pode acontecer é que o bash se expande somedir/*para um diretório existente real e os arquivos que ele contém. Essa lista é então passada para descompactar e tenta encontrar esses arquivos no arquivo zip.

Para evitar esse comportamento, basta escapar do *seguinte modo:

unzip -o somearchive.zip somedir/\*

Ou, coloque os arquivos para extrair entre aspas duplas:

unzip -o somearchive.zip "somedir/*"
sjbotha
fonte
1
Qual é a bandeira -o?
Amalgovinus
1
A opção -o é substituir arquivos existentes sem aviso prévio.
sjbotha
Você também pode obter o erro 'Nome do arquivo não correspondida' quando a sua -obandeira está no lugar errado: unzip -o ARCHIVE_NAME.zipé bom quando unzip ARCHIVE_NAME.zip -oé ruim
Jaymon
Voto negativo, porque, embora essa resposta faça afirmações verdadeiras, elas não abordam o problema do OP, que é um mal-entendido sobre o argumento de descompactar.
Ernest Friedman-Hill
Eu tive esse erro, encontrei esta página e esta resposta resolveu meu problema.
Derek Bennett
16

O argumento do nome do arquivo após o nome do arquivo especifica um arquivo a ser extraído. Use -dpara especificar o diretório de destino:

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

Além disso, -Zé usado para consultar o arquivo, não extrair.

choroba
fonte
não entendi você. Você pode por favor escrever o comando
Suhail Gupta
1
@SuhailGupta:, unzip -d /opt/lampp/htdocs/joomla/ Joomla_3.0.3-Stable-Full_Package.zipou seja -Z, solte , adicione -d.
choroba
2

Este comando exato funcionou para mim:
unzip -o archive.zip -d /Users/current/Dev/tools/

Observe a combinação de opções -o& -d(destino / trajetória de inflação).

MusH
fonte
trabalhou para mim também.
Manikandan Arunachalam 28/11
2

Você também receberá esse erro se tentar descompactar um diretório inteiro de zips com um único comando, como:

unzip *.zip

Encontrei a solução em outro site. O *símbolo deve ser escapado; portanto, você deve executar isso:

unzip \*.zip

em vez de.

dfasdfg
fonte
oh .. parece que os símbolos de escape não são permitidos, mas tenho certeza de que todos sabem o que são.
dfasdfg 10/10
Isso não faz sentido para mim, pelo menos não se você estiver falando sobre Unix / Linux. (Pode fazer sentido se você estiver falando do Windows, mas esta pergunta é sobre o Fedora Linux.) E, na medida em que faz sentido (potencialmente), parece ser uma duplicata da resposta de  sjbotha . Você pode explicar o que você quer dizer com mais clareza?
G-Man diz 'Reinstate Monica'
Eu estava falando sobre o comando descompactar que eu usei em um sistema Linux. Eu tinha um diretório com muitos arquivos zip e tentei extraí-los todos com descompactar * .zip e obtive esse erro porque o * não escapou. você também pode estar certo sobre isso não pertencer aqui, já que o op apenas tentou extrair um arquivo zip e eu estava tentando extrair muitos com um comando.
dfasdfg 18/11
1

Tentar descompactar um arquivo compactado com um novo nome gerará a exceção 'Nome do arquivo não corresponde'. Para solucionar isso, mova o arquivo zip para o diretório de destino

mv the_file.zip somedir/

navegue para o diretório de destino

cd somedir/

a partir daí, execute o comando descompactar sem o argumento do nome do arquivo de destino

unzip the_file.zip

Tudo vai funcionar bem.

portanto, neste caso, os comandos devem ser

[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
fonte