linux
pcのコマンドプロンプトを利用していてファイルを探したいことはありませんか?
本記事は
find コマンドの使用方法を紹介します
findコマンドを使った検索方法
実際にコマンドプロンプトから動かしながら紹介します
カレントディレクトリ内の検索 : find ファイル名
最も基本的な使い方です。カレントディレクトリを起点にファイルを検索します
サブディレクトリを検索するにはディレクトリ名称を含める必要があります
find ファイル名
カレントディレクトリ内の再帰的検索 : find 検索先 -name ファイル名
検索対象のディレクトリから-nameで指定したファイル名のファイルを
サブディレクトリも含めて再帰的に検索します
*などの正規表現を使用しない場合ファイル名は完全一致のみ検索されます
検索先を / などのルートディレクトリにすることでファイルの全検索も可能です
find 検索先 -name ファイル名
空のファイル/ディレクトリの検索 : find 検索先 -empty
こちらは空のファイルやディレクトリを指定の検索先から再帰的に検索します
-type d でディレクトリのみ、
-type f
でファイルのみを検索することも可能です
find 検索先 -empty find 検索先 -empty -type d find 検索先 -empty -type f
修正日時によるファイル/ディレクトリの検索 : find 検索先 -mtime
少し時間の指定に癖がありますが日時指定によってファイル検索が可能です
find 検索先 -mtime 日時
その他の検索オプションは下記のとおりです
オプション | 概要 |
---|---|
-mmin | 最終修正日(分指定) |
-mtime | 最終修正日(日指定) |
-amin | 最終アクセス日(分指定) |
-atime | 最終アクセス日(日指定) |
ファイルの中身を検索 : find 検索先 -type f | xargs grep '検索文字列'
grepコマンドと組み合わせることでファイルの中身の文字列を対象に検索することができます。なお
grepコマンド の詳細はこちらをご覧ください
find 検索先 -type f | xargs grep '検索文字列' grep '検索文字列' -lr 検索先
findコマンドとgrepコマンドの組み合わせの場合と、grepコマンドのみの場合では出力結果が異なります。
検索文字列を含む行も出力してほしい場合は findコマンド+grepコマンド
ファイル名のみ出力してほしい場合は grepコマンド
と言った使い分けができます
まとめ
linuxのfindコマンドの主だった使い方を紹介しました
まったく使わない訳ではないですが、毎日使うコマンドではないため使いたいときには忘れているかと思います。
この記事がそのような方の手助けになれば幸いです
0 件のコメント :
コメントを投稿