検索したくないディレクトリ名のリストをスキップしながら、指定したパスの各ファイルの文字列を検索するfind関数を作成しました。私はそうのように呼ばれるように私の.bashrcファイルにこのスクリプトを配置した:検索時に複数のディレクトリをスキップする方法
findTEXTinFILES /path/to/search 'text-to-find'
検索部分は素晴らしい作品、それが視覚的に際立っているように、それが検索テキストを色付け!しかし、私は得ることができません-pruneでリストされたディレクトリをスキップします。私はここに私が見つけることができるすべての記事を読んだが、私のために働いていない。私は運がない複数のバリエーションを試しました。だから私はいくつか質問があります:
- どのように複数のディレクトリをスキップしますか?
- 「 - 」や「wp-」で始まる名前など、部分的な名前のディレクトリをスキップするにはどうすればよいですか?
-name
と-path
の条件を同じスクリプトで組み合わせることはできますか?- 私が見逃したことがありますか?
私のサーバーは、bashシェルを備えたCENTOS 6.9 virtuozzoです。
偉大な答えです。ありがとう!短絡説明のための+1。現在のパス( '$ 1')を追加すると動作するようです。私は前に説明したことを見ていなかった。しかし、それでもうまくいかない状況がいくつかあります... テストのために、私は新しいディレクトリを作成し、検索するファイルを追加しましたが、スクリプトでは取り上げられていませんが、裸の 'find'。奇妙な。 '-o -name" $ 1/* copy * "-prune \"を追加することで、名前に 'copy'という単語を含むファイルをスキップしようとしましたが、まだ検索中に返されています。 –
ありがとうございました! (あなたの問題を解決すれば、それを[受け入れる](https://stackoverflow.com/help/someone-answers)に自由に感じてください:-))。あなたの '$ 1/* copy *'検索に関して、あなたは '-name'テストでパスを指定することはできません(' -path'のみで)。単語 'copy'を含むパスを削除するには、' -name '* copy *' -prune'を使います。 – randomir