Linuxのlocateコマンドの使い方

Linuxのlocateコマンドの使い方

01. コマンドの概要

実際には、locate コマンドは find -name の別の書き方ですが、特定のディレクトリではなく、すべてのローカル ファイル情報を含むデータベース /var/lib/locatedb を検索するため、後者よりもはるかに高速です。 Linux システムはこのデータベースを自動的に作成し、1 日に 1 回更新するため、locate コマンドを使用して最新の変更されたファイルを見つけることはできません。この状況を回避するには、locate を使用する前に、updatedb コマンドを使用してデータベースを手動で更新します。

02. コマンド形式

[オプション]… [パターン]… を検索

03. 共通オプション

使用法: [オプション]... [パターン]... を検索します
mlocate データベース内のエントリを検索します。
 -A、--all すべてのパターンに一致するエントリのみを表示します -b、--basename 一意のパス名に一致するベースファイル名 -c、--count 見つかったエントリの数のみを表示します -d、--database DBPATH デフォルトのデータベース (/var/lib/mlocate/mlocate.db) を DBPATH に置き換えます
 -e, --existing は現在存在するファイルのエントリのみを表示します -L, --follow ファイルが存在する場合は、シンボリックリンクをたどります (デフォルト)
 -h, --help このヘルプを表示する -i, --ignore-case パターンに一致するときに大文字と小文字の違いを無視する -l, --limit, -n LIMIT 出力を LIMIT 項目 (または数) に制限する 
 -m、--mmap 下位互換性を無視します -P、--nofollow、-H ファイルをチェックするときに、忍び寄るシンボリック リンクをたどりません -0、--null 出力で NUL を含む項目を分離します -S、--statistics 項目を検索せず、使用されている各データベースに関する統計情報を表示します -q、--quiet データベースの読み取りに関するエラー メッセージを報告しません -r、--regexp REGEXP パターンの代わりに基本正規表現 REGEXP を検索します --regex パターンは拡張正規表現です -s、--stdio 下位互換性を無視します -V、--version バージョン情報を表示します -w、--wholename 完全なパス名に一致します (デフォルト)

04. 参考例

4.1 特定の文字列を含む関連ファイルを検索する

[root@localhost ~]# ifconfigを探す 
oracle_app_scripts は、次のディレクトリにあります。
/usr/libexec/hypervkvpd/hv_set_ifconfig
/usr/sbin/ifconfig
/usr/sbin/pifconfig
:/usr/share/man/de/man8/ifconfig.8.gz より前のバージョン
:/usr/share/man/fr/man8/ifconfig.8.gz より前のバージョン
: ファイル: /usr/share/man/man8/ifconfig.8.gz
: /usr/share/man/man8/pifconfig.8.gz より前のバージョン
:/usr/share/man/pt/man8/ifconfig.8.gz より前のバージョン
: /usr/share/man/zh_CN/man8/ifconfig.8.gz より作成
[root@localhost ~]# 

4.2 ディレクトリ内のshで始まるすべてのファイルを検索する

[root@localhost ~]# /bin/sh を見つける
/home/oracle/app/oracle/product/11.2.0/dbhome_1/perl/bin/shasum
バイナリ
/usr/bin/sha1sum
sha224sum は、
sha256 サム
sha384 サム

4.3 表示数量を指定する

表示するコンテンツが多すぎる場合は、-n オプションを使用して、表示される項目の数を制限できます。

[root@localhost ~]#locate -n 3 パスワード
/etc/passwd
/etc/passwd -
パスワード
[root@localhost ~]# 

4.4 パターンマッチング時に大文字と小文字の違いを無視する

検索で大文字と小文字を区別する必要がない場合は、-i オプションを使用します。

[root@localhost ~]#locate -i -n 5 パスワード
/etc/passwd
/etc/passwd -
パスワード
/etc/security/opasswd
oracle_app_images は、次の例のように、 oracle_app_images という名前のファイルに格納されます。
[root@localhost ~]#

4.5 基本的な正規表現の検索 REGEXP パターンを置換する

特定のルールを満たす情報を検索する必要がある場合は、-r オプションを使用して対応する正規表現を一致させることができます。

///var/lib/rpm で始まるファイルを検索 [root@localhost ~]#locate -r ^/var/lib/rpm
rpm は
/var/lib/rpm-状態
/var/lib/rpm/.dbenv.lock
ロック
/var/lib/rpm/ベース名
/var/lib/rpm/競合名
/var/lib/rpm/ディレクトリ名
/var/lib/rpm/グループ
/var/lib/rpm/インストールID
//etc.conf[root@localhost ~]で終わるファイルを探す#locate -r etc.conf$
/usr/lib/tmpfiles.d/etc.conf
[root@localhost ~]#

4.6 最近変更されたファイルを見つける

# 新しいファイルを作成する [root@localhost ~]# touch new_file
[root@localhost ~]# ~/new_file を探します
[root@localhost ~]# updatedb
[root@localhost ~]# ~/new_file を探します
/root/新しいファイル
[root@localhost ~]# 
# ファイルを削除 [root@localhost ~]# rm -rf file.txt 
[root@localhost ~]# ~/file.txt を探します
/ルート/ファイル.txt
[root@localhost ~]# updatedb
[root@localhost ~]# ~/file.txt を探します
[root@localhost ~]#

注意:locate コマンドは最近変更されたファイルを見つけることができません。これを回避するには、locate を使用する前に、updatedb コマンドを使用してデータベースを手動で更新します。

4.7 統計の表示

[deng@localhost テスト]$ ロケート -S 
データベース /var/lib/mlocate/mlocate.db:
    18,935 個のフォルダ、231,751 個のファイル、ファイル名に 13,753,723 バイト、データベースの保存に 5,707,750 バイト使用 [deng@localhost test]$

4.8 パスワード統計情報を表示する

[root@localhost /]#locate -c パスワード
183
[ルート@ローカルホスト /]#

4.9 関連設定ファイルの更新

[root@localhost /]# vim /etc/updatedb.conf 
[ルート@ローカルホスト /]#

Linux のlocateコマンドの使い方についてはこれで終了です。Linux のlocateコマンドについてさらに詳しく知りたい方は、123WORDPRESS.COM の過去記事や以下の関連記事をご覧ください。今後とも123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux の 2 つの検索コマンド:locate と find の詳細な説明
  • 1日1つのLinuxコマンド:locateコマンド

<<:  MySql の知識ポイント: トランザクション、インデックス、ロックの原則、使用状況の分析

>>:  ミニプログラムカスタムコンポーネントの非効率的なグローバルスタイルの解決策

推薦する

VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

この記事では、VMware Workstation14 ProにUBuntu17.04をインストール...

VueにおけるAxios非同期通信の詳細な説明

1. まず、インタラクティブに使用するための .json ファイルを作成します。json データ形式...

ウェブページ内のFlash SWFファイルを変更する方法

これは多くの人が遭遇した問題だと思います。実際、Web ページから FLASH をダウンロードして修...

MySQL のデッドロックとデータベースおよびテーブル シャーディングの問題の詳細な説明

MySQL 運用上の問題点を記録します。ビジネスシナリオと問題の説明外部インターフェースをリクエスト...

ミニプログラムでマインドマップを描く方法

目次マインドマップとは何ですか? F6で描く方法アリペイ微信要約するマインドマップとは何ですか?マイ...

Nginx リバース プロキシを使用してクロスドメイン問題を解決する方法の詳細な説明

質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...

Linux で 1 回限りのスケジュールされたタスクを実行するための at コマンドの使用に関する詳細な説明

目次序文1. 一度限りの計画タスクの紹介2. コマンド3. 1回限りのスケジュールタスクを作成する4...

Dockerはコンテナにポートを動的に公開します

コンテナのIPアドレスを表示するdocker examine <コンテナ名またはID> ...

ディスクを破壊せずに Linux で dd コマンドを使用する方法

故障したストレージ ドライブからデータを救出する場合でも、アーカイブをリモート ストレージにバックア...

docker redis5.0 clusterの実装 クラスタ構築

システム環境: Ubuntu 16.04LTSこの記事では、6 つの Docker コンテナを使用し...

画像のシームレスなスクロールを実現する JavaScript タイマー

この記事では、画像のシームレスなスクロールを実現するためのJavaScriptの具体的なコードを参考...

テーブルセルの幅tdの設定は無効であり、内部コンテンツによって常に引き伸ばされます

テーブルページを作成するときに、td に設定された幅が無効になることがあります。td の幅は常に内部...

MySQL での and or クエリの優先度分析

これは見落とされがちな問題かもしれません。まず、次の点を明確にする必要があります。 MySQL では...

C# は MySQL コマンドラインのバックアップとリカバリを実装します

MySQL データベースをバックアップするためのツールは多数あります。過去 2 日間で、C# を使用...

カスタムスクロールバー効果を実現するJavaScript

実際のプロジェクトでは、上下のスクロール バーと左右のスクロール バーは DIV 内にないため、右の...