2011-09-26 16:51:38 +0000 2011-09-26 16:51:38 +0000
86
86

Création d'une archive à partir d'un répertoire sans que le nom du répertoire soit ajouté à l'archive

J'ai la structure de dossier suivante :

  • racine
  • dossier1
  • dossier2
  • dossier3
  • 7za.exe

Je veux lancer l'outil de ligne de commande 7-zip pour compresser tous les fichiers de folder1 en un fichier zip appelé folder1.zip.

L'exécution de la commande suivante

7za.exe a -tzip folder1.zip folder1\*.*

produit un fichier zip comme prévu. Cependant, lorsque j'ouvre le fichier zip, il contient un dossier appelé folder1, et à l'intérieur de celui-ci se trouvent tous les fichiers qui se trouvaient dans ce dossier. Je ne veux pas que le nom du dossier soit ajouté au dossier zip, c'est-à-dire que je voudrais ajouter tous les fichiers dans un format de fichier “plat”.

Je ne veux pas non plus lancer récursivement l'outil de ligne de commande pour chaque fichier/dossier individuel.

Y a-t-il un commutateur qui offre cette fonctionnalité ?

Réponses (4)

141
141
141
2011-09-26 17:25:54 +0000

A partir du fichier 7-Zip Help :

a (Ajouter) commande

Ajoute des fichiers à l'archive.

Exemples

`7z a archive1.zip subdirA partir du fichier [ 7-Zip Help ]0x3& :

[ a (Ajouter) commande ]0x3&

Ajoute des fichiers à l'archive.

Exemples

ajoute tous les fichiers et sous-dossiers du sous-répertoire du dossier à l'archive archive1.zip. Les noms de fichiers dans archive contiendront le préfixe subdir.

7z a archive2.zip .\subdir\*

ajoute tous les fichiers et sous-dossiers du sous-dossier du dossier à archive2.zip. Les noms de fichiers dans l'archive ne contiendront pas le préfixe subdir.

`cd /D c:\dir1A partir du fichier [ 7-Zip Help ]0x3& :

[ a (Ajouter) commande ]0x3&

Ajoute des fichiers à l'archive.

Exemples

`7z a archive1.zip subdirA partir du fichier [ 7-Zip Help ]0x3& :

[ a (Ajouter) commande ]0x3&

Ajoute des fichiers à l'archive.

Exemples

ajoute tous les fichiers et sous-dossiers du sous-répertoire du dossier à l'archive archive1.zip. Les noms de fichiers dans archive contiendront le préfixe subdir.

7z a archive2.zip .\subdir\*

ajoute tous les fichiers et sous-dossiers du sous-dossier du dossier à archive2.zip. Les noms de fichiers dans l'archive ne contiendront pas le préfixe subdir.

`7z a c:\archive3.zip dir2\dir3A partir du fichier [ 7-Zip Help ]0x3& :

[ a (Ajouter) commande ]0x3&

Ajoute des fichiers à l'archive.

Exemples

`7z a archive1.zip subdirA partir du fichier [ 7-Zip Help ]0x3& :

[ a (Ajouter) commande ]0x3&

Ajoute des fichiers à l'archive.

Exemples

ajoute tous les fichiers et sous-dossiers du sous-répertoire du dossier à l'archive archive1.zip. Les noms de fichiers dans archive contiendront le préfixe subdir.

7z a archive2.zip .\subdir\*

ajoute tous les fichiers et sous-dossiers du sous-dossier du dossier à archive2.zip. Les noms de fichiers dans l'archive ne contiendront pas le préfixe subdir.

`cd /D c:\dir1A partir du fichier [ 7-Zip Help ]0x3& :

[ a (Ajouter) commande ]0x3&

Ajoute des fichiers à l'archive.

Exemples

`7z a archive1.zip subdirA partir du fichier [ 7-Zip Help ]0x3& :

[ a (Ajouter) commande ]0x3&

Ajoute des fichiers à l'archive.

Exemples

ajoute tous les fichiers et sous-dossiers du sous-répertoire du dossier à l'archive archive1.zip. Les noms de fichiers dans archive contiendront le préfixe subdir.

7z a archive2.zip .\subdir\*

ajoute tous les fichiers et sous-dossiers du sous-dossier du dossier à archive2.zip. Les noms de fichiers dans l'archive ne contiendront pas le préfixe subdir.

Les noms de fichiers dans l'archive c:\archive3.zip contiendront le préfixe dir2\dir3\, mais ils ne contiendront pas le préfixe c:\dir1.

Donc la commande que vous voudriez serait 7za.exe a folder1.zip .\folder1\*

Aussi, faites attention à la gestion des jokers par 7-Zip. Il ne traite pas *.* comme “tous les fichiers” – il signifie “tous les fichiers avec un point dans le nom de fichier”. Les fichiers sans extension ne seront pas pris en compte. Si vous voulez vraiment tous les fichiers, utilisez simplement * à la place.

Enfin, le paramètre -tzip n'est pas nécessaire si le nom de fichier de l'archive se termine par .zip. 7-Zip est assez intelligent pour déterminer le format que vous voulez dans ces cas-là. Il n'est nécessaire que si vous souhaitez une extension personnalisée (par exemple 7za.exe a -tzip foo.xpi <files> pour un module complémentaire de Mozilla).

2
2
2
2016-06-07 18:04:40 +0000

Cela a fonctionné pour moi

Considérez la structure des dossiers comme C:\Parent\SubFolders….. Et vous voulez créer le fichier parent.zip qui contiendra tous les fichiers et dossiers C:\Parent sans dossier parent [c'est-à-dire qu'il commencera à partir de SubFolders…..]

cd /D "C:\Parent"

"7z.exe" a Parent.zip "*.*" -r

Cela créera le fichier Parent.zip dans C:\Parent

1
1
1
2018-07-17 10:49:04 +0000

Juste pour développer la réponse acceptée (je n'ai pas pu ajouter de commentaire) :

Sous Linux, ajouter “*” n'a pas fonctionné pour moi, alors j'ai fini par concocter une ligne de commande plus verbeuse qui a donné le résultat souhaité :

curr_dir=$(pwd); \ 
cd source_code/lambda/ ; \
7z a ../../lambda.zip .; \
cd $curr_dir \
unset curr_dir

===========

explication du script :

  • enregistrer le chemin du répertoire actuel pour l'utiliser plus tard ;
  • naviguer vers le répertoire qui doit être archivé ;
  • créer une archive (notez ‘.’ (point) à la fin) ;
  • revenir au répertoire original ;
  • se débarrasser de la variable qui stockait le chemin du répertoire original

J'espère que cela pourra être utile à quelqu'un.

-1
-1
-1
2017-03-17 05:23:32 +0000

Par exemple : Dossier/sous-dossier1, Dossier/sous-dossier2

sélectionner tous les sous-dossiers > clic droit puis créer une archive > sélectionner n'importe quel format

*Le nom de l'archive serait le dossier parent…

Simple, n'est-ce pas ?