home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 February / VPR9602A.ISO / fwindows / archive / tmedt090.lzh / TOOLD101.LZH / MAN.LZH / FINDF.MAN < prev    next >
Text File  |  1994-11-20  |  6KB  |  132 lines

  1.  
  2. FINDF(1)                Reference Manual                FINDF(1)
  3.  
  4.  
  5. NAME  
  6.         findf - ファイルの検索
  7.  
  8.  
  9. SYNOPSIS  
  10.         findf pathname [pathname ...] expression
  11.  
  12.  
  13. DESCRIPTION  
  14.  
  15.         findf は、pathnameで指定された各パス、およびそれがディレクトリで
  16.         あればその下を再帰的に検索し、見つかった各ファイルおよびディレク
  17.         トリについてexpression を評価する。
  18.  
  19.         expression は下に示すプリミティブ、あるいはそれを演算子「!」(否定)、
  20.         「-a」(かつ)、「-o」(または)や括弧「(」「)」で組み合わせたもので
  21.         ある(前3者の優先順位は「!」「-a」「-o」である)。但し、演算子「-a」
  22.         は省略することができる。すなわち、expressionを2つ続けて書けばその
  23.         間に暗黙の「-a」があるものとして扱われる。
  24.  
  25.         プリミティブを構成する各々の語や、また演算子や括弧は全て、findfコ
  26.         マンドへのそれぞれ独立した引数として与えなければならない。
  27.  
  28.         なお、以下の文中でn とあるのは、10進の数字である。また、+n と書く
  29.         と「nより大きい数」、-n と書くと「nより小さい数」を表すことができ
  30.         る。
  31.  
  32.         expression の評価は、全体の値が真か偽のどちらかに定まった時点で終
  33.         了し、残りの部分は評価されない。例えばexp1 -a exp2の評価にあたっ
  34.         て、exp1が偽であればexp2は評価しない。
  35.  
  36.         -name filename: 探索したファイル名がfilenameにマッチする場合に真。
  37.             filenameの中ではワイルドカードを使えるが、その場合は全体を「
  38.             " "」で囲むなどしてエスケープしないと、コマンドの実行開始前に
  39.             展開されて構文エラーとなる。
  40.         -perm 8進数: ファイルのアクセス許可モード(UNIX流のrwxビットに直し
  41.             たもの、例えば読み書き可能の非実行通常ファイルなら0100666)が
  42.             指定した8進数に一致すれば真。「8進数」の前に「-」を付けると、
  43.             「そのファイルの許可モード & 指定した8進数」がその8進数に一致
  44.             するかどうかの判断に変わる。
  45.         -prune: 常に真で、副作用として現在のパス以下のディレクトリの検索
  46.             をしなくなる。
  47.         -type 文字: 文字は「cdf」のいずれか。cはデバイスファイル、dはディ
  48.             レクトリ、fは通常ファイル(ディレクトリでもデバイスファイルで
  49.             もボリュームファイルでもないもの)を表し、現在のファイルがそれ
  50.             に該当する場合に真となる。
  51.         -attr string: stringは文字「adhoswx」だけからなる文字列。aはアー
  52.             カイブビットが立っていること、dはディレクトリ、hは隠しファイ
  53.             ル、oは書き込み禁止、sはシステム属性、wは書き込み許可、xは実
  54.             行可能またはディレクトリであることを表し、現在のファイルがそ
  55.             の全ての性質を持っている場合に真となる。
  56.         -size n: ファイルのサイズがnブロックなら真。但し1ブロックは常に5
  57.             12バイトとして数える。nの後ろにcがつくとサイズはバイト単位で
  58.             比較する。
  59.         -mtime n: ファイルの更新時刻がn日前であれば真。「n日前」とは正確
  60.             には、現時刻のn日前以前で、n+1日前より後を指す。
  61.         -exec command: commandにはコマンドラインを記述し、最後に「;」を付
  62.             加する。そのコマンドを実行し、終了コードが0であった場合に真。
  63.             コマンドの各引数および最後の「;」は、空白で区切ってそれぞれを
  64.             findfの独立した引数として与えねばならない。なお、「{}」があれ
  65.             ばそれは現在のパス名に置き換わる。
  66.         -ok command: コマンドラインの一部を表示し、ユーザのキー入力を受け
  67.             付け、それが「Y」か「y」であった場合のみコマンドを実行するこ
  68.             とを除き、-execと同じである。
  69.         -print: 常に真で、副作用として現在のパス名を表示。
  70.         -ls: 常に真で、副作用として現在のパスに関する情報をls -lsと同じ形
  71.             式で表示。
  72.         -newer filename: そのファイルの更新時刻がfilenameで与えられるファ
  73.             イルの更新時刻より後なら真。
  74.         -depth: 常に真。これがあると、ディレクトリ内の全てのファイルの方
  75.             がそのディレクトリより先に検索される。なおこれは、特に特定の
  76.             パス名に対して評価が行われなくても、全体の検索順序に影響を与
  77.             える(UNIXでもそうなっているみたい)。
  78.  
  79.  
  80. EXAMPLES  
  81.  
  82.                 findf a:/foo a:/bar -type f -newer /bar.dat -print
  83.  
  84.         ファイルA:/fooおよびA:/bar、あるいはそれらがディレクトリであれば
  85.         その下にあるファイルのうち、通常ファイルであってかつ、/bar.datよ
  86.         り更新時刻が新しいものについて、そのファイル名を出力。
  87.  
  88.                 findf ba* -type f ( -name "*.exe" -o -exec find '/n '"char'"
  89.                 {} ; )
  90.  
  91.         baで始まる名前のファイル、あるいはそれがディレクトリがあればその
  92.         下にあるファイルのうち、通常ファイルであってかつ名前が「*.exe」に
  93.         マッチしないものについて、「find /n "char" 見つかったファイル」を
  94.         実行(DOSの標準外部コマンドfindを使っている)。「ba*」のワイルドカ
  95.         ードは展開される。一方、「*.exe」のワイルドカードは展開させないよ
  96.         うに「" "」でエスケープしている。また、「'/n」としている理由は、
  97.         単に「/n」と書くとtoolsの引数解釈ルーチンによって「\n」に変えられ
  98.         るため。その次の「'"char'"」も、単に「"char"」ではtoolsの引数解釈
  99.         ルーチンによって「char」と解釈されてしまうため、「"char"」が渡さ
  100.         れるよう「'」で「"」をエスケープしている。
  101.  
  102.                 findf ba* -type f ( -name "*.exe" -o -exec fgrep -n char
  103.                 {} ; )
  104.  
  105.         上の例とほぼ同じことをtoolsのfgrepを使って行う例。
  106.  
  107.                 findf ba* -type f ( -name "*.exe" -o -print ) | fgrep -n
  108.                 char @-
  109.  
  110.         上の例とほぼ同じだが、fgrepを1回しか起こさないため効率がよい。to
  111.         olsの間接引数展開機能の特例をうまく使った例。もっとも、findfが見
  112.         つけたファイルがあまり多いと、「@-」の展開でメモリ不足を起こすか
  113.         もしれない。
  114.  
  115.  
  116. SEE ALSO 
  117.         wild(5), setarg(5)
  118.  
  119.  
  120. BUGS  
  121.         ファイルの検索される順序は、ディレクトリに格納されている順番通り
  122.         であり、ソートされない。
  123.  
  124.         toolsのワイルドカードは、ファイル名の先頭の「_」をマッチ対象から
  125.         除外しているので、-name "*" は「_」で始まるファイル名に対しては真
  126.         にならない。-name "_*" は真になる。
  127.  
  128.         UNIXと違いMS-DOSでは括弧や「;」が特殊文字でないので、括弧や、-ex
  129.         ecの終端の「;」をエスケープする必要はない。但し、フリーソフト「h
  130.         istory」を動かしているなど、コマンドライン中の「;」が特別に解釈さ
  131.         れる状況下では、「;」はエスケープしなくてはならない。
  132.