find -not がどのように動作するか理解していません。
ツリー内のすべての.gitディレクトリを探したいとしましょう。
find -type d -iname .git
問題ありません。しかし、含めたくないディレクトリがあるとしましょう。問題がある場合は、そのディレクトリを「以前」および「バックアップ」と呼ぶことができます。
grep -v にパイプすると正常に動作します。
find -type d -iname .git | grep -v old | grep -v backup
しかし、findのマニュアルページを調べたときに-notがあることがわかりましたが、それがどのように機能するのかわかりません。
私はこれを試しましたが、彼は古いディレクトリを除外しません。
find -type d -iname .git -not -iname old
find-notはどのように機能しますか?問題を見つけるために使用できますか?
ベストアンサー1
findはこの状況を処理するのにはもっと複雑です。
式に以外の操作が含まれていない場合、
-prune
式
したがって、必要な部分を明示的に印刷してください。
find -type d \( -iname old -prune -o -iname backup -prune -o -iname .git -print \)
古いツリーとバックアップツリーの両方を検索しないでください。