文字列がディレクトリ名の一部のみである特定の文字列を持つディレクトリ名を再帰的に検索するにはどうすればよいですか


73

文字列がディレクトリ名の一部にすぎない特定の文字列を持つディレクトリ名を再帰的に検索するにはどうすればよいですか?

たとえば、ディレクトリ名は「8.0.3-99966_en」ですが、「99966」という文字列のディレクトリを再帰的に検索したいです。

回答:


95

find次のコマンドを使用できます。

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

例:

find ~ -type d -name "*99966*" -print

文字列「99966」を含む名前を持つすべてのディレクトリ(-type d)を検索し~-name "*99966*")、それらを出力します(-print)。


特定のディレクトリを検索から除外するにはどうすればよいですか?/を検索する必要がありますが、気にしない/ procの結果が大量に得られます。
Kozuch

@Kuzuch(しばらくして!):負のgrepを使用して、sinf検索を次のようにコマンドにパイプすることができます。grep -v "/ proc"これは、検索文字列を含むすべての行除外します。
フアンラナス


9

パイプを使用して出力をすることができgrep、それがディレクトリ名のハイライト持っている
ような何かを

find / -type d | grep "directory name"

/コンピュータ全体を検索することを示しています


@Zannaあなたは正しいです、私は答えを編集しました。それを指摘してくれてありがとう
コリン

3

これを行う簡単な方法は、を使用することfind | egrep stringです。ヒットが多すぎる場合は、-type dフラグを使用して検索します。検索するディレクトリツリーの先頭でコマンドを実行するか、ディレクトリを引数findとして指定する必要があります。

これを行う別の方法は、を使用することls -laR | egrep ^dです。

また、locateコマンドも便利です。locate string

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.