find/locate/whichの違い
どれもLinuxでのアプリケーション構築時に使用したくなるファイル検索系コマンドです。
インストール | 検索速度 | 検索対象 | |
find | 不要 | 遅い | ファイル・ディレクトリ |
locate | 場合によっては必要 | 速い | ファイル・ディレクトリ |
which | 場合によっては必要 | 速い | コマンド |
基本的には、ファイル・ディレクトリを検索するときはlocate。
コマンドの実体を調べるときはwhichを使うと良いです。
findの使い方
findはディレクトリツリーを検索開始ディレクトリから順にたどって検索していくため、処理はlocateやwhichと比較すると遅いです。
findはLinuxに標準インストールされているため、インストール不要です。
構文
$ find [検索開始ディレクトリ] [検索条件]
例
$ find . -name link # カレントディレクトリ以下から探す
./link
$ find / -name link # ルート以下から探す
/root/link
/usr/bin/link
locateのインストール・使い方
locateはファイルやディレクトリの名前をDBに格納し、DBを検索するため、findより高速に検索できます。
locateはディストリビューションによっては標準インストールされていないため、インストールが必要になることもありますが、簡単です。
インストールされているか確認します。
$ locate --version
mlocate 0.26
インストールされていなければ、yumコマンドなどでmlocateをインストールします。
インストール後に、ファイル情報を格納したDBを作成する必要があります。
$ yum install mlocate
...
Installed:
mlocate.x86_64 0:0.26-8.amzn2
...
Complete!
$ updatedb
インストールされていた or インストールできたら、後はlocateコマンドでファイルを検索できます。
$ locate bash
/etc/bash_completion.d
…
/usr/share/zsh/5.7.1/functions/bashcompinit
whichのインストール・使い方
whichはファイルやディレクトリを検索するのではなく、コマンドの実体がどこにあるかを調べるものです。
インストールされているか確認します。
$ which --version
GNU which v2.20, Copyright (C) 1999 - 2008 Carlo Wood.
インストールされていなければ、yumコマンドでインストールします。
$ yum install which
...
Installed:
which.x86_64 0:2.20-7.amzn2.0.2
...
Complete!
インストールされていた or インストールできたら、後はwhich [コマンド名]でコマンドの実体ファイルを検索できます。
$ which bash
/usr/bin/bash
AWSでの環境構築で手間取ることはありませんか?環境構築にはLinuxの基礎知識が不可欠だと悟り、私はこの本でLinuxを勉強し直しました。