336 votes

Commande de décompression 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, potentiellement en écrasant certains fichiers.

Le problème est que la commande unzip demande une confirmation :
remplacer jsp/extension/add-aspect.jsp? [o]ui, [n]on, [T]out, [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/archive.zip

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

1 votes

unzip -o CHEMIN_DU_FICHIER_ZIP, fonctionne comme un modificateur.

24 votes

-o l'option doit être utilisée avant tout autre argument. Exemple: dézipper -o /chemin/vers/archive.zip -d /dossier_destination

1 votes

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

70voto

Prateek Shankar Points 661

Si vous avez besoin de décompresser pour 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 paquet.

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 => encore plus silencieux)
-o  écraser les fichiers SANS demander confirmation

Utilisez celui que vous estimez le plus adapté à 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 m".

1 votes

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

0 votes

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

1voto

Pavn Points 11

Essayez d'utiliser

dézipper -o  -d 

-o permet de remplacer les fichiers existants, il est préférable d'utiliser dézipper --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