(作成中)
#!/bin/bash
SRCD="/home/"
TGTD="/var/backups/"
OF=home-$(date +%Y%m%d).tgz
tar -cZf $TGTD$OF $SRCD
#!/bin/sh
# renna: いくつかのルールに従って、複数のファイルをリネームする
# スクリプト: Felix Hudson Jan 2000
# 最初にこのプログラムが取るいくつかの「モード」についてチェックする
# 第一引数($1)の条件が一致するなら、プログラムの該当部分を実行して
# 終了する
# prefix の条件をチェックする
if [ $1 = p ] ; then
# モード変数($1)と prefix ($2)を取り除く
prefix=$2 ; shift ; shift
# ファイルが指定されているか簡単にチェックする
# 指定されていないときは、存在しないファイルをリネームすることは
# できないので、なにもしない
if [$1 = ]; then
echo "no files given"
exit 0
fi
# プログラムの引数となるファイルを順にループ処理する
# ファイルをひとつずつリネームする
for file in $*
do
mv ${file} $prefix$file
done
# ここでプログラムを終了する
exit 0
fi
# suffix をリネームするかチェックする
# ここでの残りの部分は上記とおなじ処理なので、そちらを見てほしい
if [ $1 = s ]; then
suffix=$2 ; shift ; shift
if [$1 = ]; then
echo "no files given"
exit 0
fi
for file in $*
do
mv ${file} $file$suffix
done
exit 0
fi
# 名前の置き換えかどうかをチェックする
if [ $1 = r ]; then
shift
# ユーザが処理の内容を指定しなかったとしてもファイルがダメージを
# 受けないように、次のコードを含めた
if [ $# -lt 3 ] ; then
echo "usage: renna r [expression] [replacement] files... "
exit 0
fi
# 余計な情報を削除する
OLD=$1 ; NEW=$2 ; shift ; shift
# この for ループはプログラムに与えられたファイルを順に処理する
# sed というプログラムを使って、ファイルをひとつずつリネームする
# sed は標準入力を読み込んで、特定の表現を与えられた文字列に置換する
# ここでは、標準入力からファイル名を指定して、必要な文字を置換させる
for file in $*
do
new=`echo ${file} | sed s/${OLD}/${NEW}/g`
mv ${file} $new
done
exit 0
fi
# ここまで来たとすると、プログラムに引数がなかったということなので、
# 使い方を表示する
echo "usage;"
echo " renna p [prefix] files.."
echo " renna s [suffix] files.."
echo " renna r [expression] [replacement] files.."
exit 0
# 終了
#!/bin/bash
# renames.sh
# basic file renamer
criteria=$1
re_match=$2
replace=$3
for i in $( ls *$criteria* );
do
src=$i
tgt=$(echo $i | sed -e "s/$re_match/$replace/")
mv $src $tgt
done