2007-11-27
find -execの使い方
条件にマッチしたファイルに一個ずつ-exec以下のコマンドを適用していく。これは便利。
% find . -name \*~ -exec rm {} \;
⇒ カレントディレクトリ以下の *~ をリストアップして「rm 検索したファイル名」を実行する。{}の場所には検索したファイル名が入る。; はコマンドの終了を表すが、シェルに「;」を解釈させず、find へ「;」を渡すためにエスケープしてある。また、「{}」と「\」の間には必ずスペースを空けなくてはならない。
http://x68000.q-e-d.net/~68user/unix/pickup?keyword=find&target=command:title=UNIXの部屋 検索:find %28*BSD/Linux/Solaris%29
今回は、サンプルファイルを一気にコンパイル、ということをやったので-execでよいのだが、例えばgrepなどの場合はfindとxargsの組み合わせで使った方がよいらしい。
ソースの中から文字列「hogehoge」を検索するには
% find . -name \*.c -exec grep hogehoge {} \;
とすればよいが、これでは *.c のファイルの数だけ grep コマンドが実行され、時間がかかる。そういう場合は
% find . -name \*.c -print | xargs grep hogehoge
とすればよい。もっときっちりやるなら
% find . -name \*.c -print0 | xargs -0 grep hogehoge /dev/null
なのだが、詳しくはマニュアルを読んでくれい。
http://x68000.q-e-d.net/~68user/unix/pickup?keyword=find&target=command:title=UNIXの部屋 検索:find %28*BSD/Linux/Solaris%29
トラックバック - http://d.hatena.ne.jp/emergent/20071127/1196091725
リンク元
- 5 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4SUNA_jaCN232CN232&q=hpricot+jruby
- 4 http://ezsch.ezweb.ne.jp/search/ezGoogleMain.php?query=ほうれん草&start-index=4&adpage=2&mode=02
- 3 http://www.google.com/search?hl=ja&rls=DAJP,DAJP:2007-25,DAJP:ja&q=DirectFB+Linux&suggest=0&sa=X&oi=cjkrefinements&resnum=1&ct=result&cd=1
- 2 http://72.14.235.104/search?q=cache:NvQ9MoKZ7oYJ:d.hatena.ne.jp/emergent/20070508/1178635719+ubuntu+dvd??????&hl=ja&ct=clnk&cd=1&gl=jp&client=firefox-a
- 2 http://b.hatena.ne.jp/t/actionscript?sort=eid
- 2 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=にたまご
- 2 http://otg.jik.jp/memo/index.php?e=103
- 2 http://reader.livedoor.com/reader/
- 2 http://www.google.co.jp/hws/search?hl=ja&q=ruby+最大値&client=fenrir&adsafe=off&safe=off&lr=lang_ja
- 2 http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&hs=EQG&q=ubuntu+dvd+再生&btnG=検索&lr=lang_ja



