検索結果が0件だと、「それは存在しない」と読んでしまいがちです。実際に言っているのは、今回見た範囲で、この書き方では見つからなかった、ということだけです。黙って0件になる3つのケースツールが一部のファイルを飛ばしている場合。バージョン管理に付いている検索は、バイナリと判定したファイルを標準で飛ばします。その判定が先頭の数バイトだけで決まることもあります。1行に1件ずつデータを積んだログファイルはバイナリと誤判定されやすく、ファイルごと飛ばされても何の知らせもありません。範囲が思っているものと違う場合。除外ルール、パスの指定、デフォルトの検索の深さ。どれか1つでも、検索が半分しか走っていないことがあります。探している書き方が、中身の書き方と違う場合。漢字のファイル名はリンクの中ではパーセントエンコードされますし、設定ファイルの中の識別子には引用符やエスケープ文字が付いていることがあります。文字どおりに探せば、文字どおりのものしか見つかりません。危うく消すところだったあのときの0件は、「このファイルを参照しているものはないので、削除していい」という根拠に使われかけていました。実際にはあるログファイルが参照していて、そのログファイルがバイナリとして飛ばされていただけでした。0件を信じて削除していたら、まだ使われているものを消していたことになります。しかも、誰かが気づくのはずっと先だったはずです。いまのやり方0件が出たら、結論にはせず、もう一度確かめる合図として扱います。何かが存在しないと言うには、原理の違う2つの方法でどちらも見つからないことを確かめます。1つは文字どおりに照合する方法。もう1つは角度を変えた方法で、たとえばファイルの中身をそのまま全部出力してから絞り込み、ツールが自分で行っている判定を通さないようにします。あることの証明は、1つ見つかれば足ります。ないことを証明するには、隅々まで見る必要があります。