Linuxでの5つのファイル検索コマンド

前書き

5つのファイル検索コマンドはLinux上でありますwhereislocatewhichtype、とfind。それぞれに独自の特性があり、特定の検索シナリオ用に設計されています。このガイドでは、各コマンドを紹介し、使用例を示します。これらのコマンドの詳細については、適切なマンページを確認することをお勧めします。

whereis

このwhereisコマンドは、バイナリファイル、ソースコード、およびいくつかの標準インストールディレクトリにあるオンラインマニュアルページで、指定されたプログラム名を検索するために使用されます。

whereisはシステム上のすべての場所を検索するわけではないため、これらの特定のディレクトリからのファイルは見つかりません。同じ理由で、見つかったかどうかに関係なく、検索結果をすばやく取得できます。

また、シェルに直接組み込まれているコマンドは検索されません。

たとえば、lsコマンドに関する情報を検索するには、端末で次のコマンドを実行します。

whereis ls

次のようなフィードバックが得られます。

ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

その結果、/bin/ls探したいバイナリはで、他の2つはlsプログラムのマンページです。プログラムのソースコードlsは見つかりませんでした。

/bin/lsファイルをホームディレクトリとディレクトリにコピーしてから/usr/binwhereisコマンドを再度実行します。

cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls

ご覧のとおり、検索結果で/bin/lsとのみ/usr/bin/lsが見つかりました。lsホームディレクトリが標準のインストールディレクトリではないため、ホームディレクトリのプログラムが見つかりませんでした。

ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

次のコマンドを実行すると、

whereis cd

次のような出力が表示されます。cdはシェルの組み込みコマンドであるため、バイナリファイルは検出されませんでした。

cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz

locate

このlocateコマンドは、データベース(/var/lib/mlocate/mlocate.db)を使用して名前でファイルを検索するために使用されます。このデータベースは、基本的にはファイルシステムのレイアウトのスナップショットです。クエリに一致するこのデータベース内のすべてのレコードが検索結果に表示されます。デフォルトでは、locateコマンドはクエリを使用して、パス名を含む各レコードの名前全体の一部を照合します。したがって、検索結果で一致したファイルの数が予想よりも多くなる可能性があります。

データベースが古くlocateなると、コマンドの検索結果の精度が低下します。存在しなくなったファイルや、新しく作成されたファイルとの一致が表示されない場合があります。デフォルトでは、mlocate.dbデータベースは1日に1回自動的に更新されます。updatedbコマンドを使用して手動で更新できます。

検索はファイルシステムではなくデータベースで実行されるため、検索速度は非常に高速です。

次のコマンドを実行すると、

locate ls

期待される結果ではなく、多くのレコードが取得されます。

検索結果をより正確にするために、-bフラグを使用して検索範囲を制限し、クエリを使用して各レコードのベース名のみを照合することができます。

locate -b "\ls"

今回lsは、ファイルシステムで正確に呼び出される各ファイルの場所を取得します。

/bin/ls

which

このwhichコマンドは、環境変数の値で指定したコマンドを検索し、PATHデフォルトで最初の結果を返します。エイリアスを照会する場合、whichコマンドは検索を実行する前にエイリアスの実際のコマンドを決定します。

whichコマンドは、その単純さも非常に高速です。

whichコマンドの使い方は簡単です:

which your_command

最初のコマンドではなく、一致したすべてのコマンドを表示する場合は、-aフラグを使用します。

which -a your_command

エイリアスが設定されているコマンドを検索する例を次に示します。

which ll

検索結果は次のようになります。

alias ll='ls -l --color=auto'
    /bin/ls

type

デフォルトでは、typeコマンドはコマンド名の解釈方法を示します。考えられる結果には、エイリアス、キーワード、関数、組み込み、またはファイルが含まれます。whereisコマンドと同じように、コマンドtypeはいくつかの標準インストールディレクトリのみを検索して、クエリに回答します。

さまざまなコマンドを入力するいくつかの例:

シェル組み込みコマンド:

type cd

cd is a shell builtin

ファイルシステム上のバイナリファイル:

type sudo

sudo is /usr/bin/sudo

エイリアス:

type ls

ls is aliased to `ls --color=auto'

find

このチュートリアルで紹介した5つのファイル検索コマンドの中で、このfindコマンドは最も強力です。また、最も遅いものです。他の4つのコマンドとは異なり、findコマンドは実際にはファイルシステム全体でファイルを検索します(1つのiノードごとに1つのiノード)。このfindコマンドを使用すると、高度なクエリ基準を使用して、必要なすべてのファイルを見つけることができます。さらに、見つかったファイルに対してアクションを実行することもできます。

findコマンドの検索条件は洗練されているため、このような短い記事では説明できません。代わりにいくつかの例を示します。

findコマンドの基本フォーマット:

find [path] [option] [action]

作業ディレクトリとそのすべてのサブディレクトリにあるすべてのファイルを見つけるには:

find

aaaホームディレクトリとそのすべてのサブディレクトリで呼び出されるファイルを見つけるには:

find ~ -name 'aaa'

過去24時間に変更されたファイルシステム内のすべてのファイルを検索するには:

find / -mtime 0

userに属するwebディレクトリとそのサブディレクトリのすべてのファイルを見つけるにはnginx

find /usr/share/nginx/html/ -user nginx

権限が0744次の作業ディレクトリにあるすべてのファイルを検索するには:

find -perm -0744

aaa作業ディレクトリで名前が付いたファイルを検索し、その詳細情報を一覧表示するには:

find -name 'aaa' -exec ls -l {} \;


Leave a Comment

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

Ubuntu 14.10へのMcMyAdminのインストール

Ubuntu 14.10へのMcMyAdminのインストール

McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです

LinuxでTeamTalk Serverをセットアップする

LinuxでTeamTalk Serverをセットアップする

TeamTalkは、ユーザーが高品質のオーディオ/ビデオ会話、テキストチャット、ファイルの転送、および画面の共有を可能にする会議システムです。それは

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ruby on Railsは、プログラマーの生産性を向上させるために開発されたRubyの人気のあるWebフレームワークです。ただし、さまざまな宝石と依存関係を取得する

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

別のシステムを使用していますか?DokuWikiは、データベースを必要としないPHPで記述されたオープンソースのWikiプログラムです。データをテキストファイルに保存します。ドクウィク

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

別のシステムを使用していますか?BigTree CMS 4.2は、高速で軽量な無料のオープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

PleskサーバーでHTTP / 2を有効にする方法

PleskサーバーでHTTP / 2を有効にする方法

PleskはネイティブのHTTP / 2サポートを備えています。PleskでのHTTP / 2のロールアウトは、他のコンポーネントに比べてはるかに簡単ですが、その導入プロセスには慎重な計画が必要です

FreeBSD 12にosTicketをインストールする方法

FreeBSD 12にosTicketをインストールする方法

別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。