ファイルを作成して、それをどこのディレクトリ構造に置いたか忘れてしまうことがあります。システム、アプリケーション、または他のユーザーによって作成されたファイルの正確な場所がわからない場合もあります。 Linux には、探しているファイルを見つけるための強力なツールがいくつかあります。
locate コマンド
locate コマンドは、mlocate データベースに格納されているファイル名とパスで指定された文字列をすばやく検索します。検索を有効にするには、このデータベースを定期的に更新する必要があります。表示される結果は、ユーザーがアクセスまたは実行する権限を持つファイルに制限される場合があります。
構文
位置指定コマンドの構文は次のとおりです:
# locate [options] {string}
コマンド オプションを見つける
locate コマンドは、検索をより効果的にするためのさまざまなオプションをサポートしています。一部のオプションを表に示します。
オプション | 慣れている |
---|---|
-r | 正規表現を使用してファイル名を検索します。 |
-c | ファイル名ではなく、一致するエントリの数のみを表示します。 |
-e | 検索時に存在するファイルのみを返します。 |
-i | ファイル名またはパスの大文字と小文字は無視してください。 |
-n {エントリ数} | 指定された数までの最初のいくつかの一致のみを返します。 |
更新されたbコマンド
updatedb コマンドは、/etc/updatedb.conf ファイルに基づいてファイルのデータベースを構築するために使用されます。このコマンドは、/var/lib/mlocate/mlocate.db データベースを更新するために使用されます。 /etc/updatedb.conf ファイルは、データベースの構築中に除外する必要があるパスで構成されています。データベースの構築中に除外する必要があるパスを追加するには、/etc/updatedb.conf を開きます ファイルと、PRUNEPATH で 変数に、データベースの構築中に含める必要のないパスを指定します。たとえば、PRUNEPATH=”/etc” は、データベースの構築中に /etc ディレクトリを除外します。
これは、locate コマンドによって検索されるデフォルトのデータベースですが、ファイル パスを含むデータベースがさらに存在する場合があります。検索を実行する前にデータベースが更新されていない場合、最後の更新後に作成されたすべてのファイルが検索から除外されます。
locate コマンドの例
1. ファイルを見つけるには:
# locate file.txt
2. パターンに対してベース名のみを照合するには:
# locate -b file.txt # locate --basename file.txt
3. 一致するエントリの数を取得するには:
# locate -c file.txt # locate --count file.txt
4. デフォルトのデータベースを指定されたものに置き換えるには:
# locate -d # locate --database
5. ロケートが起動された時点で存在するエントリを出力するには:
# locate -e filename # locate --existing filename
6. 後続のシンボリック リンクをたどるには:
# locate -L text # locate --follow text
7. 検索ヘルプを表示するには:
# locate -h # locate --help
8. 指定された数のエントリを見つけた後に正常に終了するには:
# locate -l 10 text # locate -n 10 text # locate --limit 10 text
9. シンボリック リンクをたどらないようにするには:
# locate -P text # locate --nofollow text # locate -H text
10. 出力エントリを ASCI NULL 文字で区切るには:
# locate -0 text # locate --null text
11. 読み取りデータベースに関する統計を取得するには:
# locate -S text # locate --statistics text
12. 発生したエラーを抑制するには:
# locate -q text # locate --quiet text
13. バージョン情報を取得するには:
# locate -V # locate --version
14. パス名全体を一致させるには:
# locate -w text # locate --wholename text