web-dev-qa-db-ja.com

Linuxはサブフォルダー内のフォルダーを見つける

子ディレクトリの下にネストされた480debugerrorという名前のディレクトリを見つけようとしています。正確なパスがわからない、または検索したいディレクトリの正確なスペルがわかっていても。

特定の接頭辞または接尾辞を持つディレクトリ、たとえば名前が「デバッグ」または「デバッグエラー」で、不明な接頭辞または接尾辞を持つディレクトリを見つけるLinuxコマンドはありますか?

19
Bharanikumar

find が必要なものです。

$ find -type d -name '*debugerror*'

または

$ find -type d -name '480debugerror'

フォルダー名がわかっている場合。

16
thkala
find . -type d \( -iname '*error*' -o -iname '*debug*' \) 
8
Zsolt Botykai
locate -i "480debugerror"

pCで索引付けされたすべてのファイルをリストするデータベースをチェックします。私はよくこのようなシナリオを持っているので、次のような検索を行います。

locate -i "debug" | grep -i "log"

これは、パスにあるすべてのファイルを検索します(大文字と小文字に関係なく(つまり、-iの意味です))「デバッグ」と「ログ」(わからない場合は、| grepは、locateが生成する結果内を検索することを意味します)

Locate Over Findを使用する利点は、Locateの方が出力がはるかに高速になることです(データベースをチェックするだけなので)。ただし、ファイル/フォルダーにインデックスが付けられていないと、何も見つかりません。 (データベースを更新するには、Sudo updatedb

1
jcuenod

バッシュでは

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

480、debug、またはerrorを含む名前のディレクトリを再帰的に検索します。

1
user2394284