Essayer de décompresser un fichier, 'Filename not matched' lorsque le répertoire existe

32

En essayant de décompresser un fichier nommé Joomla_3.0.3-Stable-Full_Package.zip dans le répertoire nommé joomla, j'obtiens un nom de fichier qui ne correspond pas. Pourquoi donc?

[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
attention: nom de fichier non apparié: / opt / lampp / htdocs / joomla /

Voici la copie d'écran du répertoire:

joomla screen cast

(Le répertoire joomla est vide)

Suhail Gupta
la source

Réponses:

36

Vous pouvez également l'obtenir en essayant de spécifier les fichiers à décompresser et en utilisant un caractère générique. Par exemple:

unzip -o somearchive.zip somedir/*

Ce qui peut arriver, c'est que bash se développe somedir/*en un répertoire existant et les fichiers qu'il contient. Cette liste est ensuite passée à décompresser et il essaie de trouver ces fichiers dans le fichier zip.

Pour éviter ce comportement, échappez simplement *à ceci:

unzip -o somearchive.zip somedir/\*

Ou, mettez les fichiers à extraire entre guillemets:

unzip -o somearchive.zip "somedir/*"
sjbotha
la source
1
Quel est le drapeau -o?
Amalgovinus
1
L'option -o consiste à remplacer les fichiers existants sans invite.
sjbotha
Vous pouvez également obtenir l'erreur «Filename not matched» lorsque votre -odrapeau est au mauvais endroit: unzip -o ARCHIVE_NAME.zipest bon pendant qu'il unzip ARCHIVE_NAME.zip -oest mauvais
Jaymon
Downvoting parce que, bien que cette réponse fasse de véritables déclarations, ils ne traitent pas le problème du PO, ce qui est un malentendu sur les arguments à décompresser.
Ernest Friedman-Hill
J'ai eu cette erreur, j'ai trouvé cette page et cette réponse a résolu mon problème.
Derek Bennett
16

L'argument du nom de fichier après le nom de l'archive spécifie un fichier à extraire. Utilisez -dpour spécifier le répertoire cible:

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

De plus, -Zest utilisé pour interroger l'archive, pas pour extraire.

choroba
la source
ne vous a pas. Pouvez-vous s'il vous plaît écrire la commande
Suhail Gupta
1
@SuhailGupta:, unzip -d /opt/lampp/htdocs/joomla/ Joomla_3.0.3-Stable-Full_Package.zipc'est-à-dire supprimer -Z, ajouter -d.
choroba
2

Cette commande exacte a fonctionné pour moi:
unzip -o archive.zip -d /Users/current/Dev/tools/

Remarquez la combinaison d'options -o& -d(destination / chemin d'inflation).

Bouillie
la source
travaillé pour moi aussi.
Manikandan Arunachalam
2

Vous obtiendrez également cette erreur si vous essayez de décompresser un répertoire entier de zips avec une seule commande, comme:

unzip *.zip

J'ai trouvé la solution sur un autre site. Le *symbole doit être échappé, vous devez donc l'exécuter à la place:

unzip \*.zip

au lieu.

dfasdfg
la source
oh .. on dirait que les symboles d'échappement ne sont pas autorisés mais je suis sûr que tout le monde sait ce que c'est.
dfasdfg
Cela n'a aucun sens pour moi, du moins pas si vous parlez d'Unix / Linux. (Cela peut être logique si vous parlez de Windows, mais cette question concerne Fedora Linux.) Et, dans la mesure où cela a du sens (potentiellement), cela semble être un doublon de la réponse de  sjbotha . Pouvez-vous expliquer ce que vous voulez dire plus clairement?
G-Man dit «Réinstalle Monica»
je parlais de la commande de décompression que j'ai utilisée sur un système Linux. j'avais un répertoire avec de nombreux fichiers zip et j'ai essayé de les extraire tous avec unzip * .zip et j'ai obtenu cette erreur parce que le * n'était pas échappé. vous avez peut-être aussi raison de ne pas appartenir ici car l'op a juste essayé d'extraire un fichier zip et j'essayais d'en extraire plusieurs avec une seule commande.
dfasdfg
1

Essayer de décompresser un fichier zippé avec un nouveau nom déclenchera l'exception «Filename not matches». Pour contourner ce problème, déplacez le fichier zip vers le répertoire de destination

mv the_file.zip somedir/

accédez au répertoire de destination

cd somedir/

à partir de là, exécutez la commande de décompression sans l'argument de nom de fichier de destination

unzip the_file.zip

Tout fonctionnera bien.

dans ce cas, les commandes doivent être

[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
la source