man find

$ man find
FIND(1L)                                                              FIND(1L)

名前
       find - ディレクトリ階層下のファイルを検索する。

書式
       find [path...] [expression]

説明
       このマニュアルページは GNU 版 find の使用法を記述したものである。
       find は与えられたファイル名以下のディレクトリツリーを検索し、同じ
       く 与えられた評価式を左から右に向かって優先順位の高いものから評価
       する (演算子のセクションを見よ)。評価式の結果が確定すると (and の
       左 項が偽だったり、 or の左項が真だった場合など) 評価は終了し、引
       き続き次のファイル名が評価される。

       ‘-’, ‘(’, ‘)’, ‘,’, または ‘!’ ではじまる最初の引き数は、評価式 の
       始 まりであるとみなされる。その前の引き数は検索するパスとなる。パ
       スが与えられない場合はカレントディレクトリ以下を検索する。評価 式
       が与えられない場合は ‘-print’ が評価式として用いられる。

       find  は全てのファイルの処理に成功するとステータス 0 を返して終了
       する。エラーがあった場合には 0 以上の値を返す。

評価式
       評価式はオプション、判別式、及びアクションからなる。オプション は
       特 定のファイルのみでなく全体の処理に影響し、常に真を返す。判別式
       は真または偽の値を返す。アクションは付加的な作用を持ち、真また は
       偽 を返す。評価式のそれぞれの要素は演算子によって区切られている。
       演算子が省略された場合は -and が指定されたものとされる 。  -prune
       以 外のアクションが評価式に含まれていない場合は、評価式の結果が真
       となったファイルに対して -print が実行される。

   オプション
       全てのオプションは常に真を返す。また全てのオプションは常に効力 を
       持 ち、式の評価がオプションの位置に到達したときにのみ実行される訳
       ではない。従って記述を明確にするためには、全てのオプションは評 価
       式の先頭部にまとめて置くのが望ましい。

       -daystart
              -amin 、 -atime、 -cmin、 -ctime、 -mmin、 -mtime の時間の
              基準を 24 時間前ではなく、コマンドを実行した日の 0 時に す
              る。

       -depth ディレクトリ本体の前に、ディレクトリの内容を先に評価する。

       -follow
              シンボリックリンクの参照先を検索する。 -noleaf は自動的 に
              指定されたことになる。

       -help, --help
              find のコマンドラインの使用方法の概要を表示して終了する。

       -maxdepth levels
              コマンドライン引き数から降りて検索するディレクトリレベルの
              最大値を指定する (levels は非負の整数)。 ‘-maxdepth 0’  は
              コマンドライン引き数のみを評価し、アクションの対象にするこ
              とを意味する。

       -mindepth levels
              levels (非負整数) 未満のレベルのディレクトリには評価やアク
              シ ョンを行わない。 ‘-mindepth 1’ とすると、コマンドライン
              引き数で指定したファイルを除き、全てのファイルを処理する。

       -mount 他のファイルシステムにあるディレクトリを探索しない。 -xdev
              の別名であり、他の版の find との互換性のために用意された。

       -noleaf
              「 ディレクトリのハードリンク数から 2 を引いたものが、その
              ディレクトリに含まれるサブディレクトリである」とする最適化
              動作を行わない。このオプションは Unix のディレクトリリンク
              方式に従わないファイルシステムを検索するときに必要となる (
              例 えば CD-ROM や MS-DOS ファイルシステム、 AFS ボリューム
              など)。通常の Unix ファイルシステムでは、それぞれのディ レ
              クトリは最低二つのハードリンクを持っている (ディレクトリ名
              のエントリと ‘.’ エントリ)。またサブディレクトリがある場合
              には、それぞれのサブディレクトリ内にさらに ‘..’ と言うエン
              トリができる。 find がディレクトリを調べる際、そのディレク
              ト リのハードリンクの数よりも 2 少ないエントリがサブディレ
              クトリであることが判明したら、残りのエントリはディレクトリ
              で はないものとされる (ディレクトリツリーの ‘leaf (葉)’ で
              あるとみなされる)。もしファイル名だけが必要な場合には、 そ
              のファイルの内容は評価されない。この最適化を用いると、検索
              の速度が非常に向上する。

       -version, --version
              find のバージョンを表示して終了する。

       -xdev  他のファイルシステムにあるディレクトリは探索しない。

   判別式
       数値の引き数を

       +n     と表わすと n より大きいことを示し、

       -n     と表わすと n より小さいことを示す。

       n      はちょうど n と等しいことを示す。

       -amin n
              ファイルが最後にアクセスされたのが n 分前であれば真。

       -anewer file
              file が修正された以降にアクセスされたファイルに対して真 を
              返す。 -follow がコマンドライン上で -anewer より前に指定さ
              れている場合に限り、 -anewer は -follow による影響を受ける
              。

       -atime n
              ファイルが最後にアクセスされたのが n*24 時間前であれば真。

       -cmin n
              ファイルのステータスが最後に変更されたのが n 分前であれ ば
              真。

       -cnewer file
              file  が修正された以降にファイルステータスが変更されたファ
              イルに対して真を返す。 -follow がコマ ン ド ラ イ ン 上 で
              -cnewer   よ り 前 に指定されている場合に限り、 -cnewer は
              -follow による影響を受ける。

       -ctime n
              ファイルのステータスが最後に変更されたのが n*24 時間前であ
              れば真。

       -empty ファイルが空で、通常のファイルかディレクトリならば真。

       -false つねに偽。

       -fstype type
              ファイルが置かれているファイルシステムが type ならば真。用
              いることのできるファイルシステムは Unix のバージョンによっ
              て異なる。あるバージョンの Unix では ufs や 4.2, 4.3, nfs,
              tmp, mfs, S51K, S52K といったようなものが指定可能である 。
              -printf を %F 書式指定子と共に用いれば、どのようなファイル
              システムを使っているかがわかる。

       -gid n ファイルのグループ ID 番号が n ならば真。

       -group gname
              ファイルの属するグループが gname ならば真 (ID 番号も 指 定
              可)。

       -ilname pattern
              -lname と同じだが、大文字小文字を区別しない。

       -iname pattern
              -name と同じだが、大文字小文字を区別しない。例えばパターン
              ‘fo*’ も ‘F??’ も ‘Foo’, ‘FOO’, ‘foo’, ‘fOo’ などにマッ チ
              する。

       -inum n
              ファイルの i-ノード番号が n ならば真。

       -ipath pattern
              -path と同じだが、大文字小文字を区別しない。

       -iregex pattern
              -regex と同じだが、大文字小文字を区別しない。

       -links n
              ファイルのリンク数が n ならば真。

       -lname pattern
              ファイルがシンボリックリンクであり、そのリンク先がシェルの
              パターン pattern にマッチすれば真。メタキャラクタは ‘/’ や
              ‘.’ を例外扱いしない。

       -mmin n
              ファイルのデータが最後に修正されたのが n 分前なら真。

       -mtime n
              ファイルのデータが最後に修正されたのが n*24 時間前なら真。

       -name pattern
              ディレクトリの部分を取り去ったファイル名がシェルのパターン
              pattern  にマッチすれば真。メタキャラクタ (‘*’、‘?’ および
              ‘[]’) は、ファイル名の先頭の ‘.’ にはマッチしない。ある デ
              ィレクトリおよびそれ以下のファイルを無視するには -prune を
              用いる。 -path の説明にある例を参照のこと。

       -newer file
              ファイル file 以降に修正されたファイルに対して真を返 す 。
              -follow がコマンドライン上で -newer より前に指定されている
              場合に限り、 -newer は -follow による影響を受ける。

       -nouser
              ファイルのユーザー ID 番号に対応するユーザーがいなければ真
              。

       -nogroup
              ファイルのグループ ID 番号に対応するグループがなければ真。

       -path pattern
              ファイル名がシェルのパターン pattern にマッチすれば真。 メ
              タキャラクタは ‘/’ や ‘.’ を例外扱いしない。従って例えば
                        find . -path ’./sr*sc’
              は  ’./src/misc’  というディレクトリを (実際に存在していれ
              ば) 表示する。ディレクトリツリー全体を無視するためには、一
              つ一つのファイルをチェックするより -prune を用いる方が良い
              。たとえば ‘src/emacs’ ディレクトリおよびそれ以下のファ イ
              ルをすべて無視し、他のファイルを表示したいような場合には、
              以下のようにする。
                        find . -path ’./src/emacs’ -prune -o -print

       -perm mode
              ファイルの許可属性が mode (8 進または文字による指定) と ま
              っ たく同じであったら真。文字の場合は許可属性 0 からの差分
              を指定しているものとみなされる。

       -perm -mode
              mode で指定されている許可属性ビットのすべてがファイルで も
              立っていたら真。

       -perm +mode
              mode  で指定されている許可属性ビットがファイルでどれか一つ
              でも立っていたら真。

       -regex pattern
              ファイル名が正規表現 pattern にマッチすれば真。このマッ チ
              は (すべてのパスを含む) ファイル名全体に対してでなければな
              らない。例えば ‘./fubar3’ というファイルにマッチさせるには
              、 正規表現 ‘.*bar.’ や ‘.*b.*3’ が使えるが、 ‘b.*r3’ はマ
              ッチしない。

       -size n[bckw]
              ファイルが n 分の領域を使用していたら真。デフォルトでは  n
              の単位は 512 バイトのブロックとなる (n の後に ‘b’ が続いた
              場合も同様)。後に続く文字が ‘c’ ならば単位はバイト 、  ‘k’
              ならばキロバイト、 ‘w’ ならば 2 バイトのワード。サイズには
              間接ブロック (indirect block) の分は含まれない。しかし穴空
              き ファイル (sparse file) における、実際には割り当てられて
              いないブロックの分は含まれる。

       -true  常に真。

       -type c
              c で表されるタイプのファイルならば真。 c としては以下が あ
              る:

              b      ブロックスペシャルファイル (バッファ付き)

              c      キャラクタスペシャルファイル (バッファ無し)

              d      ディレクトリ

              p      名前付きパイプ (FIFO)

              f      通常のファイル

              l      シンボリックリンク

              s      ソケット

       -uid n ファイル所有者のユーザー ID の数値が n ならば真。

       -used n
              ファイルが最後にアクセスされたときと、属性が最後に変更され
              たときの差が n 日であれば真。

       -user uname
              ファイルの所有者がユーザー uname ならば真 (ID の数値も指定
              可能)。

       -xtype c
              フ ァイルがシンボリックリンク以外の場合は -type と同じ。シ
              ンボリックリンクに対しては以下のように判断される。この判別
              式 の前に -follow が指定されていなかった場合は、リンク先の
              ファイルのタイプが c ならば真。 -follow が指定されていた場
              合は c が ‘l’ ならば真。つまりシンボリックリンクに対して、
              -xtype は -type がチェックしない側をチェックする。

   アクション
       -exec command ;
              command を実行する。コマンドの戻り値が 0 ならば真 。  find
              の コマンドラインで指定されたこれ以降の引き数は、 ‘;’ を含
              む引き数にいたるまで、すべて command の引き数とみなされ る
              。文字列 ‘{}’ は現在処理しているファイル名に置き換えられる
              。これは command 引き数のどこにあってもよく、単独で置か れ
              て い なくてもよい (単独で置かれていなければならないような
              find もある)。これらの文字はシェルによって展開されないよう
              、  ‘\’ によってエスケープするか引用符で囲む必要がある。コ
              マンドは find を実行したディレクトリから実行される。

       -fls file
              真を返す。 -ls と同じ出力を -fprint のように file に出力す
              る。

       -fprint file
              真 を返す。フルパスのファイル名をファイル file file に出力
              する。 find の実行時に file が存在しない場合は新たに作成さ
              れ る 。 す で に 存 在 す る 場合は元の中身は捨てられる。
              ‘‘/dev/stdout’’ および ‘‘/dev/stderr’’ というファイル名 は
              特別に扱われ、それぞれ標準出力と標準エラー出力に結果が渡さ
              れる。

       -fprint0 file
              真を返す。 -print0 と同じ出力を -fprint のように file に出
              力する。

       -fprintf file format
              真を返す。 -printf と同じ出力を -fprint のように file に出
              力する。

       -ok command ;
              -exec と似ているがまずユーザーに問い合わせを行い、標準入力
              から回答を受け取る。結果が ‘y’ または ‘Y’ で始まらない場合
              はコマンド実行は行なわず、偽を返す。

       -print 真を返す。ファイル名をフルパスで標準出力に表示し、各ファイ
              ル名に改行文字を付加する。

       -print0
              真を返す。ファイル名をフルパスで標準出力に表示し、各ファイ
              ル名にヌル文字を付加する。このオプションを用いれば、  find
              の出力を処理するプログラムにおいて改行文字を含んだファイル
              名を正しく解釈できるようになる。

       -printf format
              真を返す。 format を標準出力に表示する。 ‘\’ はエスケー プ
              文 字、 ‘%’ は書式指定文字として解釈される。フィールドの幅
              と精度は C 言語の ‘printf’ 関数のように指定できる。 -print
              と 異なり、 -printf は文字列の最後に改行文字を付加しない。
              エスケープ文字と書式指定子は以下の通り:

              \a     ビジブルベル。

              \b     バックスペース。

              \c     このフォーマットのプリントをただちに停止し、出力 バ
                     ッファをフラッシュする。

              \f     フォームフィード文字。

              \n     改行文字。

              \r     復帰文字。

              \t     水平タブ。

              \v     垂直タブ。

              \\     バックスラッシュ文字 (‘\’)。

              文字 ‘\’ に ‘\’ 以外の文字が続いた場合は通常のキャラクタと
              して扱われる。従って 2 文字とも表示される。

              %%     パーセント文字。

              %a     ファイルが最後にアクセスされた時間。 C  の  ‘ctime’
                     関数の戻り値と同じフォーマットが用いられる。

              %Ak     ファイルが最後にアクセスされた時間。フォーマットは
                     k で指定されたものが用いられる。 k には ‘@’ か、 あ
                     るいは C の ‘strftime’ 関数の書式指定子を用いること
                     ができる。指定可能な値を以下にリストする。一部の も
                     の は使えないシステムがあるかもしれない。これはシス
                     テム間での ‘strftime’ の非互換性による。

                      @      Jan. 1, 1970, 00:00 GMT からの経過秒数。

                     時刻フィールド:

                      H      時間 (00..23)

                      I      時間 (01..12)

                      k      時間 ( 0..23)

                      l      時間 ( 1..12)

                      M      分 (00..59)

                      p      現在のロケールにおける AM または PM

                      r      時間 (12 時間表示)  (hh:mm:ss [AP]M)

                      S      秒 (00..61)

                      T      時間 (24 時間表示)  (hh:mm:ss)

                      X      現在のロケールによる時刻表示 (H:M:S)

                      Z      タイムゾーン (JST など)。タイムゾーンを決定
                             できない場合はなにも返さない。

                     日付フィールド:

                      a       現 在 の ロ ケ ー ル に よる曜日名の短縮形
                             (Sun..Sat)

                      A      現在のロケールによる曜日名のフル表示。長 さ
                             は可変 (Sunday..Saturday)

                      b      現在のロケールによる月名の短縮形 (Jan..Dec)

                      B      現在のロケールによる月名のフル表示。長さ は
                             可変 (January..December)

                      c      現在のロケールによる日付と時刻表示 (Sat Nov
                             04 12:02:33 EST 1989)

                      d      その月何日目かの表示 (01..31)

                      D      日付 (mm/dd/yy)

                      h      b と同じ

                      j      その年何日目かの表示 (001..366)

                      m      月 (01..12)

                      U      その年の何週目か (日曜日を週の始まりとする)
                             (00..53)

                      w      曜日 (0..6)

                      W      その年の何週目か (月曜日を週の始まりとする)
                             (00..53)

                      x      現在のロケールによる日付表示 (mm/dd/yy)

                      y      年の最後の2桁分 (00..99)

                      Y      年 (1970...)

              %b     ファイルサイズを 512 バイト単位で表した数値 (切り上
                     げ表示)。

              %c      フ ァイルのステータスが最後に変更された時間。 C の
                     ‘ctime’ 関数の戻り値と同じフォーマットが用いられ る
                     。

              %Ck     ファイルのステータスが最後に変更された時間。フォー
                     マットには k で指定されたものが用いられる。 k の 書
                     式は %A と同じ。

              %d     ディレクトリツリー中のファイルの深さ。 0 ならばファ
                     イルはコマンドライン引き数であることになる。

              %f     ファイル名を前にあるディレクトリをすべて削除して 表
                     示したもの (つまり最後の要素のみ)。

              %F      ファイルが置かれているファイルシステムのタイプ。こ
                     こで表示された値は -fstype に指定することができる。

              %g      ファイルのグループ名。名前が指定されていない場合は
                     グループ ID 番号。

              %G     ファイルのグループ ID 番号。

              %h     フルパスから最後のファイル名を除いたディレクトリ 部
                     。

              %H     ファイルが属しているコマンドライン引き数。

              %i     ファイルの i-ノード番号 (10 進表示)。

              %k      ファイルのサイズを 1K ブロック単位で示した数値 (切
                     り上げ表示)。

              %l     シンボリックリンクの参照先 (シンボリックリンクで な
                     い場合は空文字)。

              %m     ファイルの許可属性ビット (8 進表示)。

              %n     ファイルへのハードリンクの数。

              %p     ファイル名。

              %P      ファイル名を印字する。ただしコマンドライン引き数で
                     指定された部分は表示されない。

              %s     ファイルのサイズ (バイト単位)。

              %t     ファイルが最後に修正された時間を C の ‘ctime’ 関 数
                     形式で現したもの。

              %Tk    ファイルが最後に修正された時間を k で指定されたフォ
                     ーマットで現したもの。指定形式は %A と同じ。

              %u     ファイルのユーザー名。対応する名前が無い場合はユ ー
                     ザー ID の数値。

              %U     ファイルのユーザー ID の数値。

              今 までリストした以外の文字が ‘%’ に続いた場合は無効。ただ
              し ‘%’ の後に付いた文字は印字される。

       -prune 同時に -depth が指定されていない場合は常に真。ディレクトリ
              を降りない。
              -depth が指定されている場合は偽を返し、何もしない。

       -ls    真を返す。現在のファイルを ‘ls -dils’ 形式で標準出力にリス
              トする。ブロックカウントは 1K 単位で行われる。ただし環境変
              数 POSIXLY_CORRECT が設定されている場合は、 512 バイト単位
              のブロックが用いられる。

   演算子
       優先順位の順にリストしてある。

       ( expr )
              かっこの内部が先に評価される。

       ! expr expr が偽の場合真となる。

       -not expr
              ! expr と同じ。

       expr1 expr2
              And (implied); expr1 が偽の場合は expr2 は評価されない。

       expr1 -a expr2
              expr1 expr2 と同じ。

       expr1 -and expr2
              expr1 expr2 と同じ。

       expr1 -o expr2
              Or; expr1 が真の場合には expr2 は評価されない。

       expr1 -or expr2
              expr1 -o expr2 と同じ。

       expr1 , expr2
              List; 常に expr1 と expr2 の両方が評価される。 expr1 の 値
              は捨てられ、全体の値は expr2 と等しくなる。

関連項目
       locate(1L), locatedb(5L), updatedb(1L), xargs(1L)
       Finding Files (on-line in Info, or printed)

                                                                      FIND(1L)