Linuxコマンド · 1 min read · Sep 16, 2025

初心者のためのLinux Findコマンドの実用的な16の例

Findは最も頻繁に使用されるLinuxコマンドの1つであり、コマンドラインオプションの形で多くの機能を提供します。このチュートリアルは初心者を対象としており、findコマンドの基本的な使い方と、提供される便利なコマンドラインオプションのいくつかについて説明します。

注意: 特に指定がない限り、このチュートリアルのすべてのfindコマンド関連の例には、以下のファイルを使用します。

1. 現在のディレクトリとそのサブディレクトリ内のすべてのファイルをリストする方法

findコマンドを使用すると、現在のディレクトリとそのサブディレクトリ内のすべてのファイルを迅速にリストできます。これを行うには、引数やオプションなしでコマンドを実行するだけです。

find

ここでの出力は次のとおりです:

現在のディレクトリとそのサブディレクトリ内のすべてのファイルをリストする

もちろん、リストしたい内容のディレクトリが現在のディレクトリでない場合は、完全なパスを提供する必要があります。

2. 名前でファイルを検索する方法

特定のファイルを名前で検索したい場合は、findコマンドを使用できます。 -name コマンドラインオプションを使用すると、これを行うことができます。構文は次のとおりです:

find [dir-path] -name [filename]

たとえば、次のコマンドは、現在のディレクトリで’testfile1.txt’という名前のファイルを検索します。

find . -name testfile1.txt

ここでの出力は次のとおりです。

同様に、別のディレクトリでファイルを検索できます。ディレクトリが現在の作業ディレクトリのサブディレクトリである場合は、findコマンドが自動的にすべてのサブディレクトリを検索するため、何もする必要はありません。

しかし、まったく別のディレクトリである場合は、完全なパスを提供する必要があります。たとえば、次のコマンドは、ユーザーのホームディレクトリでファイルを検索します:

find /home -name testfile1.txt

3. 特定のタイプのファイルを検索する方法

findコマンドを使用すると、ディレクトリ(およびそのサブディレクトリ)内の同じタイプのファイルを検索できます。たとえば、次のコマンドは、現在の作業ディレクトリ内のすべての.txtファイルを検索します。

find . -name "*.txt"

ご存じないかもしれませんが、*はワイルドカード文字です。ワイルドカード文字の詳細については、こちらをご覧ください。

4. 大文字と小文字を区別しない検索を実行する方法

デフォルトでは、findコマンドは大文字と小文字を区別する検索を実行します(大文字と小文字の文字を異なるものとして扱います)。しかし、必要に応じて、コマンドに大文字と小文字を区別しない検索を強制することができます。これは、 -iname コマンドラインオプションを使用することで実現できます。

find -iname [filename]

たとえば、

find -iname testfile1.txt

ここでの出力は次のとおりです。

5. 検索パターンに一致しない名前のみを表示する方法

必要に応じて、findコマンドに検索パターンに一致しないファイル名を印刷するように要求することもできます(逆検索とも呼ばれます)。この機能には、 ! または -not 演算子を使用します。

たとえば、

find . -not -name "*.txt"

ここでの出力は次のとおりです。

ご覧のとおり、.txt以外の拡張子を持つすべてのファイルが出力に表示されます。

6. 検索をディレクトリレベルに制限する方法

findコマンドを使用すると、特定のディレクトリの深さに検索を制限することもできます。これを行うためのコマンドラインオプションの1つは -maxdepth です。

たとえば、次のディレクトリ構造を考えてみましょう:

ディレクトリレベルに検索を制限する

今、’find’サブディレクトリまでのみ検索するようにfindに指示したい場合(つまり、’howtoforge’サブディレクトリを無視する必要がある場合)、次のコマンドを使用できます:

find . -maxdepth 3 -name "*.txt"

ここで、’-maxdepth 3’は’find’に内部に入って検索するように強制し、最初のレベルはトップレベル(または現在の作業)ディレクトリです。

このコマンドの出力は次のとおりです:

ディレクトリレベルに検索を制限する出力

  • maxdepth のように、 mindepth *という別のオプションもあります(使用法: ‘-mindepth [N]’)。このオプションを使用すると、findコマンドは検索操作を開始する前に’N’レベル下に移動するように強制されます。

たとえば、

find . -mindepth 3 -name "*.txt"

したがって、’find’ディレクトリとその下のディレクトリのみが検索されます。

同様に、レベル2から4の間にあるサブディレクトリで.txtファイルを検索したい場合は、次のコマンドを使用できます。

find -mindepth 2 -maxdepth 4 -name "*.txt"

7. すべての空のファイルを表示する

特定のディレクトリ(およびそのサブディレクトリ)内のすべての空のファイルを表示するためにfindコマンドを使用できます。これは、 -empty オプションを使用して行うことができます。

たとえば、現在の作業ディレクトリ内のすべての空のファイルを表示するには、次のコマンドを使用します:

$ find . -empty

8. 特定のグループに属するファイルを検索する方法

findコマンドを使用すると、特定のグループに属するファイルを検索できます。 -group オプションを使用すると、これを行うことができます。たとえば、次のコマンドは、現在の作業ディレクトリとそのサブディレクトリ内に存在する’howtoforge’グループに属するすべてのファイルをリストします。

find . -group howtoforge -name "*.txt"

ここでの出力は次のとおりです:

9. 特定のユーザーが所有するファイルを検索する方法

findコマンドを使用すると、所有権に基づいてファイルを検索できます。 -user オプションを使用すると、これを行うことができます。たとえば、次のコマンドは、ユーザー’himanshu’が所有する現在のディレクトリ内のすべての.txtファイルを表示します。

find . -user himanshu -name "*.txt"

10. 最近変更されたファイルを検索する方法

findコマンドを使用すると、最近変更されたファイルを検索できます。これは、 -mmin オプションを使用して行うことができます。このオプションには、分数として扱われる数値を渡す必要があります。

たとえば、現在のディレクトリ内で1分前に変更された.txtファイルを検索したい場合は、次のコマンドを使用できます。

find . -mmin 1 -name "*.txt"

11. 特定のファイルよりも最近変更されたファイルを検索する方法

はい、findコマンドを使用すると、特定のファイルよりも最近変更されたファイルを検索することもできます。この機能は、比較したいファイル名を渡す必要がある -newer オプションを使用してアクセスできます。

例:

find . -newer ./examples/find/howtoforge/old.txt -name "*.txt"

12. 出力にディレクトリ名のみを表示する方法

findコマンドに出力にディレクトリ名のみを表示させるコマンドラインオプションもあります。このオプションは -type で、値としてdを渡す必要があります。

たとえば:

find -type d

ここでの出力は次のとおりです:

  • d の他にも、 -type *オプションに値として渡すことができるいくつかの他の文字があります。それらについては、findコマンドのマニュアルページをご覧ください。

13. inode番号に基づいてファイルを検索する方法

inode番号をfindコマンドに渡して、対応するファイル名を見つけるように要求することもできます。この機能は、inode番号を値として必要とする -inum オプションを通じてアクセスできます。

以下は例です:

ヒント: ‘ls -li’コマンドを使用してファイルのinode番号を見つけることができます。

14. 最後のアクセス時間に基づいてファイルを検索する方法

findコマンドを使用すると、最後にアクセスされた時間に基づいてファイルを検索できます。ツールに’n’分前に最後にアクセスされたファイルを表示するように要求できます。この機能は、 -amin コマンドラインオプションを使用してアクセスできます。

たとえば、次のコマンドは、現在のディレクトリ内で1分前にアクセスされた.txtファイルを検索します:

find -amin 1 -name "*.txt"

15. findで正規表現(regex)を使用する方法

findコマンドは、正規表現の使用をサポートしています。これらは、-regexコマンドラインオプションで指定できます。

find ./ -type f -regex '\.\/test[1-2]\.txt'

この正規表現は、testという単語で始まり、1から2の間の数字を含み、.txtで終わるすべてのファイルを見つけます。正規表現では、”./“がファイルの一部であり、ファイル名だけではないことを考慮することが重要です。

Linux find regex

16. findコマンドでサイズでファイルを検索する方法

  • -size *コマンドラインオプションを使用すると、サイズでファイルを検索できます。たとえば、100 MBより大きいファイルを見つけたい場合は、次のコマンドを使用します:
find ./ -type f -size +100M

次のサイズ単位を使用できます:

K = キロバイト
M = メガバイト
G = ギガバイト

したがって、Linuxで大きなファイルを簡単に見つけることができます。

結論

このチュートリアルで紹介した例は、findコマンドが基本的にどのように機能するか、また提供される便利なコマンドラインオプションのいくつかについて良いアイデアを与えるはずです。これらの例をシステムで試してみて、ツールのマニュアルページも確認してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。