find【コマンド】
コマンドだよ
WindowsとUNIX系で使えるよ
指定されたファイルの場所を表示するよ(UNIX系)
ファイルの中から文字列を探すよ(Windows系)
スポンサーリンク
簡単に書くよ
find【コマンド】とは
コンピュータさんに対する命令文(コマンド)のひとつ
であり
ファイルを探すときに使うコマンド(UNIX系のOS)。
もしくは
ファイルの中から文字列を探すときに使うコマンド(Windows系のOS)
です。
詳しく書くよ
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】のOROR取る |
| 【条件1】 -or 【条件2】 | 【条件1】と【条件2】のORを取る |
■索結果の処理方法
| 処理方法 | 説明 |
|---|---|
| -delete | 検索結果のファイルを削除する |
| -exec 【コマンド】\; | 検索結果をパラメータとしてコマンド【コマンド】を実行 |
| -ls | 条件にあてはまるファイルを「ls -dils」コマンド実行時と同じ形式で表示する |
| -ok 【コマンド】\; | 動きは「-exec」と同じだが実行前に「やって良い?」って聞いてくる |
| 条件にあてはまるファイル名を画面に表示する |
などです。
げんなりするくらいいっぱいある上に複数組み合わせて指定できます。
指定できるパラメータ項目が多くて涙目になりそうですが、とりあえず
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」コマンドです。
一言でまとめるよ
まぁ「find」ってコマンドが出てきたら「ファイルを探す(UNIX系)、もしくはファイルの中から文字列を探す(Windows系)ときに使うんだな~」と お考えください。
おまけ
■訳してみるよ
「find(ファインド)」の意味は「見つけ出す」とか「探し出す」とかです。
■「windows find findstr 違い」で情報をお探しの方へ
findは正規表現が使えません。findstrは正規表現が使えます。その違いです。
■検索してみる?






