2012-02-15 17 views

risposta

28

Se è necessario aggiungere il file nella stessa cartella nella gerarchia di directory originale, allora non vi resta che aggiungere il pieno percorso:

zip -g xxx.zip folder/file 

In caso contrario, probabilmente il modo più semplice per farlo è quello di creare lo stesso layout necessario nel file zip in una directory temporanea.

+2

se voglio mettere yyy.txt nella cartella degli assunti di xxx.apk, in primo luogo devo creare la cartella assests, quindi spostare yyy.txt in essa. E poi excute zip -g xxx.apk assests/yyy.txt – asfman

3

Info-ZIP non può farlo. Avrai bisogno di scrivere uno script o un programma in una lingua con accesso di livello inferiore ai file zip.

+0

se voglio mettere yyy.txt nella cartella degli assunti di xxx.apk, prima devo creare la cartella assests, quindi spostare yyy.txt dentro. E poi excute zip -g xxx.apk assests/yyy.txt – asfman

+1

Oppure puoi generare una zip zip artificiale che la colloca in 'assets /', quindi combinala con i dati del file e aggiungila al file zip. –

7

Per approfondire @Ignacio Vazquez-Abrams risposta da un anno fa, è possibile utilizzare una libreria di livello inferiore, come quello che viene fornito con 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 

Si aprirà myfile.zip e aggiungere source/dir/file.txt da il file system come dir/in/zip/file.txt nel file zip.

2

ho speso un po '@ "che altro ragazzo" soluzione

Vai alla consolle, premere Ctrl + x, Ctrl + E, incollare ci

(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 

quindi eseguire /tmp/zip-extend my_zip.zip your/existing/file_to_add.xml directory_in_zip/file_to_add.xml

Esempio :

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 - 

Risultato:

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 
Problemi correlati