開始行: * キーワード [#t2adf8b1] - find - 除外 * したいこと [#y15765f3] 特定のディレクトリを除外してファイルを検索します。 * どうやって [#v7eaba50] たくさんオプション(評価式やアクション)がついて難解ですが... $ find . -type d -name HOGE -prune -false -o -type f * ノート [#n3496a72] findは評価式を左から評価する仕組みのようです。 > find は与えられたファイル名以下のディレクトリツリーを検... なので左から見ていきましょう。 find . カレントディレクトリを探す。 -type d -name HOGE ディレクトリ、HOGEという名前の。 -prune ディレクトリを降りない。 -false 偽。 -o でなければ、 -type f ファイル。 ** -prune はアクション [#m4a80a1e] 「-prune」はオプションではなくアクションです。 > -prune 以外のアクションが評価式に含まれていない場合は、... アクションの内容は次です。 > 同時に -depth が指定されていない場合は常に真。ディレク... ディレクトリより下を見ずに真を返すアクションです。ただし... > 演算子が省略された場合は -and が指定されたものとされる。 従って左から順に評価式(やアクション)で偽になれば後続の評... 「-and」と同じように考えると「-o」を「でなければ」と読め... ** つまりこうなっている [#cc9b5d5e] - HOGE/ (ディレクトリ) -- -falseで偽、-type fで偽 - HOGE/ 以下のディレクトリとファイル -- -pruneでディレクトリを降りない - HOGE/ 以外のディレクトリ -- -name HOGEで偽、-type fで偽 - HOGE/ 以外のファイル -- -type dで偽、-type fで真(-printを実行) 終了行: * キーワード [#t2adf8b1] - find - 除外 * したいこと [#y15765f3] 特定のディレクトリを除外してファイルを検索します。 * どうやって [#v7eaba50] たくさんオプション(評価式やアクション)がついて難解ですが... $ find . -type d -name HOGE -prune -false -o -type f * ノート [#n3496a72] findは評価式を左から評価する仕組みのようです。 > find は与えられたファイル名以下のディレクトリツリーを検... なので左から見ていきましょう。 find . カレントディレクトリを探す。 -type d -name HOGE ディレクトリ、HOGEという名前の。 -prune ディレクトリを降りない。 -false 偽。 -o でなければ、 -type f ファイル。 ** -prune はアクション [#m4a80a1e] 「-prune」はオプションではなくアクションです。 > -prune 以外のアクションが評価式に含まれていない場合は、... アクションの内容は次です。 > 同時に -depth が指定されていない場合は常に真。ディレク... ディレクトリより下を見ずに真を返すアクションです。ただし... > 演算子が省略された場合は -and が指定されたものとされる。 従って左から順に評価式(やアクション)で偽になれば後続の評... 「-and」と同じように考えると「-o」を「でなければ」と読め... ** つまりこうなっている [#cc9b5d5e] - HOGE/ (ディレクトリ) -- -falseで偽、-type fで偽 - HOGE/ 以下のディレクトリとファイル -- -pruneでディレクトリを降りない - HOGE/ 以外のディレクトリ -- -name HOGEで偽、-type fで偽 - HOGE/ 以外のファイル -- -type dで偽、-type fで真(-printを実行) ページ名: