# find /where -name '*.c' -exec /usr/local/bin/script-user {} \;
”/where”にある 全ての C ソースファイルに ついて ”script-user”とい うスクリプトを 実行する スクリプト は フルパスで指定する。
ほたら 試してみましょう
# 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 作成