Compresser uniquement les fichiers à l'aide de 7z sans conserver le chemin
J'utilise l'exécutable en ligne de commande 7z pour les fichiers zip, mais je vois que lors de l'ajout à une archive, le chemin des fichiers est préservé dans l'archive.
Donc si je fais
7z a -tzip myzip.zip dir1dir2*
L'archive myzip.zip contiendra le chemin dir1 dir2. Je ne veux pas cela, je veux plutôt que seuls les fichiers soient ajoutés au fichier zip sans que les chemins soient préservés. J'ai cherché un peu mais ne semble pas trouver un moyen de le faire, peut-être que je manque quelque chose d'évident?
Merci
5 réponses
Donnez le chemin complet. Cela devrait fonctionner. Pas le chemin relatif de l'emplacement actuel. Par exemple, je donne ci-dessous, où je veux que les fichiers dans le dossier man5 soient archivés.
$ 7z a -tzip myzip.zip /home/pradeeban/Desktop/man4/man5/*
Le zip ne contenait que les fichiers, sans les répertoires.
Ensuite, je n'ai donné que le chemin relatif. Il y avait les répertoires, à l'intérieur du zip.
$ 7z a -tzip myzip.zip Desktop/man4/man5/*
Essayé avec Linux (Ubuntu 12.04). Je ne sais pas si cela diffère de Windows.
Il suffit d'ajouter un point avant le chemin, c'est-à-dire
7z a -tzip -r myzip.zip .\Relative\Dir\*
J'ai découvert un moyen de faire cela en utilisant un chemin relatif:
7z a -tzip myzip.zip %CD%\dir1\dir2\*
%CD % est la façon dont vous obtenez le chemin actuel dans un fichier batch Windows, mais il fonctionne également à partir de la ligne de commande. Plus d'informations sur capture du répertoire courant à partir d'un fichier batch.
Comme expliqué dans la question connexe de 7-zip user FAQ , 7z stocke les chemins relatifs au répertoire de travail, vous devrez donc d'abord cd
dans le répertoire de niveau supérieur souhaité pour l'archive et exécuter 7-zip à partir d'ici.
cd dir1\dir2\
7z a -tzip myzip.zip *
Si vous l'exécutez à partir d'un script et que vous ne voulez pas l'affecter avec un répertoire modifié, utilisez les fonctions push/pop de répertoire disponibles dans votre shell de choix ou exécutez cd + 7-zip dans le processus généré pour éviter d'affecter l'ensemble de votre script avec un répertoire modifié. Par exemple, à l'aide de Le démarrage de Windows serait:
start /D dir1\dir2\ /wait 7z a -tzip myzip.zip *
Cela a fonctionné pour moi
Considérez la structure de dossier comme C:\Parent\SubFolders..... Et vous voulez créer parent.zip qui contiendra tous les fichiers et dossiers C:\Parent sans dossier parent [c'est-à-dire qu'il commencera à partir de sous-dossiers.....]
cd /D "C:\Parent"
"7z.exe" a Parent.zip "*.*" -r
Cela va créer Parent.fermeture éclair C:\Parent