Я знаю, как добавить файл в корневую папку в zip файле:
zip -g xxx.apk yyy.txt
но я не знаю, как указать конкретную папку в zip файле
Я знаю, как добавить файл в корневую папку в zip файле:
zip -g xxx.apk yyy.txt
но я не знаю, как указать конкретную папку в zip файле
Если вам нужно добавить файл в ту же папку, что и в исходной иерархии каталогов, вам просто нужно добавить полный путь к нему:
zip -g xxx.zip folder/file
В противном случае, возможно, самый простой способ сделать это - создать тот же самый макет, который вам нужен в zip файле во временном каталоге.
Чтобы подробнее ответить на вопрос @Ignacio Vazquez-Abrams от года назад, вы можете использовать библиотеку более низкого уровня, например, ту, которая поставляется с 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
Это откроет myfile.zip
и добавит source/dir/file.txt
из файловой системы как dir/in/zip/file.txt
в zip файл.
Info-ZIP не может этого сделать. Вам нужно будет написать script или программу на языке с более низким уровнем доступа к zip файлам.
Я потратил немного @ "решение другого парня"
Перейдите в консоль, нажмите ctrl + x, ctrl + e, вставьте туда
( 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
затем запустите /tmp/zip-extend my_zip.zip your/existing/file_to_add.xml directory_in_zip/file_to_add.xml
Пример:
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 -
Результат:
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