いまだにPPAPでファイル送信いけないことがありますわな。
PPAP・・・
PPAPとは、「Password付きZIPファイルを送ります」「Passwordを送ります」「Aん号化(暗号化)」「Protocol」の頭文字をとった、日本の企業で広く使われていたファイル共有手法です。メールにパスワード付きのZIPファイルを添付して送り、後から別のメールでパスワードを送信する、という手順のことです。
ちょっとでも手間を減らすために、シェルスクリプト作る。
Windows > WSL で実行する想定。
要件
- 第1引数のファイルを、圧縮する
- 圧縮する際はパスワードを付与する
- パスワードは第2引数のモノを使用するが、指定がない場合は、ランダムなパスワードを付与する
- ランダムなパスワードを付与した場合は、そのパスワードがファイル名のファイルを作成する(ファイル拡張子は無し)
- パスワードがファイル名のファイルを生成する場所は、第1引数に指定したファイルと同じフォルダ内。
シェルスクリプト
#!/usr/bin/env bash
set -eu
# 引数チェック
if [ $# -lt 1 ]; then
echo "Usage: $0 <file> [password]"
exit 1
fi
TARGET="$1"
DIR="$(dirname "$TARGET")"
BASENAME="$(basename "$TARGET")"
# パスワード生成 or 使用
if [ $# -ge 2 ] && [ -n "$2" ]; then
PASSWORD="$2"
else
# ランダムパスワード生成(32文字)
PASSWORD="$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 32)"
# パスワードを書き出すファイル
#PASSFILE="${DIR}/${BASENAME}.password"
#echo "圧縮ファイルの展開パスワードは以下の通りです:" > "$PASSFILE"
#echo -n "$PASSWORD" > "$PASSFILE"
touch "$PASSWORD"
fi
# zipでパスワード付き圧縮
zip -P "$PASSWORD" "${TARGET}.zip" "$TARGET"
上記のシェルスクリプトを、PATHが通ってるところに作成する。
zp.shとかの名前で。
実行権も付与。
chmod +x zp.sh # ファイル名は例
コメント