je sais comment ajouter un fichier au dossier racine dans un fichier Zip:
Zip -g xxx.apk yyy.txt
mais je ne sais pas comment spécifier un dossier particulier dans un fichier Zip
Si vous devez ajouter le fichier dans le même dossier que dans la hiérarchie de répertoires d'origine, il vous suffit d'y ajouter le chemin d'accès complet:
Zip -g xxx.Zip folder/file
Sinon, la façon la plus simple de le faire est probablement de créer la même disposition dont vous avez besoin dans le fichier Zip dans un répertoire temporaire.
Pour élaborer sur la réponse @Ignacio Vazquez-Abrams d'il y a un an, vous pouvez utiliser une bibliothèque de niveau inférieur, comme celle fournie avec Python:
#!/bin/bash
python -c '
import zipfile as zf, sys
z=zf.ZipFile(sys.argv[1], "a")
z.write(sys.argv[2], sys.argv[3])
z.close()
' myfile.Zip source/dir/file.txt dir/in/Zip/file.txt
Cela ouvrira myfile.Zip
et ajouter source/dir/file.txt
du système de fichiers en tant que dir/in/Zip/file.txt
dans le fichier Zip.
Info-Zip ne peut pas faire cela. Vous devrez écrire un script ou un programme dans une langue disposant d'un accès de niveau inférieur aux fichiers Zip.
J'ai dépensé un peu @ "cet autre gars" solution
Accédez à la console, appuyez sur ctrl + x, ctrl + e, collez-y
( cat <<-'EOF'
#!/bin/bash
if [ $# -lt 3 ]; then
echo my_Zip.zip your/existing/file_to_add.xml directory_in_Zip/file_to_add.xml
exit
fi
python -c '
import zipfile as zf, sys
z=zf.ZipFile(sys.argv[1], "a")
z.write(sys.argv[2], sys.argv[3])
z.close()' $1 $2 $3
EOF
) > /tmp/Zip-extend && chmod +x /tmp/Zip-extend
puis exécutez /tmp/Zip-extend my_Zip.zip your/existing/file_to_add.xml directory_in_Zip/file_to_add.xml
Exemple:
cd /tmp
touch first_file.txt
Zip my_Zip.zip first_file.txt
unzip -l my_Zip.zip
mkdir -p your/existing
touch your/existing/file_to_add.xml
/tmp/Zip-extend my_Zip.zip your/existing/file_to_add.xml directory_in_Zip/file_to_add.xml
unzip -l my_Zip.zip
cd -
Résultat:
Archive: my_Zip.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-12-17 15:24 first_file.txt
0 2013-12-17 15:24 directory_in_Zip/file_to_add.xml
--------- -------
0 2 files