up

find の 練習 008

スクリプトの 実行

参考例 その1

# find /where -name '*.c' -exec /usr/local/bin/script-user {} \;

”/where”にある 全ての C ソースファイルに ついて ”script-user”とい うスクリプトを 実行する スクリプト は フルパスで指定する。

実行例 その1

ほたら 試してみましょう

# ls -l /home/where/here/
total 0
-rw-r--r--    1 root     root            0 Nov 26 23:06 abc.c
-rw-r--r--    1 root     root            0 Nov 26 23:06 ffg.c
-rw-r--r--    1 root     root            0 Nov 26 23:07 here-abc.c
-rw-r--r--    1 root     root            0 Nov 26 23:07 here-ddd.c
-rw-r--r--    1 root     root            0 Nov 26 23:07 ssshk.c

御覧の様に touch で作成した ダミーの ファイルがある。

なにか 適当な文字列を 追加しよう として 以下の スクリプトを作成、実行 属性を 付けて

$ ls -l script-user 
-rwxr-xr-x    1 fdopstm  users          29 11月 26日  23:05 script-user
$ pwd
/home/fdopstm/public_html/1001_base/8001_command/1003_find/1001_find
$ cat script-user 
#!/bin/sh
echo `date` > $1

実行すると

# pwd
/root
# find /home/where/here  -name '*.c' -exec /home/fdopstm/public_html/1001_base/8001_command/1003_find/1001_find/script-user {} \;
# ls -l /home/where/here/
total 20
-rw-r--r--    1 root     root           29 Nov 26 23:09 abc.c
-rw-r--r--    1 root     root           29 Nov 26 23:09 ffg.c
-rw-r--r--    1 root     root           29 Nov 26 23:09 here-abc.c
-rw-r--r--    1 root     root           29 Nov 26 23:09 here-ddd.c
-rw-r--r--    1 root     root           29 Nov 26 23:09 ssshk.c
# cat /home/where/here/abc.c 
Mon Nov 26 23:09:18 JST 2007
# diff -s /home/where/here/abc.c /home/where/here/ffg.c 
Files /home/where/here/abc.c and /home/where/here/ffg.c are identical

スクリプトを 工夫すれば 新しいものを作成できるでしょう

注意事項

使用するに際して

# pwd
/home/where/here
# ls -l
total 24
-rw-r--r--    1 root     root           29 Nov 26 23:09 abc.c
-rw-r--r--    1 root     root           29 Nov 26 23:09 ffg.c
-rw-r--r--    1 root     root           29 Nov 26 23:09 here-abc.c
-rw-r--r--    1 root     root           29 Nov 26 23:09 here-ddd.c
-rw-r--r--    1 root     root           28 Nov 26 23:18 script-user
-rw-r--r--    1 root     root           29 Nov 26 23:09 ssshk.c
# cat script-user 
#!/bin/sh
echo `date` > $1

# source script-user 
-su: $1: ambiguous redirect

一見不可解ですが そういうことです。 この場合 ”$1”は なんの こっちゃ となりますので 注意

へい へい まだまだ続く

にゃんたろう 拝!

2007年11月26日 (月) 23:12:27 JST 作成


up

Copyright © 2004.-2007. nyantarou All Rights Reserved.