更新履歴
- 【完全ガイド】WinMergeでバイナリ比較をする方法
- SwaggerとOpenAPIの違いを徹底解説!仕様とツールの関係性を理解する
- 【Python】ファイル存在チェックの実装方法(pathlib、os.path)
- Pythonで文字列を除去する方法を完全解説!strip・replace・正規表現
- スタック領域とヒープ領域の違いとは?メモリ管理から使い分けまで徹底解説
- Python Docstringの書き方完全ガイド|主要スタイルの比較と保守性を高める記述
- シングルトン(Singleton)デザインパターンを徹底解説!Java実装例・メリット・デメリット
- サインインとログインの違いとは?意味・使い分けをわかりやすく解説
- 静的サイトと動的サイトの違いを徹底比較!メリット・デメリットと選び方を解説
- モノリスとマイクロサービスの違いを徹底比較|メリット・デメリットと失敗しない選定基準
- RESTとSOAPの違いを徹底比較!特徴・メリット・使い分けを解説
- 同期・非同期とブロッキング・ノンブロッキングの違い|概念と使い分けを徹底比較
- マルチプロセスとマルチスレッドの違いを解説!メリット・デメリット・使い分け
- hostsファイルとDNSの違いとは?優先順位・仕組み・使い分けを解説
- Excelで複数行を1行にまとめる方法まとめ【関数・PQ対応】
- レスポンスタイムとターンアラウンドタイムの違い【基本情報対策】
- ステートレスとステートフルの違いを徹底解説!エンジニアが知るべき仕組みと具体例
- shとbashの違いを徹底解説!シェルスクリプトの使い分け
- 【徹底比較】イーサネットとWi-Fi違いと選び方を解説
- 【徹底解説】UTF-8 BOMあり・なしの違いと選び方
お役立ちツール
Linuxユーザにお勧めの本
Linuxでファイルやディレクトリを検索する際、便利なのがfindコマンドです。
本記事では、「再帰的にファイル名を検索する」というテーマに焦点を当て、findコマンドの使い方を解説します。
基本構文
findコマンドの基本構文は以下の通りです。
find [検索開始ディレクトリ] [条件] [アクション]- 検索開始ディレクトリ
検索を開始するディレクトリのパスを指定します。/を指定するとシステム全体を検索しますが、検索範囲が広くなるため注意が必要です。 - 条件
検索する対象の条件(例: ファイル名、サイズなど)を指定します。 - アクション
検索結果に対して実行する処理を指定します。省略すると検索結果がそのまま表示されます。
ファイル名を再帰的に検索する方法
特定の名前やパターンに一致するファイルを検索するには、-nameオプションを使用します。
findコマンドはデフォルトで指定したディレクトリ以下を再帰的に検索します。
そのため、特別なオプションを指定しなくても再帰検索が行われます。
例1: 現在のディレクトリ配下から「example.txt」を検索する
find . -name "example.txt".
現在のディレクトリを指定しています。-name "example.txt"
ファイル名が正確にexample.txtと一致するファイルを検索します。
例2: 部分一致で検索する(ワイルドカード使用)
find . -name "*.txt"*.txt
.txtで終わるすべてのファイルを検索します。
注意:
-nameオプションは大文字小文字を区別します。大文字小文字を無視して検索したい場合は、次のセクションをご参照ください。
大文字小文字を区別せずに検索する
大文字小文字を区別せずに検索する場合は、-inameオプションを使用します。
例: .TXTや.txtを含むファイルを検索
find . -iname "*.txt"複数の条件を指定して検索する
-o(OR)や-a(AND)を使って複数の条件を組み合わせて検索することも可能です。
例: .txtまたは.logファイルを検索
find . \( -name "*.txt" -o -name "*.log" \)\(と\)
条件をグループ化するための括弧です。エスケープが必要です。
検索結果のファイルを削除する
検索したファイルに対して特定の操作を行いたい場合、-execオプションを使用します。
例: 検索結果のファイルを削除する
find . -name "*.tmp" -exec rm {} \;-exec
条件に一致したファイルに対して指定したコマンドを実行します。{}
検索結果の各ファイル名がここに挿入されます。\;
-execオプションの終了を示します。
よく使うオプションまとめ
| オプション | 説明 |
|---|---|
-name | 指定した名前と一致するファイルを検索 |
-iname | 大文字小文字を区別せずに名前を検索 |
-type f | ファイルのみを対象に検索 |
-type d | ディレクトリのみを対象に検索 |
-size +N | サイズがNブロック以上のファイルを検索 |
-mtime -N | 最終更新日時がN日以内のファイルを検索 |
-exec | 条件に一致するファイルに対してコマンドを実行 |
実用例まとめ
1. 特定のファイルを再帰的に検索
find /home/user -name "myfile.txt"2. すべての.logファイルを検索し、削除
find /var/log -name "*.log" -exec rm {} \;3. 直近7日間に変更された.confファイルを検索
find /etc -name "*.conf" -mtime -7ファイルの中身を検索したい場合
ファイルの中身を検索したい場合は、こちらの記事をご参照ください。
まとめ
findは多様な条件を組み合わせて柔軟に検索することができるコマンドです。
再帰的な検索はfindの標準動作であるため、特別な指定は不要です。
ぜひ、日常的なファイル管理やトラブルシューティングに活用してみてください。
Linuxユーザにお勧めの本
以上で本記事の解説を終わります。
よいITライフを!