投稿履歴
- shとbashの違いを徹底解説!シェルスクリプトの使い分け
- 【徹底比較】イーサネットとWi-Fi違いと選び方を解説
- 【徹底解説】UTF-8 BOMあり・なしの違いと選び方
- npmとYarn、開発者が知るべき違いとは?
- 【Linux】nanoコマンドの使い方 | 基本操作からショートカット、便利設定
- 「Git pull 強制」は危険?ローカル変更を破棄してリモートに合わせる安全な方法
- 【保存版】PNGとJPEGの違いを徹底比較!用途別使い分けガイド
- GUIとCUIの違いとは?初心者でもわかるメリット・デメリットと使い分けを徹底解説
- Web1 Web2 Web3 違いを徹底解説:それぞれの特徴と比較
- SMTP・POP3・IMAPの違いを徹底解説 | メール送受信プロトコル
- 【Linux】容量の大きいファイル・ディレクトリを確認する方法
- nc(Netcat)コマンド徹底解説|ポート指定で疎通確認する
- 【VSCode】JSON・XMLを整形・最小化する方法
- 【Excel】シートが見えない!表示されない原因と対処法
- 【Linux】lsofコマンドの見方・活用ガイド
- 【A5M2】テーブルにNULL値を入力する方法
- 【Linux】標準出力と標準エラー出力の違い
- DRAMとSRAMの違い・覚え方を徹底解説!
- 【サクラエディタ】スペースとタブを置換する方法
- 【Excel】VBAの起動方法(開発タブが表示されない場合)
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ライフを!