特定のサブディレクトリの検索コマンド


17

のは、私はディレクトリ持っていると言うdir3つのサブディレクトリとしdir1... dir3。そして、内部には多くのファイルと他のサブディレクトリがあります。

*.c末尾を付けて、内部のファイルを検索したいのですが、サブディレクトリ「dir / dir2」とそのすべてのサブディレクトリのみを検索したいです。どうすればそれを定式化できますか?

私がいると仮定するとdir/

find . -name "*.c"

すべてのディレクトリを検索します。

のみに制限するにはどうすればよいdir2ですか?

回答:


11

Findは有効なパスを受け入れるため、

find ./dir2 -name '*.c'

トリックを行う必要があります

dirディレクトリがあれば、/home/user/dirフルパスを見つけることができます

find /home/user/dir/dir2 -name '*.c'

17

の代わりにの-pathパラメータを使用することもできます:find-name

find . -path "dir2/*.c"

これにより、直接のサブディレクトリでなくてdir2もファイルを見つけることができますdir2、EG:

# find . -path "*/dir2/*.c"
./dir_a/dir2/file.c
./dir_b/dir2/file.c

4

できるよ find dir2 -name '*.c'

あなたもできる (cd dir2; find -name '*.c')

dir2ではなくdir1とdir3を調べたい場合は、次のようにします。 find {dir1,dir3} -name '*.c'


3
最後のコマンドでは、中括弧は必要ありません。 find dir1 dir3 -name \*.cうまく動作します。
KeithB

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.