Linuxシステムでファイルやフォルダーを効率的に見つけるには、主に2つのコマンドが利用可能です:findとlocateです。どちらにもそれぞれの強みと使用ケースがあります。このガイドでは、ホームディレクトリやハードディスク全体で必要なデータを迅速かつ的確に見つけるために、これらのコマンドを使用する方法を説明します。
重要なポイント
- locateはデータベースを使用するため速いですが、最新でない可能性があります。
- findはハードディスクを直接検索し、常に最新ですが、遅くなる場合があります。
- 両方のコマンドは、検索クエリを洗練するためのさまざまなオプションを提供します。
ステップバイステップガイド
1. 概要:locate
locateコマンドで検索を開始します。ファイルの正確な名前やその一部を知っている場合は特に簡単です。たとえば、「Sonne」という名前のファイルを見つけたいとします。ルートディレクトリに移動し、以下のコマンドを入力します:
locate Sonne
このコマンドで、locateはデータベース内のすべてのエントリーを検索し、検索キーワード「Sonne」を含むファイルを一覧表示します。

2. 大文字と小文字を無視する
検索時に大文字と小文字を無視したいですか?その場合は、-iオプションを使用できます:
locate -i sonne
これにより、「Sonne」と「sonne」の両方を含むリストが得られます。

3. 正規表現による精度向上
より精密な検索を行いたい場合、locateで正規表現を使うこともできます。たとえば、「ls」に正確に検索するには、-bオプションを保護された括弧と組み合わせて使用します:
locate -b '/ls'
これにより、正確に「ls」に一致する結果のみが得られます。

4. データベースの更新
新しいファイルを作成した場合、locateがそれを見つけることができるように、データベースを更新する必要があります。それを行うには、以下のコマンドを使用します:
sudo updatedb
このコマンドは、データベースを更新し、最新の状態にします。

5. findの使用
findコマンドは、検索条件をより詳細に定義したい場合に特に便利です。たとえば、ホームディレクトリ内で「xyz」という名前のファイルを検索するには、以下のコマンドを使用します:
find ~/ -name 'xyz'
これにより、「xyz」のみをホームディレクトリ内で検索します。

6. ファイルタイプでフィルタリング
特定のファイルタイプのみを検索するには、-typeオプションを使用できます。たとえば、ディレクトリのみを見つけるには:
find /var/log -type d
このコマンドで、/var/logディレクトリ内のすべてのディレクトリを一覧表示します。

7. サイズ別でファイルを検索
ファイルのサイズに基づいて検索するには、-sizeオプションを使用できます。たとえば、1 MBより大きいファイルを見つけるには:
find / -type f -size +1M
このコマンドは、システム上のすべての1メガバイトより大きいファイルを検索します。

8. 特定の期間内にファイルを見つける
特定の期間内に変更されたファイルを検索することもできます。たとえば、過去48時間に変更されたファイルを検索するには:
find / -type f -mtime -2
ここで「-mtime -2」は、過去2日間に変更されたファイルを表します。

9. 検索条件の組み合わせ
複数の検索条件を組み合わせることで、クエリの精度が向上します。ファイルタイプと最後に変更された日付で同時にフィルタリングできます:
find /opt -type f -mtime -1
これにより、/optディレクトリ内の過去24時間に変更されたすべてのファイルを見つけることができます。

10. ファイル検索のまとめ
findとlocateコマンドを使えば、Linuxシステム上で効率的にファイルやフォルダーを見つけることができます。ニーズに応じて、スピードと最新のデータベースの選択ができます。
まとめ - Linuxでファイルとフォルダーを検索 - findとlocateの詳細
Linuxでのファイルやフォルダーの検索は、findとlocateを使えば簡単です。両方のコマンドは、検索をカスタマイズするための異なる方法を提供します。
よくある質問
findとlocateの違いは何ですか?findはハードディスク上でリアルタイムに検索しますが、locateはデータベースを使用し、そのため速いですが、最新の結果が得られない可能性があります。
locateのデータベースをどのように更新しますか?sudo updatedbコマンドを使用すると、locateのデータベースを更新できます。
findでファイルサイズを検索できますか?はい、-sizeオプションを使用することで可能です。
ファイルまたはディレクトリ名で検索を制限するにはどうすればよいですか?-nameまたは-typeオプションを使用して、特定の名前やファイルタイプをターゲットに検索します。
検索条件の組み合わせの例は何ですか?findを使用して、-type fのファイルを検索し、同時にファイルが過去24時間で-変更されたものであることを指定できます。