シェル - ファイル検索コマンド

Linux システムは多くのファイルで構成されており、これらのファイルはファイル システムを通じて編成されます。その構造は Unix のようなシステムから継承され、世代から世代へと開発され、特定の規則があります。

私たちが直面しているのは、Linux システム内の膨大な数のファイルであり、ファイルを見つけるのが困難になっています。

したがって、必要なファイルを見つけるために、最も一般的に使用される 2 つのツールは、locate と find です。

検索プログラムは、パス名に基づいてデータベース内を簡単に検索し、指定された部分文字列に一致するそれぞれの名前を出力します。たとえば、名前が zip で始まるすべてのプログラムを検索したいとします。プログラムを探しているので、プログラムを含むディレクトリの名前は bin/ で終わると想定できます。

したがって、次の方法を使用してファイルを見つけることができます。

$ bin/zip を検索

/usr/bin/zip

/usr/bin/zipcloak

/usr/bin/zipgrep

/usr/bin/zipinfo

/usr/bin/zipnote

/usr/bin/zipsplit

locate コマンドはデータベースのパス名を検索し、文字列「bin/zip」を含むすべてのパスを出力します。

検索要件がより複雑な場合は、grep などのコマンドを組み合わせて使用​​して、より強力な検索を設計できます。

$ zip を見つける | grep ビン

/bin/bunzip2

/bin/bzip2

/bin/bzip2recover

/bin/gunzip

/bin/gzip

/usr/bin/funzip

/usr/bin/gpg-zip

/usr/bin/preunzip

/usr/bin/prezip

/usr/bin/prezip-bin

/usr/bin/unzip

/usr/bin/unzipsfx

/usr/bin/zip

/usr/bin/zipcloak

/usr/bin/zipgrep

/usr/bin/zipinfo

/usr/bin/zipnote

/usr/bin/zipsplit

位置特定プログラムは長年にわたって存在しており、一般的に使用される亜種がいくつかあります。最新の Linux ディストリビューションで最も一般的なバージョンは slocate と mlocate の 2 つですが、これらのバージョンには通常、locate と呼ばれるシンボリック リンクを通じてアクセスします。バージョンが異なると、locate のオプション セットが重複します。一部のバージョンには、正規表現のマッチングとワイルドカードのサポートが含まれています。システム上の Locate のマニュアル ページを確認して、どのバージョンの Locate がインストールされているかを確認してください。

検索データベースはどこから来たのでしょうか?

一部の Linux ディストリビューションでは、システムをインストールした直後にlocateコマンドを実行しても役に立たないことに気づくかもしれませんが、翌日再試行すると正常に機能します。理由は何ですか?

検索データベースは、updateb という別のプログラムによって作成されます。通常、定期的に実行される cron ジョブ (ジョブ)、つまり cron デーモン (デーモン プロセス) によって定期的に実行されるタスクです。ロケートを備えたほとんどのシステムでは、updateb が 1 日に 1 回実行されます。データベースの更新はリアルタイムではないため、locate を使用すると、最新のファイルが表示されないことがあります。これを回避するには、スーパーユーザーになり、プロンプトで updatedb を実行して、updateb プログラムを手動で実行します。

おすすめ

転載: blog.csdn.net/guoqx/article/details/132054500