![Я архивирую папку верхнего уровня вместе с ее содержимым.](https://rvso.com/image/122437/%D0%AF%20%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B8%D1%80%D1%83%D1%8E%20%D0%BF%D0%B0%D0%BF%D0%BA%D1%83%20%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D0%B5%D0%B3%D0%BE%20%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F%20%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5%20%D1%81%20%D0%B5%D0%B5%20%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D1%8B%D0%BC..png)
Я сделал bash-скрипт для автоматизации процесса упаковки расширения браузера в .zip
архивы, но по какой-то причине, помимо содержимого из текущего каталога ( public
папки, manifest.json
и index.html
), он также упаковывает mcm_extension
папку (верхнюю папку) вместе с текущей папкой в ней и все содержимое из нее снова. Поэтому я заканчиваю так:
mcm_extension/
-{current folder name}/
--public/
--manifest.json
--index.html
public/
manifest.json
index.html
Вместо
public/
manifest.json
index.html
в mcmc.zip
и mcmf.zip
. Вот скрипт:
# Removes .DS_Store files from a project
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
# Creates directories of extension if they don't exist already
mkdir -p ../mcm_extension && mkdir -p ../mcm_extension/mcmc && mkdir -p ../mcm_extension/mcmf
# Google Chrome
cp -R /Users/apple/Development/mcm/public/ /Users/apple/Development/mcm_extension/mcmc/public/
cp /Users/apple/Development/mcm/manifest.json /Users/apple/Development/mcm_extension/mcmc/manifest.json
cp /Users/apple/Development/mcm/index.html /Users/apple/Development/mcm_extension/mcmc/index.html
cd /Users/apple/Development/mcm_extension/mcmc/
zip -r /Users/apple/Development/mcm_extension/mcmc.zip *
# Mozilla Firefox
cp -R /Users/apple/Development/mcm/public/ /Users/apple/Development/mcm_extension/mcmf/public/
cp /Users/apple/Development/mcm/manifestff.json /Users/apple/Development/mcm_extension/mcmf/manifest.json
cp /Users/apple/Development/mcm/index.html /Users/apple/Development/mcm_extension/mcmf/index.html
cd /Users/apple/Development/mcm_extension/mcmf/
zip -r /Users/apple/Development/mcm_extension/mcmf.zip *
решение1
Текущий каталог и родительский каталог обозначаются символами .
и ..
соответственно.
Итак, чтобы заархивировать только содержимое, исключая текущий каталог и родительский каталог, попробуйте следующее:
zip -r /path_to_folder/* -x .. -x .
Чтобы исключить только родительский каталог и сохранить текущий каталог, попробуйте
zip -r /path_to_folder/* -x ..
-x
опция предназначена для исключения файла или каталога при сжатии с помощью zip
.