コマンドとファイルの検索
概要
LinuxにはファイルやLinuxのコマンドについて検索したりすることが多くある。
検索一つをとってもいろいろな検索があるので用途に応じた検索を行うようにしよう。
findコマンド
find [パス] [式]
式 | 説明 |
---|---|
-name | 指定したファイル名で検索 |
-type | ファイルの種類で検索
d(ディレクトリ)、f(通常ファイル)、l(シンボリックファイル) |
-size | 指定したブロックサイズで検索 |
-atime |
指定した日時を基に、最終アクセスがあったファイルを検索 +数値(数値以上前)、数値(数値の指定)、-数値(数値以内) |
-mtime | 指定した日時を基に、最終更新されたファイルを検索 |
検索結果を標準出力 | |
-exec command \: | 検索後、コマンドを実行 |
指定したディレクトリ配下で、指定した検索条件に合致するファイルを検索する。式を活用して様々な条件を指定できる。
デフォルト実行するとカレントディレクトリが設定されている。
locateコマンド
locate [オプション] [パターン]
オプション | 意味 |
---|---|
-d パス | データベースの位置を指定 |
-r | 正規表現を使って検索 |
-c | 検索された数を表示 |
-e | 現在、存在するファイルやディレクトリのみを検索 |
findコマンドと同様にファイルの検索を行う。
ファイル名・ディレクトリの一覧のデータベースを使用して、インデックス検索を行っているため高速で検索できる。
しかし、データベースには日単位で更新されるためすぐに反映されるわけではない。更新されるまでは検索対象からは外れる。
locateコマンドは引数にメタキャラクタを使用でき、正規表現を用いて検索をすることができる。
また、メタキャラクタを含まない文字列だけの検索をした場合、検索した文字列を含むファイル名およびディレクトリを全て表示する。
updatedbコマンド
updatedb [オプション] [パス]
オプション | 説明 |
---|---|
-e | データベースのファイルの一覧に取り込まないディレクトリパスを指定 |
-o | 更新対象のデータベース名を指定。独自に作成したデータベースを指定したい場合に使用 |
データベースの更新を行う。
引数なしで実行した場合は/etc/updatedb.confに記載されているデータベースのパスを参照し更新する。
updatedbコマンドを実行したらlocateコマンドで検索できるようになっている。
更新されたことが確認できる。
whichコマンド
which [オプション] [コマンド名]
オプション | 説明 |
---|---|
-a | 最初に見つかったものだけでなく、環境変数PATHに合致したものを全て表示 |
-i | 標準入力からエイリアスを読み込み、合致したものを表示 |
指定されたコマンドがどのディレクトリに格納されているか確認する。
whichコマンドで表示されないのは、内部コマンドのためである。表示されるのは外部コマンドのみである。
whereisコマンド
whereis [オプション] [コマンド名]
オプション | 説明 |
---|---|
-b | バイナリの場所を表示 |
-m | マニュアルの場所を表示 |
-s | ソースファイルの場所を表示 |
指定されたコマンドのバイナリ、ソース、マニュアルページの場所を表示する。
まとめ
パイプとか一緒に使って、検索すると活用しやすいので覚えておこう。