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

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

「水曜日」シーズン1の中心には大きなミステリーがあります

「水曜日」シーズン1の中心には大きなミステリーがあります

Netflixの「水曜日」は、典型的な10代のドラマ以上のものであり、実際、シーズン1にはその中心に大きなミステリーがあります.

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ケイト・ミドルトンは、州の夕食会と州の訪問中にカミラ・パーカー・ボウルズからスポットライトを奪いたくなかった、と専門家は言う.

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンが、オリビア・ワイルドが彼女とハリー・スタイルズとの間の「難しい」が「非常に友好的」な分割を恒久的にすることを望んでいる理由を見つけてください.

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする 

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする&nbsp;

エリザベス女王の死後、ケイト・ミドルトンが舞台裏で「非常に困難な時期」を過ごしていたと伝えられている理由を調べてください.

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セント ヘレナ島のジェイコブズ ラダーは 699 段の真っ直ぐ上る階段で、頂上に到達すると証明書が発行されるほどの難易度です。

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

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

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

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

HMSプリンスオブウェールズの橋はスターウォーズからまっすぐです

HMSプリンスオブウェールズの橋はスターウォーズからまっすぐです

BAE Systems Maritimeは昨日、英国海軍の2番目のクイーンエリザベスクラスの空母であるHMSプリンスオブウェールズのブリッジモジュールを展開しました。公海を航海するよりも、アウターリムの惑星を周回してタイファイターを発射する必要があるようです。70,000の排水量のトン運搬船は、2020年に就役し、姉のエリザベス女王と同様に、約40機の航空機を運ぶ予定です。

ルイビルはサヨナラゲームでウェイクフォレストを倒すために家を盗んだ

ルイビルはサヨナラゲームでウェイクフォレストを倒すために家を盗んだ

ルイビルは、通常の大学野球の強みであるピッチング、ディフェンス、スマートベースランニングを通じて、全国ランキングのトップ5と19-2の会議記録への道を歩みました。昨夜、彼らは野球の最もエキサイティングなプレーの1つである盗塁を使用して、ウェイクフォレストのスイープを完了しました。

おいしいツイストのためにコーンブレッドであなたの次のサンドイッチを作りましょう

おいしいツイストのためにコーンブレッドであなたの次のサンドイッチを作りましょう

粗いパン粉とふわふわの食感のコーンブレッドは、唐辛子を吸い上げるのに理想的な乗り物です。しかし、それだけではありません。

別の驚くべきマーベルヒーローがキャプテンアメリカに参加します:シビルウォー!

別の驚くべきマーベルヒーローがキャプテンアメリカに参加します:シビルウォー!

ニール・ブロムカンプが、チャッピーが第10地区をどのように遅らせたのかについて話します。フォースの覚醒の噂は、次の予告編に何を期待するかについてのいじめを提供します。

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、子供向けのパズルの本の序文を書き、ジョージ王子、シャーロット王女、ルイ王子と一緒にテキストを読むと述べた.

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

Yak's Produce は、数十個のつぶれたメロンを野生動物のリハビリ専門家であるレスリー グリーンと彼女のルイジアナ州の救助施設で暮らす 42 匹の動物に寄付しました。

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

8 枚目のスタジオ アルバムのリリースに向けて準備を進めているデミ ロヴァートは、「スーパー グレート ガイ」と付き合っている、と情報筋は PEOPLE に確認しています。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

ホームオフィスのセットアップ術を極めよう!AppExert の開発者は、家族全員が一緒にいる場合でも、在宅勤務の技術を習得しています。祖父や曽祖父が共同家族で暮らしていた頃の記憶がよみがえりました。

2022 年、私たちのデジタル ライフはどこで終わり、「リアル ライフ」はどこから始まるのでしょうか?

20 年前のタイムトラベラーでさえ、日常生活におけるデジタルおよびインターネットベースのサービスの重要性に驚くことでしょう。MySpace、eBay、Napster などのプラットフォームは、高速化に焦点を合わせた世界がどのようなものになるかを示してくれました。

ニューロマーケティングの秘密科学

ニューロマーケティングの秘密科学

マーケティング担当者が人間の欲望を操作するために使用する、最先端の (気味が悪いと言う人もいます) メソッドを探ります。カートをいっぱいにして 3 桁の領収書を持って店を出る前に、ほんの数点の商品を買いに行ったことはありませんか? あなたは一人じゃない。

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

私たちが住んでいる世界を確実に理解するには、データが必要です。ただし、空間参照がない場合、このデータは地理的コンテキストがないと役に立たなくなる可能性があります。

Language