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に従いパスが出力される
これらの組み合わせにより「xxディレクトリより下を除外」がされることになる。
findコマンドの-pruneオプション.1694225452.txt.gz · 最終更新: by Minoru Kijima