Linux

【Linux】ファイルの探し方

今回はLinuxのファイルの探し方について紹介していきます。

Linuxは非常に多くのファイルやディレクトリで構成されているので、
ファイルを探す知識が必須になります。

ご自身で作成したファイルやコマンドを動かす実行ファイルなどの場所を覚えておくのは不可能ですよね。

この記事でファイルの探し方を学んで、スムーズな操作をできるようにしていきましょう!

ファイルを探すコマンド

Linuxでのファイルの探し方を見ていきます。
今回はfindコマンドlocateコマンドの2つを紹介します。

両者は探すと言った役割では同じですが、探し方やスピードが異なるので
特徴や使い方をそれぞれ見ていきましょう。

findコマンド

findコマンドは条件に一致するファイルをディレクトリツリーから順に降りながら、
表示してくれます。

特徴と使用方法を細かく見ていきましょう。

特徴

  • 指定した検索開始ディレクトリ以下にある検索条件一致ファイルを全て表示
  • ファイル、ディレクトリを選択できる
  • オプション指定が多く少し難しい

使用方法

findの使い方は以下になります。

$ find (検索開始ディレクトリ) (検索条件)(アクション)

検索開始ディレクトリにパスを指定することで、対象ディレクトリ以下が検索の調査範囲になります。

検索条件では、 –name, -typeを使用することで、ファイルかディレクトリのどちらを探すか選択可能です。
例えば、-name indexを条件にすると、indexがつく全てのファイルを探します。
一方、-type d indexを条件にすると、indexがつく全てのディレクトリを探します。

アクションでは、基本的に -printを指定すればokです。
-printはfindコマンドで最も使用されるもので、ファイルの場所をパスで返してくれます。

locateコマンド

locateコマンドはパスの一部を指定してファイルを探します。
ファイル名を専用のデータベースから検索するので、非常に早く見つけてくれます。

特徴と使用方法を細かく見ていきましょう。

特徴

  • ファイルパスのDBがあり、検索がハイスピード
  • Linuxにデフォで入っていない可能性があり、インストールが必要なコマンド
  • 該当するディレクトリとファイルの全てを表示する

 

使用方法

locateの使い方は以下になります。

$ locate (オプション) (検索パターン)

検索パターンには、探したいファイルの文字列を指定します。
対象文字列を含む、パス名をDBから検索して高速で表示してくれます。

該当する全てのパスを引っ張ってくるので、該当文字列が入っているディレクトリから、
該当文字列に当たらないファイルまで表示させるという点があります。

その際に、検索オプションがいきます。
検索オプションにて、-bを指定することで、検索パターンに入れた文字列に該当するファイルのみ表示してくれます。

 

実行ファイルを探すコマンド

Linuxのコマンドは実行ファイルと言う物によって動かされています。
その実行ファイルを探すためにwhichというコマンドを使います

まず、実行ファイルが動く仕組みを確認して、その後whichの詳細を見ていきましょう。

実行ファイルが動く仕組み

本来、コマンドを実行する際は、実行ファイルが置かれているパスを指定する必要があります。

例えば、僕のpcでrailsは以下のパスで指定されています。

$ ~/.rbenv/shims/rails

なので、 ~/.rbenv/shims/rails をターミナルで指定しないとコマンドは実行されないはずです。

しかし、$PATHという環境変数が設定されており、rails というコマンドだけでも実行されるようになっているのです
環境変数については後日学んでいきましょう。

whichの使用方法

whichの使用法は以下です。

$ which (オプション) (コマンド名)

コマンド名を入れることで、そのコマンドがどこに置かれているか表示してくれます。
しかし、一致した最初の1つしか表示されません

その際にオプションの -aを使いましょう。
これを使用することで、一致する全ての実行ファイルの場所を知れます。

終わりに

Linuxのファイルの探し方を理解できたでしょうか?

Linuxはファイルで構成されているので、ファイルを検索する力は必須です。
分からない部分などあれば、復習してスムーズにLinuxを扱えるようになりましょう!