1. ホーム
  2. linux

[解決済み】 "find: paths must priore expression:" カレントディレクトリのファイルも見つける再帰的検索を指定するには?

2022-01-24 10:40:54

質問内容

を取得するのに苦労しています。 見つける は、現在のディレクトリとそのサブディレクトリにあるマッチを探します。

を実行すると find *test.c は、カレントディレクトリにあるマッチのみを表示します。(サブディレクトリは検索しません)

もし find . -name *test.c 同じ結果を期待したのですが、代わりにサブディレクトリにあるマッチしか表示されません。作業ディレクトリに一致するはずのファイルがあるときは、次のように表示されます。 find: paths must precede expression: mytest.c

このエラーの意味と、カレントディレクトリとそのサブディレクトリの両方からマッチを取得するにはどうすればよいですか?

解決方法は?

シェルのワイルドカード展開に遭遇しているため、通常検索に渡すものは次のようになります。

find . -name bobtest.c cattest.c snowtest.c

...シンタックスエラーが発生します。そこで、代わりに次のようにしてみてください。

find . -name '*test.c'

ファイル式をシングルクォートで囲むと、シェル(bash)がワイルドカードを展開しなくなることに注意してください。