ã“ã©ã‚‚行進曲 / Theme Of Codomo (Alla Marcia)
目次:
- Locateのインストール(locateコマンドが見つかりません)
- UbuntuとDebianにLocateをインストールする
- CentOSとFedoraにLocateをインストールする
locate
仕組みlocate
コマンドの使用方法- 結論
Linuxで作業する際の最も一般的な操作の1つは、ファイルとディレクトリの検索です。 Linuxシステムには、ファイルの検索に使用できるいくつかのコマンドがあり、
find
と
locate
が最もよく使用されます。
locate
コマンドは、ファイルとディレクトリを名前で検索する最も簡単な方法です。
このチュートリアルでは、
locate
コマンドの使用方法について説明します。
Locateのインストール(locateコマンドが見つかりません)
ディストリビューションおよびシステムのプロビジョニング方法に応じて、Linuxシステムにロケートパッケージが事前にインストールされている場合とされていない場合があります。
システムに
locate
ユーティリティがインストールされているかどうかを確認するには、ターミナルを開き、
locate
と
Enter
を押します。 パッケージがインストールされている場合、システムは「
locate: no pattern to search for specified
」を表示し
locate: no pattern to search for specified
それ以外の場合は、
locate command not found
などが表示
locate command not found
ます。
locate
がインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
UbuntuとDebianにLocateをインストールする
sudo apt update
sudo apt install mlocate
CentOSとFedoraにLocateをインストールする
locate
仕組み
updatedb
コマンドは、
updatedb
コマンドで生成されたデータベースファイルから特定のパターンを検索します。 見つかった結果は、画面に1行に1つずつ表示されます。
mlocateパッケージのインストール中に、24時間ごとに
updatedb
コマンドを実行するcronジョブが作成されます。 これにより、データベースが定期的に更新されます。 cronジョブの詳細については、/
/etc/cron.daily/mlocate
ファイルを確認してください。
ルートまたはsudo権限を持つユーザーとして
updatedb
コマンドを実行することにより、データベースを手動で更新できます。
sudo updatedb
ファイルとディレクトリの数とシステムの速度によっては、更新プロセスに時間がかかります。
データベースの更新後に作成されたファイルは、検索結果に表示されません。
ファイルシステムを検索するより強力な
find
コマンドと比較して、
locate
ははるかに高速に動作しますが、多くの機能がなく、ファイル名でのみ検索できます。
locate
コマンドの使用方法
locate
コマンドの構文は次のとおりです。
locate 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
ディレクトリへのアクセス許可を持たない通常のユーザーとしてコマンドを実行したため、
/root
/root/.bashrc
ファイルは表示されません。
結果リストが長い場合、読みやすくするために、出力を
less
コマンドにパイプできます。
locate.bashrc | less
また、
locate
コマンドは、ワイルドカード文字
*
などのグロビング文字を含むパターンも受け入れます。 パターンにグロビング文字が含まれていない場合、コマンドは
*PATTERN*
を検索します。そのため、前の例では、名前に検索パターンを含むすべてのファイルが表示されていました。
ワイルドカードは、ゼロ、1つまたは複数の文字を表すために使用される記号です。 たとえば、システム上のすべての
.md
ファイルを検索するには、次を使用します。
locate *.md
検索結果を制限するには、
-n
オプションに続けて、表示する結果の数を使用します。 たとえば、次のコマンドはすべての
.py
ファイルを検索し、10個の結果のみを表示します。
locate -n 10 *.py
デフォルトでは、
locate
は大文字と小文字を区別して検索を実行します。
-i
(--
--ignore-case
)オプションは、大文字小文字を無視して大文字と小文字を区別しない検索を実行する
locate
、
locate
を指定し
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
は、見つかったファイルがファイルシステムにまだ存在するかどうかをチェックしません。 ファイルが検索パターンと一致する場合、最新のデータベース更新後にファイルを削除すると、検索結果に含まれます。
--existing
実行時に存在するファイルの名前のみを表示するには、
-e
(--
--existing
)オプションを使用します。 たとえば、次の例では、既存の
.json
ファイルのみが
.json
ます。
locate -e *.json
locate --regex -i "(.mp4|\.avi)"
結論
locate
コマンドは、指定されたパターンに一致する名前のファイルとディレクトリをファイルシステムで検索します。 コマンド構文は覚えやすく、結果はほぼ瞬時に表示されます。
locate
コマンドの使用可能なすべてのオプションの詳細については、端末で
man locate
してください。