Linuxのファイル・システムには通常,膨大なファイルやディレクトリが保存されています。この中から特定のファイルやディレクトリを探し出すのは手間がかかります。そこで,ファイルやディレクトリを検索するコマンドの使い方をマスターしましょう。ファイルやディレクトリの検索には,findコマンドを利用します。

findコマンドでの検索

 findコマンドは,次の構文で記述します。

find 検索先 判別式 アクション

 検索先にはディレクトリを指定します。指定したディレクトリ以下のファイルやディレクトリが検索対象となります。

 判別式は検索する条件を記述します。例えば,ファイル名の一部やファイルの種別,ファイル容量などを指定していきます。また,複数の判別式を列挙することもできます。

 アクションは検索したファイルについて処理を行うコマンドを記述します。例えば,検索したファイルを別のディレクトリに移動するといった処理が行えます。

ファイル名で検索する

 検索したいファイルなどの名前が分かっている場合は,findコマンドに「-name」判別式を利用します。例えば,mydoc.txtというファイルをファイル・システム内から検索したい場合は,

$ find / -name mydoc.txt

と入力します。検索中,見つかったファイルやディレクトリが随時一覧表示されていきます。

 2項目の「/」はルート・ディレクトリ以下を検索対象にすることを表しています。もし,ホーム・ディレクトリ以下を検索対象にしたい場合は,2項目のディレクトリを変更します。

$ find ~/ -name mydoc.txt

ファイル名の一部から検索する

 ファイル名の一部しか分かっていない場合や,特定の拡張子のファイルのみを探し出すときなどにはワイルド・カードを利用できます。利用できるワイルド・カードは1文字を表す「?」,0文字以上の文字列を表す「*」,指定したいずれかの1文字を表す「[...]」が利用できます。

 例えば,拡張子が「txt」のファイルを探す場合は,

$ find ~/ -name *.txt

とします。また,Photo001.jpgのような型番が3桁(けた)のファイルを探す場合は,

$ find ~/ -name Photo???.jpg

と実行します。

ファイル種別を指定して検索

 ファイル・システム内に,同じ名前のファイルやディレクトリが存在したとします。その名前で検索すると,いずれも結果に表示されます。ファイル種別を限定して検索したい場合は,「-type」判別式を用います。

 ファイル種別の指定には,表1が利用できます。

表1●「-type」に利用できるファイル種別
表1●「-type」に利用できるファイル種別

例えば,documentというディレクトリのみを検索したい場合は,

$ find / -name document -type d

と実行します。

各コマンドの詳しい使い方などについては,「Linuxコマンド集」を参照ください。また,「Linuxコマンド逆引き大全」で,行いたい処理内容からコマンドの使い方を調べられます。