Comment ajouter des fichiers et des répertoires à un fichier zip sans le répertoire racine?

StackOverflow https://stackoverflow.com/questions/1009501

  •  06-07-2019
  •  | 
  •  

Question

L'utilitaire zip, lorsqu'il est appelé en tant que zip -r out.zip base / * dans cette structure de répertoires

.
./base
./base/b
./base/b/c
./base/d

crée le résultat suivant

  adding: base/b/ (stored 0%)
  adding: base/b/c (stored 0%)
  adding: base/d (stored 0%)

Je souhaite obtenir un fichier contenant des données à partir de la sortie suivante

  adding: b/ (stored 0%)
  adding: b/c (stored 0%)
  adding: d (stored 0%)

Je pensais que l'option -j m'aiderait, mais ce n'est pas le cas: cela aplatit complètement la structure des répertoires. Pour le moment, la seule solution que j'ai trouvée est de créer une base de données et d'invoquer zip à partir d'ici, mais je me demandais s'il y avait un interrupteur que je ne parviens pas à reconnaître en tant que tel dans la documentation.

Était-ce utile?

La solution

Je comprends que vous ne voulez pas cd , mais ...

Si tout échoue et que vous espérez conserver votre appel jusqu'à une ligne, vous pouvez chaîner les appels et utiliser un chemin d'accès relatif pour afficher le code zip à la racine:

Pour Windows:

cd base & amp; zip -r .. \ out.zip * & amp; cd ..

Pour Linux / Unix:

cd base; zip -r ../out.zip *; cd ..

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top