web-dev-qa-db-ja.com

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

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

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

71
Bob Perez

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

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

例:

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

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

93
lgarzo

「許可が拒否されました」という結果をすべて回避するには、次を使用できます。

find / -type d -name "*99966*" -print 2>/dev/null

nullデバイス に関するこの記事と 標準ストリーム に関するこの記事を参照してください。

19
Dan Fletcher

出力をgrepにパイプして、ディレクトリ名を強調表示させることができます。
何かのようなもの

find / -type d | grep "directory name"

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

8
Collin

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

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

locateコマンドも便利です:locate string

3
belacqua