タグ

findに関するsh19910711のブックマーク (4)

  • find の -exec optionの末尾につく \; と + の違い。 - Qiita

    Emacsの find-grep で出てくるコマンド find . -type f -exec grep -nH -e {} + の最後の + を見たことなかったのでStack Overflowで質問してみました。 まず「お前はちゃんと man を読め。」と怒られましたが、わかりやすいサンプル付きで説明がもらえたので良しとします。いつもありがとうございます。 -exec {} \; と -exec {} + の違い まず \; の 頭についてるバックスラッシュはこれがないとセミコロンがシェルのコントロール文字列だと判別されるためについてるだけです。 そして肝心の違いですが -exec {} \; は find で見つかったそれぞれのファイルを別々にコマンドに渡して、 -exec {} + は可能な限りまとめて渡します。 言葉の説明だけだとよくわからないでしょうから実際の例を見てみましょう。

    find の -exec optionの末尾につく \; と + の違い。 - Qiita
  • FreeBSDのfindコマンドのソースが綺麗な件 - b6note

    ちょっと前、コマンドなんでも読書会でFreeBSD 8.2のfindコマンドを 読んだんだけど、なかなかしっかり作られてて、読んでよかったんだ。 読んだのはこれ。 http://svn.freebsd.org/base/release/8.2.0/usr.bin/find/ 抽象化でポリモルフィズムでどーん 当然C言語で実装されているわけだけど、 構造体と関数ポインタをばりばり使って しっかりオブジェクト指向してる。 関数ポインタがメソッドの役割になってる。 処理概要 findコマンドはmain.cを始めとしてfind.cとかfunction.cとか 複数のファイルで構成されているんだけど、簡単に処理の順番をまとめると オプションの解釈 "PLAN"の解析と作成 "PLAN"の実行 となっている。 PLANはクラス PLANというのは、findコマンドに渡した 各引数から生成したfindコ

    FreeBSDのfindコマンドのソースが綺麗な件 - b6note
  • findコマンドで複数の名前条件を指定 - 日々の報告書

    何となく「codeなにがし」を見ていたところ、findコマンドを利用して複数の拡張しにマッチしたファイル一覧を取得する方法が書いてあった。 codeなにがし::linuxでテキストファイルだけをコピー 質問者は*.c *.cc *.h *.hhなどの拡張子を持つファイルの一覧を取得したいとのことで、このためには次のようにfindを実行すればよいそうな(一部省略)。 $ find . \( -name \*.c -o -name \*.cc -o -name \*.h -o -name \*.hh \) -print 「-name」オプションは検索対象のファイルの名前を指定するオプション。これをORを意味する「-o」オプションで複数つなげることで、複数の拡張子のどれか1つにマッチするファイルを見つけ出すことができる。ちなみに「-o」は「-or」とも書ける。 僕も以前似たようなことをしたことが

    findコマンドで複数の名前条件を指定 - 日々の報告書
  • find -execとxargs - うまいぼうぶろぐ

    find -execは、1ファイルに対して1回ずつコマンドを実行。xargsは標準入力から受け取った複数のファイルに対して、コマンドを1回で実行(といってもシェルに渡せる限界があるから、入力が多すぎる場合は複数回にわけて実行)。だから、xargsのほうが早いと思っていた。例えば特定のファイルを消す場合。 $ find /tmp/ -type f -mtime +1 -exec rm {} \; # 以下とほぼ同等 $ find /tmp/ -type f -mtime +1 -print0 | xargs -0 -n1 rmところが、find -execで'\;'ではなく、'+'を指定すればxargsと同じように、複数ファイルに対してコマンド実行するらしい。 http://ja.wikipedia.org/wiki/Xargs これはすべての単一ファイルに対して一回ずつ rm を呼んでいる

    find -execとxargs - うまいぼうぶろぐ
    sh19910711
    sh19910711 2013/03/24
    -execオプションに\;ではなく+を渡すとxargsと同じような処理を行ってくれる
  • 1