人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Bシェルでのファイルの移動方法の記述について

あるディレクトリにあるファイルがn日(10日)経過したファイルを指定の
ディレクトリへ移動させるシェルスクリプトを作成したいと思っています。

以下削除スクリプトがあるとします。
これを、移動用に修正したいと考えています。

LANG=C;export LANG
KEEP_DAY=10

acclogdir=/export/home/user/logs
consoledir=/export/home/user/console/logs
sardir=/export/home/scripts/data

LIST="
$acclogdir,access.200
$consoledir,consolelog.200
$sardir,sar200

for i in $LIST
do
DIR=`echo "${i}|cut -d',' -f1`
FILE=`echo "${i]|cut -d',' -f2`

cd $DIR
find . -name $FILE\* -type -mtime + $KEEP_DAYS -print |xargs rm -f

done

exit 0

なお、acclogdir →target_acclogdir
consoledir→target_consoledir
sardir→target_sardir

へ移動させたい場合、上記スクリプトをどのように修正すると実現可能でしょうか。
ご教授のほどよろしくお願いします。

●質問者: otanako
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:access CD Console Dir echo
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● M.Mouri
●27ポイント

http://openlab.dino.co.jp/2008/02/20/133431188.html

によれば、

find . -name $FILE\* -type -mtime + $KEEP_DAYS -print |xargs rm -f

find . -name $FILE\* -type -mtime + $KEEP_DAYS -print |xargs mv -t target_$DIR

に変更すればうまくいきそうです。target_acclogdir, target_consoledir, target_sardirをあらかじめ作っておかないと怒られますが。あと、試してないので自己責任でお願いします。


2 ● zzz_1980
●27ポイント
#!/bin/sh
LANG=C;export LANG
KEEP_DAYS=10
acclogdir=/export/home/user/logs
consoledir=/export/home/user/console/logs
sardir=/export/home/scripts/data
#
target_accelogdir=/tmp
target_consoleldir=/tmp
target_sardir=/tmp
#
LIST="
$acclogdir,access.200,$target_accelogdir
$consoledir,consolelog.200,$target_consoleldir
$sardir,sar.200,$target_sardir
"
for i in $LIST
do
DIR=`echo "${i}"|cut -d ',' -f1`
FILE=`echo "${i}"|cut -d ',' -f2`
TARGETDIR=`echo "${i}"|cut -d ',' -f3`
cd $DIR
mv `find . -name $FILE\* -type f -mtime +$KEEP_DAYS -print` $TARGETDIR
done
exit 0
◎質問者からの返答

zzz_1980 さん

ありがとうございます。

今すぐに試せる環境がないため、明日確認して結果をお知らせいたします。


3 ● M.Mouri
●26ポイント

上記間違ってました。使わないでください。dirnameとbasenameを使わないといけません。

えーと、

find . -name $FILE\* -type -mtime + $KEEP_DAYS -print |xargs mv -t `dirname $DIR`/target_`basename $DIR`

でしょうか。

◎質問者からの返答

kelly1414213 さん

修正内容ありがとうございました。

今すぐに確認できる環境がないため、明日確認したのち、結果お知らせいたします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ