zip コマンドの基本
下記のようにすると、sample ディレクトリ内のファイルをすべて sample.zip アーカイブとして保存することができます。
$ zip -r sample.zip sample
より上位のディレクトリからアーカイブを作成する場合は、同様に、
$ zip -r sample.zip aaa/bbb/ccc/sample
とすることができますが、このようにすると、アーカイブ内に aaa/bbb/ccc ディレクトリが含まれてしまいます。
アーカイブ内のトップのディレクトリを sample ディレクトリにしたい場合は、次のようにカレントディレクトリを変更してから zip コマンドを実行するようにします。
$ (cd aaa/bbb/ccc && zip -r sample.zip sample)
コマンド全体を括弧で囲んでいるのは、コマンド実行後にシェルのカレントディレクトリを元のディレクトリに復帰させるためです。
アーカイブファイル名に日付を入れる
date コマンドと組み合わせて、下記のように実行すれば、アーカイブ名に自動的に日付を入れることができます(例: sample-20170819.zip)。
$ zip -r sample-`date +%Y%m%d`.zip sample
指定したディレクトリを除いてアーカイブする
例えば、アーカイブの対象から .git ディレクトリを除きたいときは、下記のように --exclude オプションを指定します。
$ zip -r sample.zip --exclude=*/.git/* sample
複数の --exclude オプションを指定することもできます。
$ zip -r sample.zip --exclude=*/.git/* --exclude=*/.svn/* sample