diff options
Diffstat (limited to 'ja_JP.eucJP/man/man1/find.1')
-rw-r--r-- | ja_JP.eucJP/man/man1/find.1 | 498 |
1 files changed, 498 insertions, 0 deletions
diff --git a/ja_JP.eucJP/man/man1/find.1 b/ja_JP.eucJP/man/man1/find.1 new file mode 100644 index 0000000000..f0aea44807 --- /dev/null +++ b/ja_JP.eucJP/man/man1/find.1 @@ -0,0 +1,498 @@ +.\" Copyright (c) 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)find.1 8.4 (Berkeley) 4/1/94 +.\" %Id: find.1,v 1.4.2.3 1997/05/19 22:14:53 eivind Exp % +.\" jpman %Id: find.1,v 1.4 1997/09/23 14:13:10 horikawa Stab % +.\" +.Dd April 1, 1994 +.Dt FIND 1 +.Os +.Sh 名称 +.Nm find +.Nd ディレクトリツリーを再帰的に下ってファイルを捜す +.Sh 書式 +.Nm find +.Op Fl H | Fl L | Fl P +.Op Fl Xdx +.Op Fl f Ar file +.Op Ar file ... +.Ar expression +.Sh 解説 +.Nm find +は、 +.Ar file +に対してディレクトリツリーを再帰的に下って、 +ツリー上の各ファイルについて +.Ar expression +(後に示す ``プライマリ'' と ``演算子'' から構成されます) +で指定された処理を実行します。 +.Pp +オプションとしては以下のものがあります: +.Pp +.Bl -tag -width Ds +.It Fl H +.Ar file +で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク +自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ( +.Xr stat 2 +参照) を使って +.Ar expression +の処理をするように指定します。 +もしリンク先のファイルがなければ、 +シンボリックリンク自体を処理の対象とします。 +コマンドラインからの +.Ar file +で直接指定されたのではなく、 +ディレクトリツリー上で見つかったシンボリックリンクファイルに関しては、 +シンボリックリンク自体を処理の対象とします。 +.It Fl L +.Ar file +で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク +自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ( +.Xr stat 2 +参照) を使って +.Ar expression +の処理をするように指定します。もしリンク先のファイルがな +ければ、シンボリックリンク自体を処理の対象とします。 +.It Fl P +シンボリックリンク自体に関して +ファイル情報とファイルタイプ( +.Xr stat 2 +参照) を使って +.Ar expression +の処理をするように指定します。 +これがデフォルトです。 +.It Fl X +.Xr xargs 1 +と組み合わせて使うときのため、より安全に動作するようにします。もし +.Xr xargs +によりデリミタ文字 (single quote (`` ' ''), double quotes (`` " ''), +backslash (``\e''), space, tab, newline) +が含まれるファイル名 +が使われた場合、診断メッセージを標準エラー出力に表示して、 +そのファイル名をスキップします。 +.It Fl d +ファイルに対する処理順序を深さ優先の探索方式、すなわち、ディレクトリ自体に +対する処理を行う前に、ディレクトリ内の個々のファイルに対して処理を +実行します。デフォルトでは、ディレクトリは最初に処理されます。 +(デフォルトの方式は幅優先探索方式ではないです。) +.It Fl f Ar file +明示的にファイルを指定します。ファイル名の先頭が ``\-'' で始まっていたり、 +あとで述べる +.Ar expression +の指定と混同してしまうようなファイル名を指定したりするときに使用します。 +(ファイルはオプション直後のオペランドとしても指定可能です。) +.It Fl x +ディレクトリツリーを下って行くとき、最初に file のあったファイルシステムとは +異なるファイルシステム上のファイルに対する処理になる場合は、実行しないように +します。 +.El +.Sh プライマリ +.Bl -tag -width Ds +.It Ic -atime Ar n +最後にファイルがアクセスされた時刻と、 +.Nm find +を起動した時刻との差(24 時間単位で切り上げます)が +.Ar n +日であれば、真とします。 +.It Ic -ctime Ar n +最後にファイルのステータスが変更された時刻と、 +.Nm find +を起動した時刻の差 (24 時間単位で切り上げます) が +.Ar n +日であれば、真とします。 +.It Ic -delete +見付けたファイルやディレクトリを消去します。常に真を返します。 +現在の作業ディレクトリから +.Nm +は再帰的にディレクトリトリーを下ります。 +セキュリティ上の理由から、 +"." からの相対パス名に ``/'' 文字を含むファイル名を消去しようとはしません。 +このオプションにより暗示的に深さ優先の処理が指定されます。 +.It Ic -exec Ar utility Op argument ... ; +.Ar utility +で指定した名前のプログラムを実行し、終了コードが 0 +の場合、真とします。argument は、utility への引き数として渡されます。この +指定は、最後に必ずセミコロン (``;'') をつけてください。 +utility もしくは argument の指定 +のなかで ``{}'' が使われていた場合は、その部分が、現在 +.Nm find +が対象としてい +るファイルのパス名に置き換えられます。ただし、 +.Ar utility +が実行されるときのカレントディレクトリは、 +.Nm find +が起動されたディレクトリのままです。 +.It Ic -fstype Ar type +対象ファイルが格納されているファイルシステムのタイプが、 +.Ar type +で指定されたものである場合に真となります。type としては、 +``local'', ``mfs'', ``nfs'', ``msdos'', ``rdonly'', `'ufs'' +を指定することができます。 +``local'' と ``rdonly'' は特定のファイルシステムを指すものではありません。 +``local'' は、 +.Nm find +を実行しているシステム上に物理的 +にマウントされているファイルシステムです。``rdonly'' は、リードオンリーで +マウントされているファイルシステムです。 +.It Ic -group Ar gname +ファイルが +.Ar gname +で指定したグループに属している場合、真になります。 +.Ar gname +が数字で、そのようなグループ名がない場合は、 +.Ar gname +をグループ ID として扱います。 +.It Ic -inum Ar n +ファイルの i ノード番号が +.Ar n +なら、真になります。 +.It Ic -links Ar n +ファイルのリンク数が +.Ar n +なら、真になります。 +.It Ic -ls +このプライマリは常に真になります。対象となっているファイルの情報を +標準出力に出力されます。出力される内容は i ノード番号、 +512 バイトブロックでのファイルの大きさ、 +ファイルのパーミッション、ハードリンクの数、オーナ、グループ、 +バイトで表したファイルの大きさ、最後にファイルが修正された時刻、パス名です。 +ファイルがブロック型もしくはキャラクタ型のスペシャルファイルならば、 +バイトで表したファイルの大きさの代わりにメジャー番号とマイナー番号が +出力されます。ファイルがシンボリックリンクならば、 +`\`->''の後にリンク先のファイルのパス名が表示されます。 +フォーマットは +``ls -dgils'' の出力結果と同じです。 +.It Ic -mtime Ar n +最後にファイルが修正された時刻と、 +.Nm find +を起動した時刻との差(24 時間単位で切り上げます)が +.Ar n +日であれば、真とします。 +.It Ic \&-ok Ar utility Op argument ... ; +.Ic exec +とほぼ同じですが、 +.Ar utility +を実行するかどうかの確認をユーザに求め、端末にメッセージを出力します。 +``y'' 以外の返答をした場合は、 +コマンドは実行されず、 +このプライマリの値は偽になります。 +.It Ic -name Ar pattern +対象ファイルのパス名の最後のファイル名部分が +.Ar pattern +で指定したものとマッチするかどうかを調べ、マッチした場合は真になります。 +.Ar pattern +としては、シェルで使われるパターンマッチ +指定 (``['', ``]'', ``*'', ``?'') を使用することができます。これらの文字は +バックスラッシュ(``\e'')を前において、パターンマッチ指定ではなく文字として +扱う事を明示することができます。 +.It Ic -newer Ar file +対象ファイルの修正日付が、 +.Ar file +で指定したファイルのものより新しい場合は、真になります。 +.It Ic -nouser +対象ファイルのオーナーが unknown の場合、真になります。 +.It Ic -nogroup +対象ファイルのグループが unknown の場合、真になります。 +.It Ic -path Ar pattern +対象ファイルのパス名が、 +.Ar pattern +で指定したものとマッチす +るかどうかを調べます、マッチした場合は真になります。 +.Ar pattern +としては、シェルで使われるパターンマッチ +指定 (``['', ``]'', ``*'', ``?'') を使用することができます。これらの文字は +バックスラッシュ (``\e'') を前において、パターンマッチ指定ではなく文字として +扱う事を明示することができます。 +``/'' は、そのままパスのディレクトリの区切りにマッチします。 +.It Ic -perm Op Ns Ar mode +ファイルのモードを、 +.Ar mode +と比較します。 +.Ar mode +は、シンボル +形式( +.Xr chmod 1 +参照) もしくは 8 進数形式で指定します。シンボル形式の場合は、 +00000 から開始してパーミッションのセットとクリアを行います。 +(プロセスのファイル生成マスクとは無関係です。) +8 進数形式の場合は、 +ファイルのモードビットのうち、07777 +.Pf ( Dv S_ISUID +| +.Dv S_ISGID +| +.Dv S_ISTXT +| +.Dv S_IRWXU +| +.Dv S_IRWXG +| +.Dv S_IRWXO ) +の部分が比較対象になります。 +.Ar mode +の最初に ``\-'' を指定した場合は、 +.Ar mode +でセットされているすべてのビットが +ファイルのモードでもセットされていれば真となります。 +``\-'' が指定されていない場合は、ファイルのモードと +.Ar mode +が完全に一致した場合にのみ真となります。 +なお、シンボル形式で、最初に ``\-'' が +くるようなモードの書き方をすると、一致条件の指定と区別がつかなくなるので、 +シンボル形式でモード指定をする場合は、少なくとも最初が ``\-'' にならない +ようにする必要があります。 +.It Ic -print +このプライマリは常に真になります。 +対象となっているファイルのパス名を標準出力に出力して改行します。 +.Ic -exec , +.Ic -ls , +.Ic -ok , +.Ic -print0 +のどのプライマリも指定されなかった場合は、 +本プライマリが指定されているものとみなします。 +.It Ic -print0 +.Ic -print +とほぼ同じですが、標準出力に対象となっているファイルのパス名を出力 +したあと、改行ではなく、 +.Tn ASCII +.Tn NUL +文字(文字コード 0)を出力します。 +.It Ic -prune +このプライマリは常に真になります。 +対象となっているファイル配下のディレクトリに下りないようにします。 +.Fl d +オプションが指定されている場合は、 +.Ic -prune +の指定は無効になります。 +.It Ic -size Ar n Ns Op Cm c +ファイルサイズを 512 バイトのブロック単位で数えたとき (端数は切り上げ)、 +.Ar n +ブロックであれば真になります。 +.Ar n +のあとに ``c'' が指定されていた場合は、ファイルサイズが +.Ar n +バイトであれば真になります。 +.It Ic -type Ar t +ファイルタイプが +.Ar t +で指定されたタイプに一致すれば真になります。 +タイプとして、次のような指定が可能です: +.Pp +.Bl -tag -width flag -offset indent -compact +.It Cm b +ブロックスペシャル +.It Cm c +キャラクタスペシャル +.It Cm d +ディレクトリ +.It Cm f +普通のファイル +.It Cm l +シンボリックリンク +.It Cm p +FIFO +.It Cm s +ソケット +.El +.Pp +.It Ic -user Ar uname +ファイルの所有者が、 +.Ar uname +で指定されたユーザと一致すれば真になります。もし +.Ar uname +が数字で、そのようなユーザ名がなければ、 +ユーザ ID が指定されたものとして扱います。 +.El +.Pp +なお、数字を引数にとるプライマリは、 +数字の前に ``+'' および ``\-'' をつけることができます。 +それぞれ ``n より大'' および ``n より小'' の意味になり、 +``正確に n''という意味ではなくなります。 +.Sh 演算子 +.Pp +以下の演算子を使って、プライマリを組み合わせることができます。 +演算子は優先度が下がる順番で示されています。 +.Bl -tag -width (expression) +.It Cm \&( Ns Ar expression Ns Cm \&) +もし、括弧内の +.Ar expression +が真なら、真になります。 +.Pp +.It Cm \&! Ns Ar expression +単項否定演算子( +.Tn NOT +)です。 +.Ar expression +が偽なら、真となります。 +.Pp +.It Ar expression1 Cm -and Ar expression2 +.It Ar expression1 expression2 +論理積( +.Tn AND +)演算子です。 +.Ar expression1 +と +.Ar expression2 +の両方とも真のとき、真になります。 +もし +.Ar expression1 +が偽なら、 +.Ar expression2 +は実行されません。 +.Ic -and +を書かずに、単に 2 つの expression を並べて +.Pp +.Ar expression1 expression2 +.Pp +と書いても同じです。 +.Pp +.It Ar expression1 Cm -or Ar expression2 +論理和( +.Tn OR +)演算子です。 +.Ar expression1 +か +.Ar expression2 +のどちらか一方でも真であれば、真になります。もし +.Ar expression1 +が真なら、 +.Ar expression2 +は実行されません。 +.El +.Sh 使用例 +.Pp +コマンドラインからのタイプ例です。 +.Nm find +の演算子がシェルの特殊文字と間違われないように、 +エスケープ文字 ``\e'' を使用しています。 +.Bl -tag -width findx +.It Li "find / \e! -name \*q*.c\*q -print" +探索をルートディレクトリから開始し、ファイル名の終わりが +``.c'' でないものを表示します。 +.It Li "find / -newer ttt -user wnj -print" +探索をルートディレクトリから開始し、 +ファイルが ``ttt'' というファイルより新しく、 +所有者が ``wnj'' であるようなものを表示します。 +.It Li "find / \e! \e( -newer ttt -user wnj \e) -print" +探索をルートディレクトリから開始し、 +``ttt'' というファイルより古いか、 +所有者が ``wnj'' 以外のファイルを表示します。 +.It Li "find / \e( -newer ttt -or -user wnj \e) -print" +探索をルートディレクトリから開始し、 +ファイルが ``ttt'' というファイルより新しいか、 +所有者が ``wnj'' であるようなものを表示します。 +.El +.Sh 関連項目 +.Xr chmod 1 , +.Xr locate 1 , +.Xr stat 2 , +.Xr fts 3 , +.Xr getgrent 3 , +.Xr getpwent 3 , +.Xr strmode 3 , +.Xr symlink 7 +.Sh 規格 +.Nm find +ユーティリティの文法は +.St -p1003.2 +の仕様で決められた文法のスーパセットです。 +.Fl s , +.Fl x +のオプションと +.Ic -inum , +.Ic -print0 , +.Ic -delete , +.Ic -ls +のプライマリは +.St -p1003.2 +の拡張です。 +.Pp +昔は +.Fl d , +.Fl h , +.Fl x +のオプションは +それぞれ ``\-depth'', ``\-follow'', ``\-xdev'' のプライマリを +用いて実装されていました。 +これらのプライマリは常に真に評価されていました。 +これらのプライマリは +探索が始まる前に効果を与える本当のグローバル変数であったので、 +いくつかの合法的な expression が予期しない結果となりました。 +一例として ``\-print \-o \-depth''の expression があります。 +\-print が常に真に評価されるため +標準の評価の順番では \-depth は決して評価されないはずですが、 +そうではありませんでした。 +.Pp +演算子の ``-or'' は ``\-o'' として実装されていました。 +演算子の ``-and'' は ``\-a'' として実装されていました。 +.Pp +昔の実装では +.Ic exec +と +.Ic ok +のプライマリでは、 +utility 名やその引数中において、 +空白以外の文字が前後に続く ``{}'' を置き換えませんでした。 +このバージョンでは utility 名やその引数のどの場所に ``{}'' が現れても +置き換えます。 +.Sh バグ +.Nm find +によって使われる特殊文字は多くのシェルにとっても +特殊文字です。 +特に ``*'', ``['', ``?'', ``('', ``)'', ``!'', ``\e'', ``;'' は、 +シェルからエスケープされなくてはならないでしょう。 +.Pp +オプションとファイル名との間および +ファイル名と +.Ar expression +との間を区切るデリミタが存在しませんので、 +ファイル名にオプションと間違えるようなもの (``-xdev'' のようなもの) や、 +.Ar expression +と間違えるようなもの (``!'' のようなもの) を指定することは難しいです。 +このようなファイル名を指定する場合は +.Fl f +オプションを使うか、 +.Xr getopt 3 +で使われるオプション指定の終了記号 ``--'' を使用します。 +.Pp +.Ic -delete +プライマリは、ファイルシステムトリーの検索順序に影響する +他のオプションとは十分には連係しません。 +.Sh 歴史 +.Nm +コマンドは +.At v1 +から登場しました。 |