【コマンドライン】ファイル・ディレクトリの検索 [ 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コマンド等で確認しましょう。