336 votes

Commande unzip Linux : Option pour forcer l'écrasement ?

Je suis en train d'écrire un script shell qui décompresse un fichier ZIP dans une hiérarchie de fichiers existante, en écrasant éventuellement certains des fichiers.

Le problème est que la commande unzip demande une confirmation:
remplacer jsp/extension/add-aspect.jsp? [o]ui, [n]on, [T]ous, [A]ucun, [r]enommer: o

Y a-t-il une option pour forcer unzip à écraser les fichiers?

491voto

GuHa Points 55

Selon http://www.manpagez.com/man/1/unzip/, vous pouvez utiliser l'option -o pour écraser les fichiers :

unzip -o /chemin/vers/larchive.zip

Notez que -o, comme la plupart des options de unzip, doit être placé avant le nom de l'archive.

1 votes

unzip -o ZIP_PATH, fonctionne comme un modificateur.

24 votes

L'option -o doit être utilisée avant tout autre argument. Example : unzip -o /chemin/vers/archives.zip -d /repertoire_destination

1 votes

@FelikZ Merci pour les détails, j'ai ajouté ton exemple (simplifié) à la réponse

70voto

Prateek Shankar Points 661

Si vous avez besoin de décompresser afin de remplacer uniquement les nouveaux fichiers, vous pouvez utiliser

unzip -f archive.zip

Mais pour référence future, vous pouvez simplement taper

unzip 

et vous obtiendrez une liste des arguments pour ce package.

Les arguments possibles, pour ce cas, sont :

-f  rafraîchir les fichiers existants, en créer aucun
-n  ne pas écraser les fichiers existants
-q  mode silencieux (-qq => plus silencieux)
-o  écraser les fichiers SANS demander

Utilisez celui qui correspond le mieux à vos besoins.

9 votes

+1, J'aime la version plus subtile et amicale de l'approche "voici comment rtfm pour le contexte, mais voici la section pertinente de la m".

1 votes

Aussi consulté l'aide, mais n'ai pas compris la différence entre -u mise à jour des fichiers, créer si nécessaire et -f rafraîchir les fichiers existants, ne crée pas ?

0 votes

// , La différence réside dans le comportement si le fichier n'existe pas

1voto

Pavn Points 11

Essayez d'utiliser

unzip -o  -d 

-o remplace les fichiers existants, il est préférable d'utiliser unzip --help

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X