下記の様にすると、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