Linuxで作業する場合の最も一般的な操作の1つは、ファイルとディレクトリを検索することです。Linuxシステムには、ファイルを検索できるコマンドがいくつかあり、最もよく使用されるのは検索と検索です。
locate コマンドは、ファイルとディレクトリを名前で検索するための最も速くて簡単な方法です。
この記事では、 Locateの使用方法について説明します。 コマンド。
locate (コマンドの検索が見つかりません)# ディストリビューションとシステムのプロビジョニング方法に応じて、LocateパッケージがLinuxシステムにプリインストールされている場合とされていない場合があります。
locateかどうかを確認するには ユーティリティがインストールされているので、ターミナルを開いて、locateと入力します。 Enterを押します 。パッケージがインストールされている場合、システムは locate:指定されたものを検索するパターンなしを表示します。 。それ以外の場合は、locateコマンドが見つかりませんのようなものが表示されます 。
locateの場合 がインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
locate UbuntuとDebianで# sudo apt updatesudo 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 ターミナルで。
ご不明な点がございましたら、お気軽にコメントをお寄せください。