findコマンドの-pruneオプション
findコマンドの-pruneオプション
manページでは「true を返します。 処理対象がディレクトリである場合、 ディレクトリ内に入っていきません。」という説明で、いったいどういう効果なのかわかりにくい-pruneオプションについてのメモ。
「説明」の指定された式 (expression)
manページの説明にある「指定された式 (expression) を左から右の順で評価していきます。」が重要なポイントで、これでオプションによる結果が決まることになる。
findコマンドのexpression
findコマンドで/var以下からディレクトリを検索するが、logディレクトリより下を除外する場合は下記のように指定する。
$ find /var -type d -name log -prune -o -print
これはこのように実行されることになる。
command | path | expression-1 | operator | expression-2 |
---|---|---|---|---|
find | /var | -type d -name log -prune | -o |
- pathを起点に検索を開始する。
- expression-1に合致した場合
- -pruneオプションの結果としてtrueが返されるがパスは出力されない
- operator以降の式の評価は行われない
- expression-1に合致しなかった場合
- expression-2に従いパスが出力される
これらの組み合わせにより「logディレクトリより下を除外」がされることになる。
findコマンドの-pruneオプション.txt · 最終更新: 2023/09/17 00:47 by Minoru Kijima