Zip le contenu d'un dossier sans inclure le dossier lui-même


78

J'ai un répertoire appelé folderqui ressemble à ceci:

folder
      -> root_folder
                    -> some files

Je veux compresser ce répertoire zipped_dir, j'ai essayé:

zip -r zipped_dir.zip folder/*

Mais cela génère un ZIP qui ressemble à ceci:

zipped_dir
          -> folder
                   -> root_folder
                                 -> some files

en d'autres termes, cela inclut le répertoire dont je veux compresser le contenu. Comment puis-je exclure ce répertoire parent du ZIP sans rien déplacer?

IE je voudrais ce résultat final:

zipped_dir
          -> root_folder
                        -> some files

Réponses:


75

Essayez d'utiliser cette commande (vous aurez l'idée)

cd folder; zip -r ../zipped_dir.zip *

Peut-être y a-t-il un autre moyen, mais c'est le plus rapide et le plus simple pour moi :)


2
cela fonctionne parfaitement en faisant ce tour. note: ça va faire un chroot .
loretoparisi

équivalent:zip -r zipped_dir.zip folder/*
Tobias Kolb

5
@TobiasKolb, peut-être que vous ne lisez pas la question. OP ne veut pas avoir de dossier dans le chemin enregistré dans zip.
Romeo Ninov

2
Semble la seule façon de faire
Robert

1
@PabloDiaz, dans mon exemple cd -fera le travail (une seule commande) :) Oucd ..
Romeo Ninov

31

Utilisation -j; par exemple:zip -r -j zipped_dir.zip folder/*

Cela ne compressera pas 'root_folder'.


7
Je reçois une erreur avec celui-ci si j'ai deux fichiers du même nom.
Chris

11
OP veut probablement que seul le répertoire parent soit supprimé, pas tous.
tokland

Encore crée des répertoires zip -r -j package.zip ./dist/static/*rend la structure des archivesdist/static/myfiels
deathangel908

4
il aplatit également les fichiers du répertoire enfant.
Sumit Ramteke

3
l' -joption élimine toutes les informations de répertoire et ne sauvegarde que les fichiers. C'est-à-dire, pour stocker tous les fichiers dans un répertoire d'une manière "plate".
Robert

5
zip -r -D zipped.zip *

-D indique à zip de ne pas créer de répertoires.


0

C'est ce qui fonctionne pour moi:

7z a zipped.zip ./rootDir/*

Cela créera une ziparchive avec root: tous les fichiers / répertoires à l'intérieur rootDir.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.