たとえば、3つのサブディレクトリdir1
.. dir3
があるディレクトリdir
があるとします。内部には多くのファイルやその他のサブディレクトリがあります。
たとえば*.c
で終わるファイルを検索したいのですが、サブディレクトリ「dir/dir2」とそのすべてのサブディレクトリのみを検索したいと思います。どうすればそれを定式化できますか?
私がdir/
にいると仮定すると、
find . -name "*.c"
すべてのディレクトリを検索します。
dir2
のみに制限するにはどうすればよいですか?
Findは有効なパスを受け入れます。
find ./dir2 -name '*.c'
トリックを行う必要があります
dir
ディレクトリが/home/user/dir
フルパスを見つけることができます
find /home/user/dir/dir2 -name '*.c'
-path
の代わりにfind
の-name
パラメータを使用することもできます。
find . -path "dir2/*.c"
これにより、dir2
が直接のサブディレクトリE.Gでなくても、dir2
でファイルを見つけることができます。
# find . -path "*/dir2/*.c"
./dir_a/dir2/file.c
./dir_b/dir2/file.c
できるよ find dir2 -name '*.c'
(cd dir2; find -name '*.c')
Dir2ではなくdir1とdir3を見たい場合は、find {dir1,dir3} -name '*.c'