スポンサーリンク

findの-nameオプションでor検索

※MACターミナル(BSD系)での動作確認です。

or検索する場合には、下記のように -or を使います。

$ find . -type f -name 2.c -or -name 3.h

実際に、サンプルファイルで試してみます。
まずは、下記のように、.cファイルと.hファイルを作成します。
参考:[シェル]連番でプレフィックス/サフィックスを付与してファイルをコピー

$ mkdir dir001
$ cd dir001/
$ for file in $(seq 4)
> do
> touch ${file}.c
> touch ${file}.h
> done
$ ls
1.c	1.h	2.c	2.h	3.c	3.h	4.c	4.h
$ cd ..

2.cと3.hファイルをor検索します。
下記が実行結果になります。

$ find . -type f -name 2.c -or -name 3.h
./dir001/2.c
./dir001/3.h

スポンサーリンク

ワイルドカードでor検索

ワイルドカードも便利です。

例えば、.cファイルと.hファイルをor検索します。
下記が実行結果になります。

$ find . -type f -name *\.c -or -name *\.h
./dir001/1.c
./dir001/1.h
./dir001/2.c
./dir001/2.h
./dir001/3.c
./dir001/3.h
./dir001/4.c
./dir001/4.h

findの-nameオプションでnot検索

最後に、not検索です。
下記のように、.cファイルだが、3.cファイルを除外する場合です。
下記が実行結果になります。
$ find . -type f -name *\.c -not -name 3.c
./dir001/1.c
./dir001/2.c
./dir001/4.c

スポンサーリンク