ごらくらいふ

プログラミングしたりゲームしたり

続・リリースするファイルに対応したバックアップを作る

↓この処理をシェルスクリプトにした。 yajamon.hatenablog.com

#!/bin/bash

src=$1
dest=$2
backup=$3

# backupのパスがファイルなら終了
if [ -f $backup ] ; then
    echo "\$backup is file"
    exit 1
fi

# srcと同じディレクトリ構造のbackupディレクトリを作る
if [ ! -e $backup ] ; then
    echo "make directory: $backup"
    mkdir $backup
    echo "create: "$(cd $backup; pwd)
fi

# 続行するか念のために確認
echo "   src: $src"
echo "  dest: $dest"
echo "backup: $backup"
while [ "$goSign" = "" ]
do
    echo "execute ok? (yes/no)"
    read goSign
done

if [ $goSign != "yes" ] ; then
    echo "abort"
    exit 1
fi

cp -rv $src/* $backup/
echo "clean to $backup"
find $backup -type f -exec rm -v {} \;

# src内のファイルパスをもとに、destからbackupへコピーする
for item in $(find ${src} -type f | sed -e "s/^${src}//g")
do
    cp -v $dest$item $backup$item
done