" />
本ページはプロモーションが含まれています。

スポンサーリンク

Linux

Linuxの検索系コマンドfind/locate/whichの使い方・違い

find/locate/whichの違い

どれもLinuxでのアプリケーション構築時に使用したくなるファイル検索系コマンドです。

インストール検索速度検索対象
find不要遅いファイル・ディレクトリ
locate場合によっては必要速いファイル・ディレクトリ
which場合によっては必要速いコマンド
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を勉強し直しました。

スポンサーリンク

-Linux