Ligne de commande zip tout dans un répertoire, mais ne pas inclure n'importe quel répertoire comme la racine
Je ne trouve pas la réponse à cela pour ma vie. Parce que j'empaquette un zip d'une manière spécifique pour un processus de construction, Je ne veux pas du tout inclure un dossier dans le zip résultant à la racine. Par exemple, si j'ai ce chemin de fichier:
MyFolder/
A.png
B.txt
C.mp3
Et j'ai utiliser la commande:
zip -r -X "MyFolder.zip" MyFolder/*
ou
cd MyFolder; zip -r -X "../MyFolder.zip" *
je finis avec un fichier zip qui a l'élément racine de MyFolder. Ce que je veux, c'est pour quand je décompressez-le, est de jeter tout droit dans la répertoire, comme ceci:
A.png
B.txt
C.mp3
en d'autres termes, Je ne veux pas MyFolder ou tout autre dossier comme racine. J'ai lu tout le manuel et ont essayé de nombreuses options et beaucoup de recherche sur Google, et zip semble juste vraiment voulez avoir un dossier à la racine.
Merci!
2 réponses
c'était la faute d'un utilitaire D'Archives (une application Mac OS X unzipper). Lorsque j'ai utilisé la commande unzip de la ligne de commande, cela fonctionne très bien.
cd MyFolder; zip -r -X "../MyFolder.zip" *
est tombé sur cette réponse mais ne voulait pas avoir à changer dans hors des annuaires. J'ai trouvé l' -j
option utile qui ajoute tous les fichiers à la racine du zip. Notez que le son est tous les fichiers ainsi la structure du sous-répertoire ne sera pas préservée.
donc avec cette structure de dossier:
MyFolder
- MyFile1
- MySubFolder
- MyFile2
Et cette commande:
zip -rj MyFolder.zip MyFolder
Vous obtenez ceci:
MyFolder.zip
- MyFile1
- MyFile2