====== findコマンドの-pruneオプション ====== [[https://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html|manページ]]では「**__true を返します。__** 処理対象がディレクトリである場合、 ディレクトリ内に入っていきません。」という説明で、いったいどういう効果なのかわかりにくい**-prune**オプションについてのメモ。 ===== 「説明」の指定された式 (expression) ===== [[https://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html|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 | -print | - pathを起点に検索を開始する。 - expression-1に合致した場合 - -pruneオプションの結果としてtrueが返されるが**__パスは出力されない__** - **operator以降の式の評価は行われない** - expression-1に合致しなかった場合 - expression-2に従いパスが出力される これらの組み合わせにより「**logディレクトリより下を除外**」がされることになる。