初めましてshoです。
シェルスクリプトの学習、練習メモです。
内容「ディレクトリをパスワード付きzipでアーカイブする」
詳細
・アーカイブ名は日付で保存
・引数にディレクトリ指定して実行
(※学習記録やメモ書き目的で始めました。ほぼ初学者レベルなので理解が浅いところや誤りがあるかと思いますがよろしくお願いします。またアドバイス等コメントいただけるとすっごく嬉しいです。)
コマンド
zip(zipコマンドがインストールされていること前提)
(zipコマンドの使い方は "zip [オプション] 圧縮ファイル名 圧縮対象ファイル"
使用オプション
-e =圧縮時にパスワードを設定できる
-r =ディレクトリを再帰的に圧縮する
スクリプト
# !/bin/sh
date=`date "+%Y%m%d"`
zip -er "$date".zip "$@"
実行結果
実行は ”スクリプトファイル名 [対象ディレクトリ] [対象ディレクトリ]”
# ls
dir1 dir2
# t-zipdir.sh dir1/ dir2/
Enter password:
Verify password:
adding: dir1/ (stored 0%)
adding: dir1/file2 (stored 0%)
adding: dir2/ (stored 0%)
adding: dir2/file2 (stored 0%)
adding: dir2/file3 (stored 0%)
# ls
20210316.zip dir1 dir2
解凍
解凍は unzip コマンドで解凍する。
# rm -rf dir1/ dir2/ (確認のためテストディレクトリを削除)
# ls
20210316.zip
# unzip 20210316.zip
Archive: 20210316.zip
creating: dir1/
[20210316.zip] dir1/file2 password:
extracting: dir1/file2
creating: dir2/
extracting: dir2/file2
extracting: dir2/file3
# ls
20210316.zip dir1 dir2
以上です!