![上位フォルダをフォルダの内容とともに圧縮しています](https://rvso.com/image/122437/%E4%B8%8A%E4%BD%8D%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%92%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AE%E5%86%85%E5%AE%B9%E3%81%A8%E3%81%A8%E3%82%82%E3%81%AB%E5%9C%A7%E7%B8%AE%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99.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
。