投稿履歴
- 【A5M2】テーブルにNULL値を入力する方法
- 【Linux】標準出力と標準エラー出力の違い
- DRAMとSRAMの違い・覚え方を徹底解説!
- 【サクラエディタ】スペースとタブを置換する方法
- 【Excel】VBAの起動方法(開発タブが表示されない場合)
- 今日から使える!Gitコミットメッセージの書き方と型
- 【Excel】区切り指定でCSVを貼り付ける方法
- 【Linux】テキストファイルの重複行を削除する方法
- 【サクラエディタ】重複行を削除する方法
- Excelのプルダウンリストをショートカットで操作・管理する
- 【サクラエディタ】タブ表示の設定と使いこなしガイド
- 【サクラエディタ】矩形選択(ボックス選択)を完全ガイド
- 【サクラエディタ】Grep機能の使い方を初心者にもわかりやすく解説!
- TCPとUDPの違いと覚え方:信頼性 vs スピードを徹底解説
- Pythonの仮想環境を終了(deactivate)する方法
- 【Linux】zipファイルの圧縮方法(zipコマンド)
- LinuxでZIPファイルを解凍する方法【unzipコマンド】
- 暗号化アルゴリズムの種類:代表的なアルゴリズムを紹介!
- 【Oracle】SELECT結果を同一テーブルへINSERTする
- 【Oracle】ROWNUMとROW_NUMBERの違いと使い分け
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ライフを!