【Linux】特定の拡張子を持つファイル名を再帰的に検索する方法

よく使うコマンドですが,忘れがちなのでここにメモしておきます.

目次

構文


find <directory> -type f -name '*.<extension>'

複数条件


find <directory> -type f -name '*.<extension1>' -or -name '*.<extension2>'

特定のディレクトリを除外する


find <directory> -type d -path "<exclude_path>" -prune -or -type f -print 

-type d -path "<exclude_path>" -pruneが除外するためのオプションです.

詳しく見ると-pruneが除外条件で-or以降で全ファイルの指定しています.すなわち,<exclude_path>を除外した全ファイルが対象となります.

さらに条件を追加する場合-andオプションなどを使用します.

使い方

カレントディレクトリ配下の「.cpp」を検索する場合


find . -type f -name '*.cpp'

カレントディレクトリ配下の「.cpp」と「.hpp」を検索する場合


find . -type f -name '*.cpp' -or -name '*.hpp'
よかったらシェアしてね!
目次