日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
FIND(1) FreeBSD 一般コマンドマニュアル FIND(1)
名称
find -- ファイル階層を歩き回る
書式
find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
解説
find ユーティリティは、階層の各ファイルに関して (下記にリストされた ``プ
ライマリ'' と ``オペランド'' からなる) expression を評価して、リストされ
た各 path に対してディレクトリ階層を再帰的に降下します。
オプションは、次の通りです:
-E 基本的な正規表現 (BRE) ではなく拡張された (現代的な) 正規表現とし
て -regex と -iregex プライマリに続く正規表現を解釈します。
re_format(7) マニュアルページは、両方の形式について完全に記述して
います。
-H コマンド行で指定された各シンボリックリンクのために返されたファイ
ル情報とファイルタイプ (stat(2) 参照) は、リンク自体ではなく、リ
ンクによって参照されるファイルのものとなります。参照されたファイ
ルが存在しないなら、ファイル情報とタイプは、リンク自体のものとな
ります。コマンド行で指定されたのではないすべてのシンボリックリン
クのファイル情報は、リンク自体のものです。
-L 各シンボリックリンクのために返されたファイル情報とファイルタイプ
(stat(2) 参照) は、リンク自体ではなく、リンクによって参照される
ファイルのものとなります。参照されたファイルが存在しないなら、
ファイル情報とタイプは、リンク自体のものとなります。
このオプションは、推奨されない -follow プライマリと同等です。
-P 各シンボリックリンクのために返されたファイル情報とファイルタイプ
(stat(2) 参照) は、リンク自体のものとなります。これは、デフォルト
です。
-X find が xargs(1) と共に安全に使用できるようにします。ファイル名が
xargs(1) によって使用されるデリミタ (区切り) 文字のいずれかを含ん
でいるなら、診断メッセージが、標準エラーに表示され、ファイルは、
スキップされます。デリミタ文字は、シングルクォート (`` ' '')、ダ
ブルクォート (`` " '')、バックスラッシュ (``\'')、空白、タブ、改
行文字を含んでいます。
しかしながら、有効な代替物として ``xargs -0'' と合わせる -print0
プライマリを考慮してみてください。
-d find は、深さ優先の横断 (traversal) を実行します。
このオプションは、IEEE Std 1003.1-2001 (``POSIX.1'') によって指定
される -depth プライマリの BSD 特有の同等プライマリです。詳細につ
いては、「プライマリ」の記述を参照してください。
-f path
再帰されるパスのリストに path を追加します。これは、path がそのほ
かの点で、expression (式) として解釈される文字で始まるとき、役に
立ちます、すなわち、``''!, ``('' と ``-''。
-s find は、辞書編集順、すなわち、各ディレクトリ内のアルファベット
順、でファイル階層を横断します。注: `find -s' と `find | sort'
は、異なる結果となるかもしれません。
例えば、`find -s' は、ディレクトリ `foo.' の前に、そのすべての内
容とともにディレクトリ `foo' に置きますが、`find | sort' は、`.'
が、ASCII の `/' の前に置かれるので、`foo/bar' のようなあらゆる文
字列の前にディレクトリ名 `foo.' を置きます。C 以外のロケールで、
照合の違いのためにさらに異なる結果となります。
-x 降下が始まるファイルのデバイス番号と異なるデバイス番号があるディ
レクトリに find が下降することを防ぎます。
このオプションは、廃止された -xdev プライマリと同等です。
プライマリ
数字の引数にとるすべてのプライマリによって、プラス符号 (``+'') またはマイ
ナス符号 (``-'') を数字の前につけることができます。前につけられたプラス符
号は、``n より大'' を意味し、前につけられたマイナス符号は、``n より小''
を意味し、どちらでもなければ、``正確に n'' を意味します。
-Bmin n
ファイルの inode 作成時刻と find が開始された時刻の間の差が、分単
位に切り上げられて、n 分であるなら、真です。
-Bnewer file
-newerBm と同じです。
-Btime n[smhdw]
単位が指定されないなら、ファイルの inode 作成時刻と find が開始さ
れた時刻の間の差が、24 時間単位に切り上げられて、n 日であるなら、
このプライマリは、真と評価します。
単位が指定されるなら、ファイルの inode 作成時刻と find が開始され
た時刻の間の差が、正確に n 単位であるなら、このプライマリは、真と
評価します。サポートされている時間の単位の情報については、-atime
のプライマリの説明を参照してください。
-acl 他のプライマリと組み合わせて、拡張 ACL 属性を持つファイルの場所を
示します。これ以上の情報については、acl(3) を参照してください。
-amin [-|+]n
ファイルの最終アクセス時刻と find が開始した時刻との差 (次の分ま
で切り上げられる) が n (+n) より大きか、n (-n) 未満か、または正確
に n 分前であるなら、真です。
-anewer file
-neweram と同じです。
-atime n[smhdw]
単位を指定しない場合、最後にファイルがアクセスされた時刻と、find
を起動した時刻との差 (24 時間単位で切り上げます) が n 日であれ
ば、真です。
単位を指定する場合、最後にファイルがアクセスされた時刻と、find を
起動した時刻との差が正確に n 単位であれば、真です。指定できる時間
の単位は、次の通りです:
s 秒
m 分 (60 秒)
h 時間 (60 分)
d 日 (24 時間)
w 週 (7 日)
-atime 引数といくつもの単位を組み合わせることができます、例えば、
``-atime -1h30m''。単位は、+ または - 修飾子とともに使用される場
合のみ役に立ちます。
-cmin [-|+]n
ファイルのステータスの情報の最後の変更の時刻と find が開始した時
刻との差 (次の分まで切り上げられる) が n (+n) より大きか、n (-n)
未満か、または正確に n 分前であるなら、真です。
-cnewer file
-newercm と同じです。
-ctime n[smhdw]
単位が指定されないなら、ファイルの状態の情報の最後の変更の時間と
find が開始された時間の差 (次の全 24 時間の期間に切り上げられま
す) が n 日 (24 時間) の期間であるなら、このプライマリは、真と評
価されます。
単位が指定されるなら、ファイルの状態の情報の最後の変更の時間と
find が開始された時間の差が、正確に n 単位であるなら、このプライ
マリは、真と評価されます。サポートされている時間の単位に関する情
報については、-atime プライマリのの説明を参照してください。
-d 移植性のない、depth の BSD 特有のバージョン。GNU find は、FreeBSD
find の間違われたエミュレーションの主要な事項として、これを実装し
ています。
-delete
見つかったファイルおよびディレクトリを削除します。常に、真で返り
ます。これは、find がツリーを再帰的に下って、現在の作業ディレクト
リから実行します。セキュリティの理由で ``.'' に相対的なそのパス名
に ``/'' 文字があるファイル名を削除することを試みません。深さ優先
の横断処理は、このオプションの意味も含みます。-delete プライマリ
は、それが空でないなら、ディレクトリを削除しません。次のシンボ
リックリンクは、このオプションと互換がありません。
-depth 常に真です。移植性のない、-d オプションと同じです。find は、深さ
優先の横断を実行します、すなわち、ディレクトリは、ポスト順 (post
order) で訪問され、ディレクトリのすべてのエントリは、ディレクトリ
自体の前に作用されます。デフォルトで、find は、先行順序 (pre
order) でディレクトリを訪問します、すなわち、それらの内容の前で
す。デフォルトは、深さ優先で横断しないことに注意してください。
通常でないパーミッションでディレクトリに含まれているファイルを処
理するために find が cpio(1) で使用されるとき、-depth プライマリ
を役に立てます。ディレクトリにファイルを置いている間に書き込み
パーミッションがあることを保証し、次に、最後のものとしてディレク
トリのパーミッションを設定します。
-depth n
横断の出発点に相対的なファイルの深さが、n であるなら、真です。
-empty 現在のファイルまたはディレクトリが空であるなら、真です。
-exec utility [argument ...] ;
utility で指定されたプログラムが、その終了ステータスとして 0 の値
を返すなら、真です。省略可能な arguments は、ユーティリティ
(utility) に渡されます。式は、セミコロン (``;'') によって終了され
なければなりません。シェルから find を起動するなら、他の方法で
シェルが制御演算子としてそれを扱うなら、セミコロンをクォートする
必要があります。文字列 ``{}'' がユーティリティの名前または引数の
いずれかに現われるなら、それは、現在のファイルのパス名に置き換え
られます。utility は、find が実行されたディレクトリから実行されま
す。utility と arguments は、シェルのパターンと構成要素のさらなる
展開に影響されません。
-exec utility [argument ...] {} +
``{}'' が utility のそれぞれの起動に対してできるだけ多くのパス名
が置き換えられるということを除いて、-exec と同じです。この振る舞
いは、xargs(1) の振る舞いに似ています。プライマリは、常に真を返し
ます。少なくとも 1 つの utility の呼び出しが 0 以外の終了ステータ
スを返すなら、find は、0 以外の終了ステータスを返します。
-execdir utility [argument ...] ;
-execdir プライマリは、utility が現在のファイルを保持するディレク
トリから実行されることを除いて -exec プライマリと同一です。文字列
``{}'' に対して置換されるファイル名は、制限されません。
-execdir utility [argument ...] {} +
``{}'' が utility の各呼び出しにためにできるだけ多くのパス名と置
き換えられることを除いて、-execdir と同じです。この振る舞いは、
xargs(1) のものと同様です。プライマリは、常に真を返します。少なく
とも 1 つの utility の呼び出しが 0 以外の終了ステータスを返すな
ら、find は、0 以外の終了ステータスを返します。
-flags [-|+]flags,notflags
フラグは、シンボル名 (chflags(1) を参照) を使用して指定されます。
("nodump" を除いて) "no" 接頭辞が付けられたものは、notflags と呼
ばれます。flags 中のフラグは、設定されているかチェックされ
notflags 中のフラグは、設定されていないかチェックされます。ユーザ
は、設定されているモードビットを指定することだけができ、-perm と
異なることに注意してください。
フラグにダッシュ (``-'') が先行するなら、このプライマリは、少なく
とも flags のすべてのビットが設定されていて、notflags のすべての
ビットがファイルのフラグビットに設定されていないなら、真と評価し
ます。フラグにプラス (``+'') が先行するなら、このプライマリは、
flags のいずれかがビットがファイルのフラグビットに設定されている
か、または notflags のいずれかがビットがファイルのフラグビットに
設定されていないなら、真と評価します。そうでなければ、このプライ
マリは、flags のビットがファイルのフラグビットに正確に一致し、
flags ビットのいずれも notflags のフラグビットに一致しないなら、
真に評価します。
-fstype type
ファイルがタイプ type のファイルシステムに含まれているなら、真で
す。システムで利用可能なファイルシステムのタイプを調べるために
lsvfs(1) コマンドを使用することができます。さらに、2 つの疑似タイ
プ ``local'' と ``rdonly'' があります。前者は、find が、実行され
ているところでシステムに物理的にマウントされたあらゆるファイルシ
ステムに一致し、後者が、マウントされた読み込み専用であるあらゆる
ファイルシステムに一致します。
-gid gname
GNU find との互換性のための -group gname と同じもの。GNU find
は、gname が数値であるという制限を課しますが、find は、そうしませ
ん。
-group gname
ファイルがグループ gname に属しているなら、真です。gname が数値
で、そのようなグループ名がないなら、gname は、グループ ID として
扱われます。
-ignore_readdir_race
ファイルまたはディレクトリは、ディレクトリから名前を読み込んだ後
に削除されるので、エラーを無視します。このオプションは、開始点で
生じるエラーに影響しません。
-ilname pattern
-lname に似ていますが、比較は、大文字と小文字を区別しません。これ
は、GNU find の拡張です。
-iname pattern
-name に似ていますが、照合は、大文字と小文字を区別しません。
-inum n
ファイルに inode 番号 n があるなら、真です。
-ipath pattern
-path に似ていますが、照合は、大文字と小文字を区別しません。
-iregex pattern
-regex に似ていますが、照合は、大文字と小文字を区別しません。
-iwholename pattern
GNU find との互換性のための -ipath と同じもの。
-links n
ファイルに n 個のリンクがあるなら、真です。
-lname pattern
-name に似ていますが、シンボリックリンクの内容が、ファイル名の代
わりにマッチされます。これは、シンボリックリンクがたどられている
なら、壊れたシンボリックリンクのみに一致することに注意してくださ
い。これは、GNU find の拡張です。
-ls このプライマリは、常に真と評価されます。現在のファイルのための次
の情報は、標準出力に書き込まれます: その inode 番号、512 バイトの
ブロック単位のサイズ、ファイルのパーミッション、ハードリンクの
数、所有者、グループ、バイト単位ののサイズ、最後の更新時刻とパス
名。ファイルがブロック特殊ファイルまたはキャラクタ特殊ファイルで
あるなら、バイトのサイズの代わりにデバイス番号を表示します。ファ
イルがシンボリックリンクであるなら、リンクされたファイルのパス名
は、``->'' に先行されて表示されます。書式は、``ls -dgils'' によっ
て生成されたものと同一です。
-maxdepth n
常に真です。多くてもコマンド行の引数の下の n ディレクトリレベルま
で下降します。任意の -maxdepth プライマリが指定されるなら、たと
え、通常評価されなかったとしても、すべての式に適用します。
``-maxdepth 0'' は、すべての検索をコマンド行引数に制限します。
-mindepth n
常に真です。n 未満のレベルであらゆるテストとアクションを適用しま
せん。任意の -mindepth プライマリが指定されるなら、たとえ、通常評
価されなかったとしても、すべての式に適用します。``-mindepth 1''
は、コマンド行引数以外のすべてを処理します。
-mmin [-|+]n
ファイルの最後の更新時刻と次の分まで切り上げられる find が開始し
た時刻との差が n (+n) より大きか、n (-n) 未満か、または正確に n
分前であるなら、真です。
-mnewer file
-newer と同じです。
-mount GNU find との互換性のための -xdev と同じもの。
-mtime n[smhdw]
単位が指定されないなら、このプライマリは、ファイルの最後の更新時
刻と次の 24 時間の期間に切り上げられる find が開始された時刻の間
の差が n 24 時間の期間であるなら、真に評価します。
単位が指定されるなら、このプライマリは、ファイルの最後の更新時刻
と find が開始された時刻の間の差が正確に n 単位であるなら、真と評
価します。サポートされた時間の単位に関する情報については、-atime
プライマリの説明を参照してください。
-name pattern
調べられているパス名の最後の構成要素が pattern と一致するなら、真
です。特別なシェルのパターンマッチング文字 (``['', ``]'', ``*''
と ``?'') は、pattern の一部として使用できます。これらの文字は、
バックスラッシュ (``\'') で、それらをエスケープすることによって明
示的に照合することができます。
-newer file
現在のファイルに file より最近の最後の更新時刻があるなら、真で
す。
-newerXY file
現在のファイルが file の最後のアクセス時刻 (Y=a)、inode 作成時刻
(Y=B)、修正時刻 (Y=c)、または更新時刻 (Y=m) より最近の最後のアク
セス時刻 (X=a)、inode 作成時刻 (X=B)、修正時刻 (X=c)、または更新
時刻 (X=m) があるなら、真です。さらに、Y=t であるなら、file は、
代りに ISO8601 または RFC822 で理解される形式の直接の日付指定とし
て解釈されます。-newermm は、-newer と同等であることに注意してく
ださい。
-nogroup
ファイルが未知のグループに属しているなら、真です。
-noignore_readdir_race
-ignore_readdir_race の影響をオフに切り替えます。これは、デフォル
ト振る舞いです。
-noleaf
このオプションは、GNU find の互換性のためのものです。GNU find で
は、find に関連していない最適化を無効にするので、それは、無視され
ます。
-nouser
ファイルが未知のユーザに属しているなら、真です。
-ok utility [argument ...] ;
-ok プライマリは、find が端末にメッセージを印刷 (表示) することに
よって utility の実行のためにユーザの確認を要求することを除いて、
-exec プライマリと同一です。応答が、肯定的 (``POSIX'' ロケールで
`y') でないなら、コマンドは、実行されず、-ok 式の値は、偽です。
-okdir utility [argument ...] ;
-okdir プライマリは、-ok プライマリのために記述された同じ例外で
-execdir プライマリと同一です。
-path pattern
調べられているパス名が pattern と一致するなら、真です。特別なシェ
ルのパターンのマッチング文字 (``['', ``]'', ``*'' と ``?'') は、
pattern は、パターンの一部として使用できます。これらの文字は、
バックスラッシュ (``\'') で、それらをエスケープすることによって明
示的に照合することができます。スラッシュ (``/'') は、通常の文字と
して扱われ、明示的に一致している必要はありません。
-perm [-|+]mode
mode は、シンボリック (chmod(1) 参照) または 8 進数のいずれかで
す。mode がシンボリックであるなら、0 の開始の値が仮定され、mode
は、プロセスのファイルモード作成マスクとは関係なくパーミッション
を設定するか、またはクリアします。mode が 8 進数であるなら、ファ
イルのモードビットのビット 07777 (S_ISUID | S_ISGID | S_ISTXT |
S_IRWXU | S_IRWXG | S_IRWXO) だけが比較に関与します。mode がダッ
シュ (``-'') に先行するなら、このプライマリは、少なくとも mode の
ビットのすべてが、ファイルのモードビットに設定されるなら、真と評
価します。mode が (``+'') に先行するなら、このプライマリは、mode
のビットのいずれかが、ファイルのモードビットに設定されるなら、真
と評価します。そうでなければ、このプライマリは、mode のビットが
ファイルのモードビットに正確に一致するなら、真と評価します。シン
ボリックモードの最初の文字が、ダッシュ (``-'') にできないことに注
意してください。
-print このプライマリは、常に真と評価します。それは、標準出力に現在の
ファイルのパス名を印刷 (表示) します。-exec, -ls, -print0 または
-ok の何も指定されないなら、与えられた式は、( given expression )
-print と効果的に置き換えられます。
-print0
このプライマリは、常に真と評価します。標準出力に現在のファイルの
パス名を印刷 (表示) し、ASCII NUL (ヌル) 文字 (文字コード 0) が続
きます。
-prune このプライマリは、常に真と評価します。find は、現在のファイルを下
降しません。-prune プライマリは、-d オプションが指定されたなら、
効果がないことに注意してください。
-quit find は、直ちに終了します。
-regex pattern
全体のファイルのパスが正規表現を使用して pattern と一致するなら、
真です。``./foo/xyzzy'' と名前が付けられたファイルと照合するため
に、利用者は、``xyzzy'' または ``/foo/'' ではなく、正規表現
``.*/[xyz]*'' または ``.*/foo/.*'' を使用することができます。
-samefile name
ファイルが、name にハードリンクされているなら、真です。コマンドオ
プション -L が指定されるなら、ファイルがシンボリックリンクであ
り、name を指していても、真です。
-size n[ckMGTP]
512 バイトのブロック単位で切り上げられたファイルのサイズが n であ
るなら、真です。n に c が続くなら、プライマリは、ファイルサイズが
n バイト (文字) であるなら、真です。同様に、スケール指示子が n の
あとに続いているなら、ファイルのサイズは、次の n のスケールで比較
されます:
k キロバイト (1024 バイト)
M メガバイト (1024 キロバイト)
G ギガバイト (1024 メガバイト)
T テラバイト (1024 ギガバイト)
P ペタバイト (1024 テラバイト)
-sparse
現在のファイルがスパースファイルであるなら、真、すなわち、バイト
単位のサイズに基づいて期待されるよりより少ないブロックを割り付け
ます。また、これは、ファイルシステムによって圧縮されたファイルと
一致するかもしれません。
-type t
ファイルが指定されたタイプであるなら、真です。指定できるファイル
タイプは、次の通りです:
b ブロック特殊
c キャラクタ特殊
d ディレクトリ
f 通常のファイル
l シンボリックリンク
p FIFO
s ソケット
-uid uname
GNU find との互換性のための -user uname と同じもの。GNU find は、
uname が数値であるという制限を課しますが、find は、そうしません。
-user uname
ファイルが、ユーザ uname の所有であるなら、真です。uname が数値
で、そのようなユーザ名がないなら、uname は、ユーザ ID として扱わ
れます。
-wholename pattern
GNU find との互換性のための -path と同じもの。
演算子
プライマリは、次の演算子を使用して組み合わされます。演算子は、優先順位の
減少する順序でリストされます。
( expression )
これは、括弧内の expression (式) が真と評価するなら、真と評価しま
す。
! expression
-not expression
これは、単項否定 (NOT) 演算子です。expression (式) が偽であるな
ら、真と評価されます。
-false 常に、偽です。
-true 常に、真です。
expression -and expression
expression expression
-and 演算子は、論理積 (AND) 演算子です。それが 2 つの expression
(式) の並置によって意味されるように、それを指定する必要はありませ
ん。両方の expression (式) が真であるなら、expression (式) は、真
と評価します。最初の expression (式) が偽であるなら、2 番目の
expression (式) は、評価されません。
expression -or expression
-or 演算子は、論理和 (OR) 演算子です。最初または 2 番目の expres
sion (式) のいずれかが真であるなら、expression (式) は、真と評価
されます。最初の expression (式) が真であるなら、2 番目の expres
sion (式) は、評価されません。
すべてのオペランドとプライマリは、find への個別の引数でなければなりませ
ん。それら自体が引数を取るプライマリは、find への個別の引数である各引数を
要求します。
環境変数
LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES と LC_TIME 環境変数は、
environ(7) に記述されているように find ユーティリティの実行に影響します。
使用例
次の例は、シェルに与えられるように表示されます:
find / \! -name "*.c" -print
名前が .c で終わらないすべてのファイルのリストを印刷 (表示) しま
す。
find / -newer ttt -user wnj -print
ファイル ttt より新しい、ユーザ ``wnj'' によって所有されているす
べてのファイルのリストを印刷 (表示) します。
find / \! \( -newer ttt -user wnj \) -print
ttt より新しくなく ``wnj'' によって所有されない、すべてのファイル
のリストを印刷 (表示) します。
find / \( -newer ttt -or -user wnj \) -print
``wnj'' によって所有されるか、または ttt より新しい、すべてのファ
イルのリストを印刷 (表示) します。
find / -newerct '1 minute ago' -print
inode 変更時刻が現在の時刻よりマイナス 1 分より最近のすべてのファ
イルのリストを印刷 (表示) します。
find / -type f -exec echo {} \;
すべてのファイルのリストを印刷 (表示) するために echo(1) コマンド
を使用します。
find -L /usr/ports/packages -type l -exec rm -- {} +
/usr/ports/packages 中の壊れたすべてのシンボリックリンクを削除し
ます。
find /usr/src -name CVS -prune -o -depth +6 -print
作業ディレクトリ /usr/src の中で少なくとも 7 つのレベルの深さであ
るファイルとディレクトリを見つけます。
find /usr/src -name CVS -prune -o -mindepth 7 -print
-prune が 7 つのレベル以下に評価されないので、前の例と同等ではあ
りません。
互換性
-follow プライマリは、非推奨です。変わりに -L オプションが使用されるべき
です。詳細については、下記の「規格」セクションを参照してください。
関連項目
chflags(1), chmod(1), locate(1), lsvfs(1), whereis(1), which(1),
xargs(1), stat(2), acl(3), fts(3), getgrent(3), getpwent(3), strmode(3),
ascii(7), re_format(7), symlink(7)
規格
find ユーティリティの構文は、IEEE Std 1003.1-2001 (``POSIX.1'') 規格で明
記された構文のスーパセットです。
-amin, -anewer, -cmin, -cnewer, -delete, -empty, -fstype, -iname, -inum,
-iregex, -ls, -maxdepth, -mindepth, -mmin, -not, -path, -print0, -regex,
-sparse と同様に -H と -L を除くすべての単一文字のオプションと -B* すべて
の作成時刻関連のプライマリは、IEEE Std 1003.1-2001 (``POSIX.1'') の拡張で
す。
歴史的に、-d, -L と -x オプションは、プライマリ -depth, -follow と -xdev
を使用して実装されていました。これらのプライマリは、常に真と評価されてい
ました。それらが、横断が始まる前に、効果を現わした実際のグローバル変数で
あるように、いくつかの正当な式は、予期しない結果になるかもしれません。例
は、式 -print -o -depth です。-print が常に真と評価するように、標準の評価
の順序は、-depth が決して評価されないことを意味します。
これは、そうではありません。演算子 -or は、-o として実装され、演算子 -and
は、-a として実装されました。
-exec と -ok プライマリの歴史的な実装は、それに先行するか、または続く空白
類でない文字があったなら、ユーティリティ名またはユーティリティ引数の文字
列 ``{}'' を置き換えませんでした。このバージョンは、ユーティリティ名また
は引数に、それがどこに現われても、それを置き換えます。
-E オプションは、同等な grep(1) と sed(1) オプションから発想を得ました。
歴史
単純な find コマンドは、Version 1 AT&T UNIX で登場し、Version 3 AT&T UNIX
で削除されました。それは、Version 5 AT&T UNIX のために書き直され、後にプ
ログラマーズワークベンチ (Programmer's Workbench; PWB) のために改良されま
した。これらの変更は、後に Version 7 AT&T UNIX に組み込まれました。
バグ
また、find によって使用される特殊文字は、多くのシェルプログラムにも特殊文
字です。特に、文字 ``*'', ``['', ``]'', ``?'', ``('', ``)'', ``!'', ``\''
と ``;'' は、シェルからエスケープされなくてはなりません。
オプションとファイル名またはファイル名と expression (式) を区切るデリミタ
がないように、-xdev または ! と名前が付けられたファイルを指定することは難
しいことです。これらの問題は、-f オプションと getopt(3) ``--'' 指定によっ
て扱われます。
-delete プライマリは、ファイルシステムツリーを横断するオプションを変更す
る他のオプションとよく作用しません。
(上記に文書化されたように) -mindepth と -maxdepth プライマリは、実際にグ
ローバルなオプションです。それらは、恐らくオプションのように見えるオプ
ションと置き換えられるべきです。
FreeBSD 13.2 January 23, 2023 FreeBSD 13.2