ワイルドカードの一致に基づいて、現在のフォルダーとサブフォルダー内のすべてのファイルを再帰的に検索するにはどうすればよいですか?

2060
john 2011-05-06 13:01.

ワイルドカードの一致に基づいて、現在のフォルダーとサブフォルダー内のすべてのファイルを再帰的に検索するにはどうすればよいですか?

16 answers

2990
tux21b 2011-05-06 13:03.

そのためにfindを使用します:

find . -name "foo*"

find開始点が必要であり、.(ドット)は現在のディレクトリを指します。

233
Paul Whipp 2012-08-15 20:56.

多くの場合、findをgrepにパイプする方が便利です。これにより、任意のワイルドカードマッチングのための正規表現の全機能が提供されます。

たとえば、ファイル名で大文字と小文字を区別しない文字列「foo」を含むすべてのファイルを検索するには、次のようにします。

~$ find . -print | grep -i foo
160
IslandCow 2011-05-06 13:15.

find パターンに一致するすべてのファイルを検索します。

find . -name "*foo"

ただし、写真が必要な場合:

tree -P "*foo"

お役に立てれば!

44
toddcscar 2017-01-14 16:47.
find -L . -name "foo*"

いくつかのケースでは、シンボリックディレクトリリンクを処理するために-Lパラメータが必要でした。デフォルトでは、シンボリックリンクは無視されます。そのような場合、ディレクトリをサブディレクトリに変更し、パターンに一致するファイルを確認しましたが、findがファイル名を返さないため、非常に混乱していました。-Lを使用すると、その問題が解決します。検索のシンボリックリンクオプションは-P-L-Hです。

40
kenorb 2018-06-14 05:22.

fd

findが遅すぎる場合は、fdユーティリティを試してくださいfind。Rustで作成する代わりのシンプルで高速な方法です。

構文:

fd PATTERN

デモ:

ホームページ: https://github.com/sharkdp/fd

37
kenorb 2017-01-14 06:23.

シェルが新しいグロブオプションをサポートしている場合(次の方法で有効にできますshopt -s globstar)、次を使用できます。

echo **/*foo*

ファイルやフォルダを再帰的に検索します。これは、Bash 4、zshおよび同様のシェルでサポートされています。


個人的に私はこのシェル関数を定義しています:

f() { find . -name "*$1*"; }

注:上記の行は、シェルに直接貼り付けることも、ユーザーの~/.bashrcファイルに追加することもできます。

次に、次のように入力してファイルを検索できます。

f some_name

または、単純な構文のfdユーティリティを使用することもできますfd pattern

29
XYZ_Linux 2017-02-06 03:32.
find <directory_path>  -type f -name "<wildcard-match>"

ワイルドカード一致では、一致させたい文字列を指定できます。例:* .c(すべてのcファイル用)

11
user8848899 2017-10-30 06:09.

次を使用できます。

# find . -type f  -name 'text_for_search'

REGXを使用したい場合は -iname

# find . -type f  -iname 'text_for_search'
9
Anshul Singhal 2018-11-27 18:54.

次のコマンドは、現在のフォルダとそのサブフォルダにある「パターン」という正確な名前のすべてのファイルを一覧表示します。

find ./ -name "pattern"

8
Alberto 2017-05-31 22:47.

ファイル検索の場合
find / -xdev -name settings.xml->コンピュータ全体
find ./ -xdev -name settings.xml->

拡張子タイプのファイルの現在のディレクトリとそのサブディレクトリ

find . -type f -name "*.iso"
8
Aleksandar Pavić 2017-08-09 20:27.

再帰ファイルを検索するデフォルトの方法であり、ほとんどの場合に利用できます。

find . -name "filepattern"

それはあなたが置かれている現在のディレクトリ内からファイル名またはパターンの再帰的なトラバースを開始します。findコマンドを使用すると、ワイルドカードやさまざまなスイッチを使用して、オプションの完全なリストを表示し、次のように入力できます。

man find

または、システムでマニュアルページが利用できない場合

find --help

ただし、ファイルシステム全体をトラバースしてファイルのインデックスを作成する、より近代的で高速なツールがあります。そのような一般的なツールの1つは、検索または配置/移動です。インストール方法については、OSのマニュアルを確認する必要があります。インストールされている場合は、データベースを開始する必要があります。インストールスクリプトで実行できない場合は、次のように入力して手動で実行できます。

sudo updatedb

そして、それを使用して特定のファイルタイプを探す

locate filename

または、現在のディレクトリ内からファイル名またはパターンを検索するには、次のように入力します。

 pwd | xargs -n 1 -I {} locate "filepattern"

ファイルのデータベースを調べて、入力したパターンに一致するパス名をすばやく出力します。検索のオプションの完全なリストを表示するには、次のように入力します。locate --helpまたはman locate

さらに、cronジョブを介してスケジュールされた時間にデータベースを更新するようにlocateを構成できるため、午前1時にdbを更新するサンプルcronは次のようになります。

0 1 * * * updatedb

updatebはファイルシステム全体をトラバースするためにroot権限を必要とするため、これらのcronジョブはrootで構成する必要があります。

6
MukeshKoshyM 2018-08-18 08:56.

以下のコマンドは、任意のファイルを検索するのに役立ちます

1)ケースに関係なく
2)結果許可なくフォルダを除外します
3)ルートまたは任意のパスから検索します。好みのパスで/を変更します。

構文:
find -iname '' 2>&1 | grep -v "アクセスが拒否されました"


find / -iname'C * .xml '2>&1 | grep -v "アクセスが拒否されました"

find / -iname '*C*.xml'   2>&1 | grep -v "Permission denied"
6
melchi 2019-11-11 23:01.

再帰的に移動するときに、locateがあまり使用されていないことに驚いています。

最初に「$ PWD」を検索して、現在関心のあるフォルダー内のファイルのリストを取得してから、必要に応じてそれらに対してgrepsを実行します。

locate "$PWD" | grep -P <pattern>

もちろん、これは、updatedbが実行され、インデックスが定期的に更新されることを前提としています。これは、検索を実行してツリーを下に移動するように要求するよりも、ファイルを検索するためのはるかに高速な方法です。完全を期すためにこれに言及します。ツリーがそれほど重くない場合は、findを使用することに反対するものはありません。

5
Shital Shah 2020-01-15 22:56.

使用する

find path/to/dir -name "*.ext1" -o -name "*.ext2"

説明

  1. 最初のパラメータは、検索するディレクトリです。
  2. By default find does recursion.
  3. The -o stands for -or. So above means search for this wildcard OR this one. If you have only one pattern then no need for -o.
  4. The quotes around the wildcard pattern are required.
4
Reza Harasani 2018-02-05 16:52.

If you want to search special file with wildcard, you can used following code:

find . -type f -name "*.conf"

Suppose, you want to search every .conf files from here:

. means search started from here (current place)
-type means type of search item that here is file (f).
-name means you want to search files with *.conf names.

3
Jay Yang 2019-02-22 16:46.

This will search all the related files in current and sub directories, calculating their line count separately as well as totally:

find . -name "*.wanted" | xargs wc -l

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

ホワイトハウスの最も記憶に残る結婚式を見てください

ホワイトハウスの最も記憶に残る結婚式を見てください

過去200年以上の間にホワイトハウスで結婚したのはほんの数人です。彼らは誰でしたか、そしてそこで結婚式を獲得するために何が必要ですか?

Netflixのジョエルマクヘイルとのジョエルマクヘイルショーは、ジョエルマクヘイルにぴったりの車を復活させます

Netflixのジョエルマクヘイルとのジョエルマクヘイルショーは、ジョエルマクヘイルにぴったりの車を復活させます

ジョエル・マクヘイル、マイク・コルター(スクリーンショット:Netflix)「私の神よ、これは1つのことを変えます。」これは、ジョエル・マクヘイルとのジョエル・マクヘイルショーの最後のジョークです。リアリティ番組の嘲笑と寛大なスナキネスの時間は、なじみのある顔を見つけます。

チームロケットは20年ぶりにポケモンシリーズでアッシュを破った

チームロケットは20年ぶりにポケモンシリーズでアッシュを破った

画像経由:@pancakeparadox(Twitter)。1997年にポケモンシリーズが初公開されて以来、チームロケット(またはラテンアメリカではチームロケット)として知られる悪役のグループは、何度もアッシュに直面してきました。

今週の科学技術でトランプがめちゃくちゃになったことすべて

今週の科学技術でトランプがめちゃくちゃになったことすべて

画像:ゲッティ私たち全員が千年もの間生きていて、私たちの体が燃える風によってほこりと長引く悲鳴だけに押し流されたと考えるのは驚くべきことです。私たちがそうしていないことを除いて、それはトランプ政権の最初の週の終わりであり、驚くほど多くの恐ろしいことがすでに起こっています。

あなたの「マイクロピッグ」が代わりに通常のピッグになってしまったとしても驚かないでください

あなたの「マイクロピッグ」が代わりに通常のピッグになってしまったとしても驚かないでください

そして今、あることを手に入れていると思っていたが、まったく別のことをしてしまった男の話。CBSニュースは、彼女が「ミニブタ」であるという誤ったふりをしてエスターを養子にしたカナダ人のスティーブジェンキンスの心温まる物語をもたらします。これは、特にせいぜいゴールデンレトリバーまたはセントバーナードをストラップします。

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

シーレン「Ms.JuicyBaby」ピアソンは、先月脳卒中で入院した後、「もう一度たくさんのことをする方法を学ばなければならない」ため、言語療法を受けていることを明らかにしました。

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

オスカー受賞者の世紀半ばの家には、3つのベッドルーム、2つのバス、オーシャンフロントの景色があります。

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、生後4か月の娘、モナコに母乳育児をしていると語った。

投資ノート:Bioscout AU$300万シード

投資ノート:Bioscout AU$300万シード

Bioscoutは、農家を運転席に置くという使命を負っています。Artesian(GrainInnovate)やUniseedと並んで、最新のシードラウンドでチームを支援できることをうれしく思います。問題真菌症による重大な作物の損失は、農民にとって試練であることが証明されています。

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

遠隔医療は、パンデミック後の時代では新しいものではなく、時代遅れの分野でもありません。しかし、業界を詳しく見ると、需要と供給の強力な持続可能性と、米国で絶え間ない革命となる強力な潜在的成長曲線を示しています。

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

2021年は、世界的なベンチャーキャピタル(VC)の資金調達にとって記録的な年でした。DealStreetAsiaによると、東南アジアも例外ではなく、この地域では年間で記録的な25の新しいユニコーンが採掘されました。

ムーアの法則を超えて

ムーアの法則を超えて

計算に対する私たちの欲求とムーアの法則が提供できるものとの間には、指数関数的に増大するギャップがあります。私たちの文明は計算に基づいています—建築と想像力の現在の限界を超える技術を見つけなければなりません。

Language