2011-09-22 unix
ということをやりたい場合、inotifywait っていうファイル監視コマンドが使えそう。とりあえず手元の centOS で試してみる。
まずは inotify-tools を yum でインストール。
$ yum install inotify-tools
んで、こういう watch.sh ていうシェルスクリプト書いた。/unko/from/ を監視して、ファイルが作成されたら /unko/to/ に移動って感じ。
#!/bin/sh from=/unko/from/ to=/unko/to/ inotifywait --format "%f" -mq -e create $from | while read file; do mv -f $from$file $to$file echo "[moved] $from$file -> $to$file" done
さっそくターミナルから watch.sh を起動。
$ chmod 700 watch.sh $ ./watch.sh
別ターミナル開いて /unko/from/ にファイル作ってみる。
$ touch /unko/from/aaa $ touch /unko/from/bbb $ touch /unko/from/ccc
元のターミナルに戻るとデバッグ用メッセージでてる。おお、いいんじゃないの。
$ ./watch.sh [moved] /unko/from/aaa -> /unko/to/aaa [moved] /unko/from/bbb -> /unko/to/bbb [moved] /unko/from/ccc -> /unko/to/ccc
ほんとにファイル移動されてるか tree で確認。オッケー。
$ tree /unko/ /unko/ |-- from `-- to |-- aaa |-- bbb `-- ccc 2 directories, 3 files