find コマンドは、Linux システム管理者にとってもユーザーにとっても強力なツールです。特定の条件に基づいて、ディレクトリ階層内のファイルやディレクトリを検索できます。オンプレミス システムとクラウドベースの環境のどちらを管理している場合でも、 find コマンドを使いこなすことで、効率を大幅に向上させることができます。
この記事では、最も一般的な find コマンドの使用シナリオと、使い始めるのに役立つ例を紹介します。
使用する最も一般的なシナリオ: find
1. 名前でファイルを検索する
find </path/to/look/into> -name <filename>
特定の名前に一致するファイルを検索するには、このコマンドを使用します。大文字と小文字を区別しない検索では、 -iname オプションを使用します:
find </path/to/look/into> -iname <filename>
2. 名前でディレクトリを検索する
find </path/to/look/into> -type d -name <directory_name>
このコマンドは、指定した名前に一致するディレクトリを検索します。大文字と小文字を区別しない検索には、 -iname を使用します:
find </path/to/look/into> -type d -iname <directory_name>
3. 拡張子でファイルを検索する
find </path/to/look/into> -name "*.txt"
特定の拡張子を持つファイルを検索します。例: .txt, .log, .shなど。
4. 隠しファイルを検索する
find </path/to/look/into> -type f -name ".*"
隠しファイル(ドット .)で始まるものは、このコマンドで検索できます。
5. 隠しディレクトリを検索する
find </path/to/look/into> -type d -name ".*"
指定したパス内の隠しディレクトリを検索するには、このコマンドを使用します。
6. 空のファイルを検索する
find </path/to/look/into> -type f -empty
空のファイルを検索します。これはクリーンアップ作業に役立ちます。
7. 空のディレクトリを検索する
find </path/to/look/into> -type d -empty
このコマンドは空のディレクトリを特定し、不要なフォルダーを削除できるようにします。
8. 過去 X 日以内に変更されたファイルを検索する
find </path/to/look/into> -type f -mtime -X
X を日数に置き換えることで、過去 X 日以内に変更されたファイルを見つけることができます(例: -mtime -7 は、過去 1 週間以内に変更されたファイルを対象とします)。
9. 指定したサイズより大きいファイルを検索する
find </path/to/look/into> -type f -size +500M
500 MB より大きいファイルを検索します。 500M を希望のサイズに置き換え、キロバイトには K 、ギガバイトには G を使用します。
10. 見つかったファイルに対してコマンドを実行する
find </path/to/look/into> -type f -name "*.log" -exec rm {} \;
このコマンドは、 .log ファイルを検索して削除します。見つかったファイルに対して実行したい任意のコマンドに rm を置き換えてください。
参考資料
より高度な使用方法とオプションについては、公式の find コマンドのマニュアルを参照してください:
GNU/Linux マニュアルの find