web-dev-qa-db-fra.com

Ajout de fichiers décompressés à un dossier zippé

J'essaie d'ajouter des fichiers décompressés à un dossier déjà compressé existant, par exemple new folder.Zip. Est-il possible d'utiliser Zip -r new folder.Zip après y avoir ajouté des fichiers décompressés? Cette commande compressera-t-elle le dossier? Y a-t-il une alternative pour ce faire?

42
boo na

Utilisez l'indicateur de mise à jour: -u

Exemple:

Zip -ur existing.Zip myFolder

Cette commande compressera et ajoutera myFolder (et son contenu) au existing.Zip.


tilisation avancée:

L'indicateur de mise à jour compare en fait les fichiers entrants avec ceux existants et ajoutera de nouveaux fichiers ou mettra à jour les fichiers existants.

Par conséquent, si vous souhaitez ajouter/mettre à jour un sous-répertoire spécifique dans le fichier Zip, mettez simplement à jour la source comme vous le souhaitez, puis recompressez la source entière avec le -u drapeau. Seuls les fichiers modifiés seront zippés.

Si vous n'avez pas accès aux fichiers source, vous pouvez décompresser le fichier Zip, puis mettre à jour les fichiers souhaités, puis recompresser avec le -u drapeau. Encore une fois, seuls les fichiers modifiés seront compressés.

Exemple:

Structure source d'origine


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt

Structure source mise à jour


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt 
│   │   ├── logs4.txt <-- NEW FILE 

tilisation

$ Zip -ur existing.Zip ParentDir 
> updating: ParentDir/ChildDir/Logs (stored 0%)
>   adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)
56
Ethan Strider

Je pense que vous pouvez ajouter des fichiers en utilisant cette commande:

Zip -r zipfile.Zip newfile.txt newfile1.txt

Le -r L'option de la commande Zip vous permet d'ajouter des fichiers.

1
ryekayo

J'ai utilisé avec succès la commande Zip. avec l'option agrandir (-g), afin d'ajouter un sous-dossier folder1/folder2 contenant les fichiers fileA.txt et fileB.txt:

Zip -gr folder.Zip folder1/folder2

-r signifie recurse dir.

D'après ma compréhension, -g devrait augmenter les fichiers Zip, pas créer un nouveau fichier Zip (qui peut être utile avec de très grandes archives Zip). En cas de problème, vous pouvez d'abord essayer de créer des sous-dossiers dans le dossier.Zipez avec (par exemple):

Zip -g folder.Zip folder1
Zip -g folder.Zip folder2
0
Fabiano Tarlao

L'indicateur -u fonctionne pour les fichiers

Zip -ur Zip_to_upload.Zip file_to_add.txt

Cordialement

0
David Lopes

Si vous avez beaucoup de fichiers au même endroit avec votre archive Zip et que vous souhaitez tous les copier dans l'archive, vous pouvez faire:

Zip -ur zipfile.Zip !(zipfile.Zip)

Cela met à jour votre fichier Zip (le -u option) récursivement (-r option) avec tous les fichiers trouvés sauf le fichier Zip lui-même (! est la négation du fichier zip)

Ensuite, vous pouvez simplement supprimer tous les fichiers sauf le fichier Zip en suivant la même règle ci-dessus:

rm !(zipfile.Zip)
0
despina