[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

find【コマンド】

pointこの用語のポイント

pointWindowsとUNIX系で使えるコマンドだよ

point指定されたファイルの場所を表示するよ(UNIX系)

pointファイルの中から文字列を探すよ(Windows系)

スポンサーリンク

簡単に書くよ

find【コマンド】とは

ファイルを探すときに使うコマンド(UNIX系のOS)。
もしくは

ファイルの中から文字列を探すときに使うコマンド(Windows系のOS)
です。

image piyo

詳しく書くよ

UNIX系(LinuxとかMacとか)及びWindows系で使えます。
UNIX系とWindows系でコマンドの内容が違いますけどね。

まずはUNIX系OSにおける「find」コマンドについて説明します。

UNIX系OSの「find」コマンドはコマンドライン上からファイルを探す際に使います。

書き方は、

find [オプション] [検索対象のディレクトリ] [検索条件や検索結果の処理方法]

です。
オプションは少しだけありますが、あまり使いません。

オプション説明
-Hシンボリックリンクの場合、リンク先のファイルを検索する。リンク先のファイルが無い場合はシンボリックリンク自体を検索する
-Lシンボリックリンクの場合、リンク先のファイルを検索する
-Pシンボリックリンクの場合、シンボリックリンク自体を検索する

ですね。

むしろ大事だのは「検索対象のディレクトリ」に続けて書く「検索条件や検索結果の処理方法」です。
「検索条件や検索結果の表示方法」はいろいろ指定できます。

■検索条件
検索条件説明
-amin 【数字】最終アクセス日時が【数字】分前のファイルを検索する
-anewer 【ファイル名】ファイルの最終アクセス日時が【ファイル名】より新しいファイルを検索する
-atime 【数字】最終アクセス日時が【数字】日前のファイルを検索する
-cnewer 【ファイル名】ファイルのステータス変更日時が【ファイル名】より新しいファイルを検索する
-ctime 【数字】ステータス変更日時が【数字】日前のファイルを検索する
-empty空のファイルを検索する
-group 【グループ名】グループが【グループ名】のファイルを検索する
-inum 【数字】inode番号とやらが【数字】のファイルを検索する
-maxdepth 【数字】検索基準のディレクトリから【数字】階層以内のファイルを検索する
-mindepth 【数字】検索基準のディレクトリから【数字】階層以上のファイルを検索する
-mmin 【数字】変更日時が【数字】分前のファイルを検索する
-mtime 【数字】変更日時が【数字】日前のファイルを検索する
-name 【パターン】ファイル名が【パターン】に一致するファイルを検索する
-newer 【ファイル名】ファイルの変更日時が【ファイル名】より新しいファイルを検索する
-path 【パターン】ファイルのパス全体が正規表現パターン【パターン】にマッチするファイルを検索する。「-regex」との違いは正規表現の書き方。例えばパスのどこかに「A」を含むファイルを検索したい場合は「-path "*A*"」のように指定する
-perm 【パーミッション】ファイルのアクセス権が【パーミッション】に一致するファイルを検索する。【パーミッション】は「0644」のような8進数表記での指定が一般的
-regex 【パターン】ファイルのパス全体が正規表現パターン【パターン】にマッチするファイルを検索する。「-path」との違いは正規表現の書き方。例えばパスのどこかに「A」を含むファイルを検索したい場合は「-regex ".*A.*"」のように指定する
-size 【数字】ファイルサイズが【数字】×512bytesのファイルを検索する
-size 【数字】cファイルサイズが【数字】バイトのファイルを検索する
-type 【種類】ファイルの種類が【種類】のファイルを検索する
 →「-type b」:ブロック型特殊ファイルとやらを検索する
 →「-type c」:キャラクタ型特殊ファイルとやらを検索する
 →「-type d」:ディレクトリを検索する
 →「-type f」:普通のファイルを検索する
 →「-type l」:シンボリックリンクを検索する
 →「-type p」:名前付きパイプを検索する
 →「-type s」:ソケットを検索する
-user 【ユーザ】ユーザが【ユーザ】のファイルを検索する。【ユーザ】にはユーザID/ユーザ名の指定が可能
!【条件】【条件】の否定
【条件1】 【条件2】【条件1】と【条件2】のANDを取る
【条件1】 -a 【条件2】【条件1】と【条件2】のANDを取る
【条件1】 -and 【条件2】【条件1】と【条件2】のANDを取る
【条件1】 -o 【条件2】【条件1】と【条件2】のORを取る
【条件1】 -or 【条件2】【条件1】と【条件2】のORを取る

■索結果の処理方法
処理方法説明
-delete検索結果のファイルを削除する
-exec 【コマンド】\;検索結果をパラメータとしてコマンド【コマンド】を実行
-ls条件にあてはまるファイルを「ls -dils」コマンド実行時と同じ形式で表示する
-ok 【コマンド】\;動きは「-exec」と同じだが実行前に「やって良い?」って訊いてくる
-print条件にあてはまるファイル名を画面に表示する

などですね。
げんなりするくらいいっぱいある上に複数組み合わせて指定できます。

指定できるパラメータ項目が多くて涙目になりそうですが、取りあえず

find ./ -name 【ファイル名】 -print

だけ覚えておけば最低限ファイルを探すことはできます。
あとは余裕がでてきたら、自分がよく使うものから順に徐々に覚えていけば良いと思いますよ。

ちなみに何も指定しないで

find

と打った場合、現在いるディレクトリ配下の全ファイルを表示します。

このようにファイルを探すときに使うコマンドが、UNIX系OSにおける「find」コマンドです。

次にWindows系OSにおける「find」コマンドについて説明します。

Windows系OSの「find」コマンドはファイルの中から特定の文字列を探す際に使うコマンドです。

書き方は、

find [オプション] [探す文字列] [探す対象のファイル名]

です。
オプションはちらほらとあります。

オプション説明
/V[探す文字列]を「含まない」行のみ表示する
/C[探す文字列]を含む行数のみを表示する
/N行番号も表示する
/I[探す文字列]の大文字・小文字を区別しない
/OFFオフライン属性のファイルも対象にする
/OFFLINEオフライン属性のファイルも対象にする

ですね。

[探す文字列]はダブルクォーテーションで囲んで指定します。
例えば

find /N "hoge" target.txt

を実行すると「target.txt」ファイルの中の「hoge」が含まれる行を、行番号付きで表示してくれますよ。

このようにファイルの中から文字列を探すコマンドがWindows系OSにおける「find」コマンドです。

image piyo2

一言でまとめるよ

まぁ「find」ってコマンドが出てきたら「ファイルを探す(UNIX系)、もしくはファイルの中から文字列を探す(Windows系)ときに使うんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク