zipで特定のファイルとフォルダを除外して圧縮ファイルを作成する

zip コマンドで特定のファイルとフォルダを除外して、カレントディレクトリ以下のファイルを圧縮するサンプルです。

検証環境

  • Cent OS 7
  • KAGOYA CLOUD VPS の一番安いプラン(いつもの)

概要

zip -r <ZipFileName> <TargetPath> -x '*<ExcludeFile>*' ...

項目 説明
-r <TargetPath>を再帰的(サブディレクトリを含めて)に処理するオプション
<ZipFileName> 出力する圧縮ファイルの名前を指定する
<TargetPath> 圧縮するファイル(フォルダ)を指定する
-x 圧縮するファイル(フォルダ)から指定のファイル(フォルダ)を除外するオプション
'*<ExcludeFile>*' ... 圧縮するファイル(フォルダ)から除外するファイル(フォルダ)を指定する(複数可)

サンプル

zip -r dest.zip ./ -x '*gulpfile.js*' '* package.json*' '*node_modules*' '*scss*'

上記のコマンドは、カレントディレクトリ以下のファイルを gulpfile.js、package.json、.vscode、node_modules、scss を除外して dest.zip という名前の圧縮ファイルを作成するコマンドです。

gulpfile.js と package.json はファイル、node_modules と scss はフォルダです。

オプション -x 以降に除外したいファイル名、フォルダ名を '* と *' または "* と *" で囲む。