findコマンド ファイルを探す

いつもfindコマンドの使い方を忘れ、その度に調べているので備忘録

findコマンド
場所を指定してファイルを検索する。ファイル名、ファイルの種類、更新日時などで検索可能

ファイル名による検索

これを使おうとしていつも忘れます --nameだと思ったら-nameだったというオチ。

$ find [場所] -name [名前]

使用例

$ find . -name *.csv //カレントディレクトリから拡張子csvのファイルを探す
$ find /Document -name memo.txt //ドキュメントの下のmemo.txtという名前のファイルを探す。

-inameとすることで大文字小文字を無視します。正規表現を使いたい場合は-regexオプションを使います

$ find . -iname memo.txt // memo.txtも Memo.txtも対象
$ find . -regex '.*memo.txt' //memo.txtで終わるファイルが対象

※findの正規表現はgrepの部分一致とは違い全体一致なのでパス全体にマッチしなければ対象とならないことは注意

ファイルの種類で条件検索

上のようにファイルの名前で検索する場合ディレクトリも検索対象になりますがファイルのみやディレクトリのみなどの検索も可能です。

$ find [場所] -type [ファイルの種類]

f: ファイル
d: ディレクトリ
l: シンボリックリンク

使用例

$ find . -name config -type d //configを名前に含むディレクトリを検索
$ find . -name error -type f //errorを名前に含むファイルを検索