【コマンドライン】ファイル・ディレクトリの検索 [ find ]

【コマンドライン】ファイル・ディレクトリの検索 [ find ]

コマンドラインでディレクトリやファイルを検索するfindコマンドについて解説します。

検証環境

findコマンド

findコマンドは“ディレクトリやファイルを検索するコマンド”です。

基本書式

$ find [検索対象パス] [オプション]

オプション

主なオプションは次の通りです。

オプション 内容
-name 検索文字 ファイル名やディレクトリ名が一致しているデータを表示
-iname 検索文字 基本的に-nameオプションと同じですが、大文字・小文字を区別しません
-type d|f ファイルタイプの指定(ディレクトリはd、ファイルはf)

『検索文字』は正規表現が使用でき、部分一致などの検索が可能です。

引数

検索対象パス

検索対象パスは検索するディレクトリまたはファイルのパスです。

サンプル

ファイル検索(名称一致)

$ ls sample
memoA.txt  memoB.txt  testX.txt  testY.txt
___ih_hl_start
$ find sample -name testX.txt
___ih_hl_end
sample/testX.txt

検索対象がカレントディクトリ場合は検索対象パスを省略できます。

ファイル検索(名称一致 / 大文字小文字の区別なし)

$ ls sample
memoA.txt  memoB.txt  testX.txt  testY.txt
___ih_hl_start
$ find sample -iname TESTX.TXT
___ih_hl_end
sample/testX.txt

ファイルタイプの指定

$ ls -l sample
-rw-rw-r-- 1 hacker staff    0  8月 21 16:43 memoA.txt
-rw-rw-r-- 1 hacker staff    0  8月 21 16:43 memoB.txt
drwxrwxr-x 2 hacker staff 4096  8月 21 16:48 test
-rw-rw-r-- 1 hacker staff    0  8月 21 16:43 testX.txt
-rw-rw-r-- 1 hacker staff    0  8月 21 16:44 testY.txt
___ih_hl_start
$ find sample -name "test*" -type d
___ih_hl_end
sample/test

応用(テキストファイルのみ検索)

特定ディレクトリのテキストファイルのみ検索

$ ls sample
memoA.txt  memoB.txt  test  testX.txt  testY.txt
___ih_hl_start
$ find sample -name "*.txt" -type f
___ih_hl_end
sample/testY.txt
sample/testX.txt
sample/memoB.txt
sample/memoA.txt

マニュアル

コマンドの仕様(主な処理やオプション・引数など)は環境により異なる場合がございます。

利用環境での仕様は『コマンドのマニュアルを表示する』manコマンド等で確認しましょう。