Linuxで作業する場合の最も一般的な操作の1つは、ファイルとディレクトリを検索することです。Linuxシステムには、ファイルを検索できるコマンドがいくつかあり、最もよく使用されるのは検索と検索です。
locate
コマンドは、ファイルとディレクトリを名前で検索するための最も速くて簡単な方法です。
この記事では、 Locate
の使用方法について説明します。 コマンド。
locate
(コマンドの検索が見つかりません)# ディストリビューションとシステムのプロビジョニング方法に応じて、LocateパッケージがLinuxシステムにプリインストールされている場合とされていない場合があります。
locate
かどうかを確認するには ユーティリティがインストールされているので、ターミナルを開いて、locate
と入力します。 Enter
を押します 。パッケージがインストールされている場合、システムは locate:指定されたものを検索するパターンなし
を表示します。 。それ以外の場合は、locateコマンドが見つかりません
のようなものが表示されます 。
locate
の場合 がインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
locate
UbuntuとDebianで# sudo apt update
sudo apt install mlocate
locate
CentOSとFedoraで# sudo yum install mlocate
locate
仕事#
locate
コマンドは、 updatedb
によって生成されたデータベースファイルを介して特定のパターンを検索します 指図。見つかった結果は、1行に1つずつ画面に表示されます。
mlocateパッケージのインストール中に、 updatedb
を実行するcronジョブが作成されます。 24時間ごとにコマンドを実行します。これにより、データベースが定期的に更新されます。 cronジョブの詳細については、 /etc/cron.daily/mlocate
を確認してください。 ファイル。
updatedb
を実行すると、データベースを手動で更新できます。 rootまたはsudo権限を持つユーザーとして:
sudo updatedb
ファイルとディレクトリの数、およびシステムの速度によっては、更新プロセスに時間がかかる場合があります。
データベースの更新後に作成されたファイルは、検索結果に表示されません。
より強力なfind
と比較して ファイルシステムを検索するコマンド、 Locate
動作ははるかに高速ですが、多くの機能が不足しており、ファイル名でしか検索できません。
Locate
の使用方法 コマンド#
locate
の構文 コマンドは次のとおりです:
locate [OPTION] PATTERN...
最も基本的な形式では、オプションなしで使用すると、 Locate
コマンドは、検索パターンに一致し、ユーザーが読み取り権限を持っているすべてのファイルとディレクトリの絶対パスを出力します。
たとえば、 .bashrc
という名前のファイルを検索するには 次のように入力します:
locate .bashrc
出力には、文字列 .bashrc
を含むすべてのファイルの名前が含まれます 彼らの名前で:
/etc/bash.bashrc
/etc/skel/.bashrc
/home/linuxize/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
/root/.bashrc
/ root
へのアクセス許可を持たない通常のユーザーとしてコマンドを実行したため、ファイルは表示されません。 ディレクトリ。
結果リストが長い場合は、読みやすくするために、出力を less
にパイプすることができます。 コマンド:
locate .bashrc | less
locate
コマンドは、ワイルドカード文字 *
などのグロブ文字を含むパターンも受け入れます。 。パターンにグロブ文字が含まれていない場合、コマンドは * PATTERN *
を検索します 。そのため、前の例では、名前に検索パターンを含むすべてのファイルが表示されていました。
ワイルドカードは、0文字、1文字、またはそれ以上の文字を表すために使用される記号です。たとえば、すべての .md
を検索するには システム上のファイルには、次のように入力します。
locate *.md
検索結果を制限するには、 -n
を使用します オプションの後に、表示する結果の数を続けます。次のコマンドは、すべての .py
を検索します ファイルを作成し、10件の結果のみを表示します:
locate -n 10 *.py
デフォルトでは、 Locate
大文字と小文字を区別する検索を実行します。 -i
(-ignore-case
)オプションはlocate
に指示します 大文字と小文字を区別せずに大文字と小文字を区別しない検索を実行します。
locate -i readme.md
/home/linuxize/p1/readme.md
/home/linuxize/p2/README.md
/home/linuxize/p3/ReadMe.md
一致するすべてのエントリの数を表示するには、 -c
を使用します (-count
) オプション。次のコマンドは、 .bashrc
を含むすべてのファイルの数を返します。 彼らの名前で:
locate -c .bashrc
6
デフォルトでは、 Locate
見つかったファイルがファイルシステムにまだ存在するかどうかはチェックしません。最新のデータベース更新後にファイルを削除し、そのファイルが検索パターンに一致する場合、そのファイルは検索結果に含まれます。
Locate
の時点で存在するファイルの名前のみを表示するには が実行されたら、 -e
を使用します (-既存コード> ) オプション。たとえば、次の場合、既存の
.json
のみが返されます。 ファイル:
locate -e *.json
より複雑な検索を実行する必要がある場合は、 -r
を使用してください (-regexp
)オプション。パターンの代わりに基本的な正規表現を使用して検索できます。このオプションは複数回指定できます。
たとえば、すべての .mp4
を検索するには および.avi
システム上のファイルで大文字と小文字を区別しない場合は、次を実行します:
locate --regex -i "(\.mp4|\.avi)"
結論#
locate
コマンドは、ファイルシステムで、指定されたパターンに名前が一致するファイルとディレクトリを検索します。コマンド構文は覚えやすく、結果はほぼ瞬時に表示されます。
locate
で利用可能なすべてのオプションの詳細については コマンドタイプmanlocate
ターミナルで。
ご不明な点がございましたら、お気軽にコメントをお寄せください。