findコマンドの使い方について詳しく知りたい
ファイル名の一部を指定して一致したファイルのみを検索したい
Linuxで比較的規模の大きなシステムを開発することになると、設定ファイルやソースファイルなど膨大な数のファイルを扱うことになります。そんなとき、必要なファイルがどこに格納しているかわからなくなったり、特定のファイルのみを素早く検索したい場合があります。
Linuxでは指定したファイルやディレクトリを検索するときに便利なfindコマンドが用意されています。findコマンドを使用することで、さまざまな条件でファイルを検索することができます。
ここではLinux歴7年の著者が、Linuxのfindコマンドについて以下の内容を解説していきます。
- findコマンドとは
- findコマンドの基本的な使い方
- findコマンドで使用できるオプション
Linuxのコマンドの中でもfindはよく使用するコマンドになりますので、この記事を読んでファイルを検索する方法についてしっかりと理解をしておきましょう!
Linuxのfindコマンドとは
findコマンドはファイルやディレクトリを検索するときによく使われます。findは以下のように記述します。
$ grep 検索文字列 ファイル名
引数にファイル名を指定することで、コマンドを実行するディレクトリ内の指定したファイル名を検索します。また、パスを指定することで、たとえばhomeディレクトリから指定したディレクトリの中にファイルが存在するか確認することができます。
次項ではfindコマンドの基本的な使い方を見ていきましょう。
findコマンドの基本的な使い方
ここでは実際にfindコマンドの使い方について解説します。
ファイル名を指定して検索
まずはファイルを検索する方法について解説します。たとえば、tmpディレクトリ内に「samurai.1txt」が存在するかを確認したい場合は以下のように記述します。
$ find samurai1.txt
tmpディレクトリ内にsamurai1.txtが存在することがわかりますね!指定したファイルが存在しない場合は、以下のように「そのようなファイルやディレクトリはありません」と表示されます。
ディレクトリを指定して検索
また、以下のように引数にディレクトリを指定することで、わざわざ対象のディレクトリに移動しなくてもfindによるファイル検索が可能です。
$ find /tmp/samurai1.txt
findコマンドのオプション
findにはさまざまなオプションが用意されています。どのようなオプションが用意されているか調べる場合は、「man」コマンドを実行します。
$ man find
ここでは、findのオプションの中でもよく使用するものを紹介します。
-name(ファイル名の一部を指定して検索)
ファイル名の一部しかわからない場合は、「-name」オプションと*(ワイルドカード)を付加することで、指定したファイル名の一部を含むファイルを全て検索することが可能です。たとえば、「samurai」を含むファイル名を検索したい場合は、以下のように記述します。
$ find /tmp -name samurai*
「samurai*」とすることでsamuraiを含むファイル名が検索できることがわかりますね。また、拡張子「.txt」のファイルが存在するか調べたいときは、以下のように記述すればOKです。
$ find /tmp -name *.txt
-type(タイプを指定する)
findコマンドは条件に一致したファイルやディレクトリ名が結果として表示されます。しかし、場合によってはファイル名のみ、ディレクトリ名のみの結果を表示させたい場合があります。
そのような場合はオプションの「type」を指定し、引数にf(ファイル)、d(ディレクトリ)を指定することでファイルのみ、ディレクトリのみを検索することができます。以下にsamuraiの名称がついたディレクトリを検索する方法を紹介します。
$ find ./ -name "samurai*" -type d
このように-typeにd(ディレクトリ)を指定することで、ディレクトリのみ表示されることがわかりますね。また、findの後のパスの引数を「./」とすることで、どこのディレクトリからも検索することができます。
perm(パーミッションで検索)
指定したパーミッションのファイルが存在するか調べたい場合は「perm」オプションを使用します。たとえば、パーミッションが「666」のファイルが存在するか調べたい場合は、以下のように記述します。
$ find ./ -perm 666
パーミッションが666のファイルが検索されました!
Linuxについてもっと知りたい方へ
そもそもLinuxについて、
Linuxを効率よく学習する方法が知りたい
といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!
まとめ
ここでは、findコマンドの基本的な使い方から、よく使われるオプションについて紹介しました。findコマンドは、Linuxのコマンドの中でも使用頻度が高く、ファイルやディレクトリが存在するか調べたい場合に非常に便利ですので、使い方についてはよく理解しておきましょう。
もしfindコマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。