wiem jak dodać plik do katalogu głównego w pliku zip:linux jak dodać plik do określonego folderu w pliku zip
zip -g xxx.apk yyy.txt
ale nie mam pojęcia, jak określić konkretnego folderu w pliku zip
wiem jak dodać plik do katalogu głównego w pliku zip:linux jak dodać plik do określonego folderu w pliku zip
zip -g xxx.apk yyy.txt
ale nie mam pojęcia, jak określić konkretnego folderu w pliku zip
Jeśli trzeba dodać plik w tym samym folderze co w pierwotnym hierarchii katalogów, a następnie po prostu trzeba dodać pełny ścieżka do niego:
zip -g xxx.zip folder/file
W przeciwnym razie najprawdopodobniej najprostszym sposobem jest stworzenie takiego samego układu, jakiego potrzebujesz w pliku zip w katalogu tymczasowym.
Info-ZIP nie może tego zrobić. Będziesz musiał napisać skrypt lub program w języku, który ma dostęp niższego poziomu do plików zip.
, jeśli chcę umieścić yyy.txt w folderze assests xxx.apk, najpierw muszę utworzyć folder assests, a następnie przenieść do niego plik yyy.txt. A następnie wyodrębnij zip -g xxx.apk assests/yyy.txt – asfman
Możesz też wygenerować sztuczny wpis zip, który umieści go w "assets /", a następnie połączyć go z danymi z pliku i dodać do pliku zip. –
Aby rozwinąć @Ignacio Vazquez-Abrams odpowiedzi z lat temu, można korzystać z biblioteki niższego poziomu, takich jak ten, który pochodzi z 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
To otworzy myfile.zip
i dodać source/dir/file.txt
od system plików jako dir/in/zip/file.txt
w pliku zip.
Mam wydatkowane trochę @ "że inny facet" rozwiązanie
Go pocieszyć, naciśnij Ctrl + X, Ctrl + E, wklej tam
(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
następnie uruchomić /tmp/zip-extend my_zip.zip your/existing/file_to_add.xml directory_in_zip/file_to_add.xml
Przykład :
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 -
Wynik:
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
jeśli chcę umieścić plik yyy.txt w folderze assests xxx.apk, najpierw muszę utworzyć folder assests, a następnie przenieść do niego plik yyy.txt. A następnie wyodrębnij zip -g xxx.apk assests/yyy.txt – asfman