File:  [Local Repository] / gnujdoc / findutils-4.2.23 / find-ja.texi
Revision 1.1: download - view: text, annotated - select for diffs
Sun Sep 25 15:38:06 2005 UTC (15 years, 1 month ago) by futoshi
Branches: MAIN
CVS tags: HEAD
add findutils-4.2.23

    1: \input texinfo @c -*-texinfo-*-
    2: @c %**start of header
    3: @setfilename find-ja.info
    4: @settitle Finding Files
    5: @c For double-sided printing, uncomment:
    6: @c @setchapternewpage odd
    7: @c %**end of header
    8: 
    9: @include find-v.texi
   10: 
   11: @iftex
   12: @finalout
   13: @end iftex
   14: 
   15: @dircategory Basics
   16: @direntry
   17: * Finding files(ja): (find-ja).        Operating on files matching certain criteria.
   18: @end direntry
   19: 
   20: @dircategory Individual utilities
   21: @direntry
   22: * find(ja): (find-ja)Invoking find.                Finding and acting on files.
   23: * locate(ja): (find-ja)Invoking locate.            Finding files in a database.
   24: * updatedb(ja): (find-ja)Invoking updatedb.        Building the locate database.
   25: * xargs(ja): (find-ja)Invoking xargs.              Operating on many files.
   26: @end direntry
   27: 
   28: @copying
   29: 
   30: This file documents the GNU utilities for finding files that match
   31: certain criteria and performing various operations on them.
   32: 
   33: Copyright (C) 1994, 1996, 1998, 2000, 2001, 2003, 2004, 2005 Free
   34: Software Foundation, Inc.
   35: 
   36: Permission is granted to make and distribute verbatim copies of
   37: this manual provided the copyright notice and this permission notice
   38: are preserved on all copies.
   39: 
   40: @ignore
   41: Permission is granted to process this file through TeX and print the
   42: results, provided the printed document carries copying permission
   43: notice identical to this one except for the removal of this paragraph
   44: (this paragraph not being relevant to the printed manual).
   45: 
   46: @end ignore
   47: Permission is granted to copy and distribute modified versions of this
   48: manual under the conditions for verbatim copying, provided that the entire
   49: resulting derived work is distributed under the terms of a permission
   50: notice identical to this one.
   51: 
   52: Permission is granted to copy and distribute translations of this manual
   53: into another language, under the above conditions for modified versions,
   54: except that this permission notice may be stated in a translation approved
   55: by the Foundation.
   56: @end copying
   57: 
   58: @titlepage
   59: @title Finding Files
   60: @subtitle Edition @value{EDITION}, for GNU @code{find} version @value{VERSION}
   61: @subtitle @value{UPDATED}
   62: @author by David MacKenzie
   63: @c 翻訳:西尾 太
   64: 
   65: @page
   66: @vskip 0pt plus 1filll
   67: @insertcopying{}
   68: @end titlepage
   69: 
   70: @contents
   71: 
   72: @ifnottex
   73: @node Top, Introduction, , (dir)
   74: @comment  node-name,  next,  previous,  up
   75: 
   76: @c This file documents the GNU utilities for finding files that match
   77: @c certain criteria and performing various actions on them.
   78: @c This is edition @value{EDITION}, for @code{find} version @value{VERSION}.
   79: @c 
   80: このファイルは,特定の基準にマッチするファイルを検索し,それらに様々な
   81: アクションを実行するGNUユーティリティの説明です.これは,@code{find}の
   82: バージョン@value{VERSION}に対する,エディション@value{EDITION}です.
   83: @end ifnottex
   84: 
   85: @c The master menu, created with texinfo-master-menu, goes here.
   86: 
   87: @menu
   88: * Introduction::                Summary of the tasks this manual describes.
   89: * Finding Files::               Finding files that match certain criteria.
   90: * Actions::                     Doing things to files you have found.
   91: * Common Tasks::                Solutions to common real-world problems.
   92: * Databases::                   Maintaining file name databases.
   93: * File Permissions::            How to control access to files.
   94: * Reference::                   Summary of how to invoke the programs.
   95: * Security Considerations::     Security issues relating to findutils.
   96: * Error Messages::              Explanations of some messages you might see.
   97: * Primary Index::               The components of @code{find} expressions.
   98: @end menu
   99: 
  100: @node Introduction, Finding Files, Top, Top
  101: @c @chapter Introduction
  102: @chapter はじめに
  103: 
  104: @c This manual shows how to find files that meet criteria you specify, and
  105: @c how to perform various actions on the files that you find.  The
  106: @c principal programs that you use to perform these tasks are @code{find},
  107: @c @code{locate}, and @code{xargs}.  Some of the examples in this manual
  108: @c use capabilities specific to the GNU versions of those programs.
  109: @c 
  110: このマニュアルは,指定した基準に合ったファイルを検索する方法と,見つけ
  111: たファイルに様々なアクションを実行する方法を示します.これらの作業を実
  112: 行するために使用する主なプログラムは,@code{find},@code{locate},そし
  113: て@code{xargs}です.このマニュアルにある例は,これらのプログラムのGNUバー
  114: ジョン特有の能力を使用します.
  115: 
  116: @c GNU @code{find} was originally written by Eric Decker, with enhancements
  117: @c by David MacKenzie, Jay Plett, and Tim Wood.  GNU @code{xargs} was
  118: @c originally written by Mike Rendell, with enhancements by David
  119: @c MacKenzie.  GNU @code{locate} and its associated utilities were
  120: @c originally written by James Woods, with enhancements by David MacKenzie.
  121: @c The idea for @samp{find -print0} and @samp{xargs -0} came from Dan
  122: @c Bernstein.  The current maintainer of GNU findutils (and this manual) is
  123: @c James Youngman.  Many other people have contributed bug fixes, small
  124: @c improvements, and helpful suggestions.  Thanks!
  125: @c 
  126: GNU @code{find}は,元々Eric Deckerによって書かれ,David MacKenzie,Jay
  127: Plett,そしてTim Woodによって拡張されました.GNU @code{xargs}は,元々
  128: Mike Rendellによって書かれ,David MacKenzieによって拡張されました.GNU
  129: @code{locate}とそれに関連するユーティリティは,元々James Woodsによって
  130: 書かれ,David MacKenzieよって拡張されました.@samp{find -print0}と
  131: @samp{xargs -0}に関するアイデアは,Dan Bernsteinによります.GNU
  132: findutils (とこのマニュアル)の現在の監理者はJames Youngman.です.その他,
  133: 多くの人がバグの修正,小さな改良,そして有益な提案を寄与してくれました.
  134: どうもありがとう!
  135: 
  136: @c Mail suggestions and bug reports for these programs to
  137: @c @code{bug-findutils@@gnu.org}.  Please include the version
  138: @c number, which you can get by running @samp{find --version}.
  139: @c 
  140: これらのプログラムに関するメールでの提案とバグの報告先は
  141: @code{bug-findutils@@gnu.org}になります.@samp{find --version}を実行し
  142: て得られるバージョンナンバーを含めてください.
  143: 
  144: @menu
  145: * Scope::
  146: * Overview::
  147: * find Expressions::
  148: @end menu
  149: 
  150: @node Scope
  151: @c @section Scope
  152: @section スコープ
  153: 
  154: @c For brevity, the word @dfn{file} in this manual means a regular file, a
  155: @c directory, a symbolic link, or any other kind of node that has a
  156: @c directory entry.  A directory entry is also called a @dfn{file name}.  A
  157: @c file name may contain some, all, or none of the directories in a path
  158: @c that leads to the file.  These are all examples of what this manual
  159: @c calls ``file names'':
  160: @c 
  161: 簡潔にするため,このマニュアル内の単語@dfn{ファイル(file)}は,通常のファ
  162: イル,ディレクトリ,シンボリックリンク,またはディレクトリエントリを持
  163: つノードのようなその他のあらゆるものを意味します.ディレクトリエントリ
  164: は@dfn{ファイル名(file name)}とも呼ばれます.ファイル名は,ファイルに前
  165: 置されるパス内のディレクトリを,いくつか含む,すべて含む,または全く含
  166: まないかもしれません.このマニュアルで``ファイル名''と呼ばれるもののす
  167: べての例は以下のものです.
  168: 
  169: @example
  170: parser.c
  171: README
  172: ./budget/may-94.sc
  173: fred/.cshrc
  174: /usr/local/include/termcap.h
  175: @end example
  176: 
  177: @c A @dfn{directory tree} is a directory and the files it contains, all of
  178: @c its subdirectories and the files they contain, etc.  It can also be a
  179: @c single non-directory file.
  180: @c 
  181: @dfn{ディレクトリツリー(file name)}はディレクトリとそれが含むファイル,
  182: そのすべてのサブディレクトリとそれが含むファイル等です.それは,単一の
  183: ディレクトリではないファイルにすることも可能です.
  184: 
  185: @c These programs enable you to find the files in one or more directory
  186: @c trees that:
  187: @c 
  188: これらのプログラムは,一つまたはそれ以上のディレクトリツリー内部の,以
  189: 下のようなファイルを見つけることを可能にします.
  190: 
  191: @itemize @bullet
  192: @item
  193: @c have names that contain certain text or match a certain pattern;
  194: @c 
  195: 特定のテキストや特定のパターンにマッチする名前を持つもの.
  196: @item
  197: @c are links to certain files;
  198: @c 
  199: 特定のファイルにリンクしているもの.
  200: @item
  201: @c were last used during a certain period of time;
  202: @c 
  203: 最近の特定の期間に使用されたもの.
  204: @item
  205: @c are within a certain size range;
  206: @c 
  207: 特定の大きさの範囲にあるもの.
  208: @item
  209: @c are of a certain type (regular file, directory, symbolic link, etc.);
  210: @c 
  211: 特定の形式(通常のファイル,ディレクトリ,シンボリックリンク等)のもの.
  212: @item
  213: @c are owned by a certain user or group;
  214: @c 
  215: 特定のユーザやグループに所有されているもの.
  216: @item
  217: @c have certain access permissions;
  218: @c 
  219: 特定のアクセス権限を持つもの.
  220: @item
  221: @c contain text that matches a certain pattern;
  222: @c 
  223: 特定のパターンにマッチするテキストを含むもの.
  224: @item
  225: @c are within a certain depth in the directory tree;
  226: @c 
  227: ディレクトリツリーの特定の深さにあるもの.
  228: @item
  229: @c or some combination of the above.
  230: @c 
  231: 上記の組み合わせ.
  232: @end itemize
  233: 
  234: @c Once you have found the files you're looking for (or files that are
  235: @c potentially the ones you're looking for), you can do more to them than
  236: @c simply list their names.  You can get any combination of the files'
  237: @c attributes, or process the files in many ways, either individually or in
  238: @c groups of various sizes.  Actions that you might want to perform on the
  239: @c files you have found include, but are not limited to:
  240: @c 
  241: 一旦,探しているファイル(または,探している可能性があるファイル)を見つ
  242: けると,単純なそれらの名前のリスト以上のものにすることが可能です.ファ
  243: イルを個別に,または様々な大きさのまとまりとして,属性のあらゆる組み合
  244: わせを取得したり,多くの方法で処理したりすることが可能です.見つけたファ
  245: イル上で実行したい動作は,以下のことだけに制限されません.
  246: 
  247: @itemize @bullet
  248: @item
  249: @c view or edit
  250: @c 
  251: 閲覧または編集.
  252: @item
  253: @c store in an archive
  254: @c 
  255: アーカイブへ保存.
  256: @item
  257: @c remove or rename
  258: @c 
  259: 削除や名前の変更.
  260: @item
  261: @c change access permissions
  262: @c 
  263: アクセス権限の変更.
  264: @item
  265: @c classify into groups
  266: @c 
  267: グループ分け.
  268: @end itemize
  269: 
  270: @c This manual describes how to perform each of those tasks, and more.
  271: 
  272: このマニュアルでは,これらのそれぞれの作業を実行する方法と,それ以上の
  273: ものを記述しています.
  274: 
  275: @node Overview
  276: @c @section Overview
  277: @section 概要
  278: 
  279: @c The principal programs used for making lists of files that match given
  280: @c criteria and running commands on them are @code{find}, @code{locate},
  281: @c and @code{xargs}.  An additional command, @code{updatedb}, is used by
  282: @c system administrators to create databases for @code{locate} to use.
  283: @c 
  284: 与えられた基準にマッチするファイルのリストを作成し,その上でコマンドを
  285: 実行するために使用される主なプログラムは,@code{find},@code{locate},
  286: そして@code{xargs}です.追加のコマンドは@code{updatedb}で,それは
  287: @code{locate} が使用するデータベースを作成するために,システム管理者が
  288: 使用します.
  289: 
  290: @c @code{find} searches for files in a directory hierarchy and prints
  291: @c information about the files it found.  It is run like this:
  292: @c 
  293: @code{find}はディレクトリ階層内でファイルを検索し,見つかったファイルの
  294: 情報を出力します.以下のように実行します.
  295: 
  296: @example
  297: find @r{[}@var{file}@dots{}@r{]} @r{[}@var{expression}@r{]}
  298: @end example
  299: 
  300: @noindent
  301: @c Here is a typical use of @code{find}.  This example prints the names of
  302: @c all files in the directory tree rooted in @file{/usr/src} whose name
  303: @c ends with @samp{.c} and that are larger than 100 Kilobytes.
  304: @c 
  305: ここに典型的な@code{find}の使用方法があります.この例では,
  306: @file{/usr/src} をルートとしたディレクトリツリー内で,名前が@samp{.c}で
  307: 終り,100Kバイト以上の大きさを持つ,すべてのファイルの名前を出力します.
  308: @example
  309: find /usr/src -name '*.c' -size +100k -print
  310: @end example
  311: 
  312: @c Notice that the wildcard must be enclosed in quotes in order to
  313: @c protect it from expansion by the shell.
  314: @c 
  315: ワイルドカードは,シェルでの展開から守るため,確実に引用符で囲む必要が
  316: あることに注意してください.
  317: 
  318: @c @code{locate} searches special file name databases for file names that
  319: @c match patterns.  The system administrator runs the @code{updatedb}
  320: @c program to create the databases.  @code{locate} is run like this:
  321: @c 
  322: @code{locate}は,特別なファイル名のデータベースで,パターンにマッチする
  323: ファイル名を探します.システム管理者は,データベースを作成するために
  324: @code{updatedb}を実行します.@code{locate}は以下のように実行します.
  325: 
  326: @example
  327: locate @r{[}@var{option}@dots{}@r{]} @var{pattern}@dots{}
  328: @end example
  329: 
  330: @noindent
  331: @c This example prints the names of all files in the default file name
  332: @c database whose name ends with @samp{Makefile} or @samp{makefile}.  Which
  333: @c file names are stored in the database depends on how the system
  334: @c administrator ran @code{updatedb}.
  335: @c 
  336: この例は,デフォルトファイル名のデータベースで,名前が@samp{Makefile}ま
  337: たは@samp{makefile}で終わる,すべてのファイルの名前を出力します.データ
  338: ベースに保存されるファイル名は,システム管理者が@code{updatedb}を実行し
  339: た方法に依存します.
  340: @example
  341: locate '*[Mm]akefile'
  342: @end example
  343: 
  344: @c The name @code{xargs}, pronounced EX-args, means ``combine arguments.''
  345: @c @code{xargs} builds and executes command lines by gathering together
  346: @c arguments it reads on the standard input.  Most often, these arguments
  347: @c are lists of file names generated by @code{find}.  @code{xargs} is run
  348: @c like this:
  349: @c 
  350: 名前@code{xargs}は,EX-argsと発音され,それは``引数を統合する''という意
  351: 味があります.@code{xargs}は,標準入力から読み込む引数をかき集めてコマ
  352: ンド行を構築し実行します.これらの引数は,@code{find}で生成されるファイ
  353: ル名のリストとなることが最も多くなっています.@code{xargs}は,以下のよ
  354: うに実行します.
  355: 
  356: @example
  357: xargs @r{[}@var{option}@dots{}@r{]} @r{[}@var{command} @r{[}@var{initial-arguments}@r{]}@r{]}
  358: @end example
  359: 
  360: @noindent
  361: @c The following command searches the files listed in the file
  362: @c @file{file-list} and prints all of the lines in them that contain the
  363: @c word @samp{typedef}.
  364: @c 
  365: 以下のコマンドは,ファイル@file{file-list}内にリストアップされているファ
  366: イルを検索し,単語@samp{typedef}を含むもののすべての行を出力します.
  367: @example
  368: xargs grep typedef < file-list
  369: @end example
  370: 
  371: @node find Expressions
  372: @c @section @code{find} Expressions
  373: @section @code{find}の式
  374: 
  375: @c The expression that @code{find} uses to select files consists of one or
  376: @c more @dfn{primaries}, each of which is a separate command line argument
  377: @c to @code{find}.  @code{find} evaluates the expression each time it
  378: @c processes a file.  An expression can contain any of the following types
  379: @c of primaries:
  380: @c 
  381: ファイルを選択するために@code{find}が使用する式は,一つまたはそれ以上の
  382: @dfn{プライマリ(primaries)}から成り立ち,それらはそれぞれ分離した
  383: @code{find}へのコマンドライン引数です.@code{find}はそのたびに式を評価
  384: し,ファイルを処理します.式は以下のプライマリの形式のいずれかを含むこ
  385: とが可能です.
  386: 
  387: @table @dfn
  388: @c @item options
  389: @c affect overall operation rather than the processing of a specific file;
  390: @c @item tests
  391: @c return a true or false value, depending on the file's attributes;
  392: @c @item actions
  393: @c have side effects and return a true or false value; and
  394: @c @item operators
  395: @c connect the other arguments and affect when and whether they are
  396: @c evaluated.
  397: @c 
  398: @item オプション(options)
  399: 特定のファイルの処理ではなく全体的な処理に影響を与えます.
  400: @item テスト(tests)
  401: ファイルの属性に依存し,真または偽の値を返します.
  402: @item アクション(actions)
  403: それらを評価するとき他の引数と連結し影響を与えます.
  404: @end table
  405: 
  406: @c You can omit the operator between two primaries; it defaults to
  407: @c @samp{-and}.  @xref{Combining Primaries With Operators}, for ways to
  408: @c connect primaries into more complex expressions.  If the expression
  409: @c contains no actions other than @samp{-prune}, @samp{-print} is performed
  410: @c on all files for which the entire expression is true (@pxref{Print File
  411: @c Name}).
  412: @c 
  413: 二つのプライマリの間のオペレータは省略可能です.そのデフォルトは
  414: @samp{-and}です.プライマリをより複雑な式に連結する方法は,
  415: @xref{Combining Primaries With Operators}.  式が@samp{-prune}以外のアク
  416: ションを含まない場合,全部の式が真になるすべてのファイルで,
  417: @samp{-print}が動作します(@pxref{Print File Name}).
  418: 
  419: @c Options take effect immediately, rather than being evaluated for each
  420: @c file when their place in the expression is reached.  Therefore, for
  421: @c clarity, it is best to place them at the beginning of the expression.
  422: @c 
  423: 式の中にオプションがあるとき,それぞれのファイルに対し評価されるのでは
  424: なく,すぐに影響を与えます.そのため,明確にするため,式の最初にそれら
  425: を配置するのが最善です.
  426: 
  427: @c Many of the primaries take arguments, which immediately follow them in
  428: @c the next command line argument to @code{find}.  Some arguments are file
  429: @c names, patterns, or other strings; others are numbers.  Numeric
  430: @c arguments can be specified as
  431: @c 
  432: プライマリの多くは引数をとり,それらは@code{find}への次のコマンドライン
  433: 引数の直後に続きます.引数は,ファイル名,パターン,またはその他の文字
  434: 列になるものもあります.それ以外は数字です.数字の引数は以下のように指
  435: 定することが可能です.
  436: 
  437: @table @code
  438: @item +@var{n}
  439: @c for greater than @var{n},
  440: @c 
  441: @var{n}より大きい.
  442: @item -@var{n}
  443: @c for less than @var{n},
  444: @c 
  445: @var{n}より小さい.
  446: @item @var{n}
  447: @c for exactly @var{n}.
  448: @c 
  449: @var{n}に等しい.
  450: @end table
  451: 
  452: @node Finding Files, Actions, Introduction, Top
  453: @c @chapter Finding Files
  454: @chapter ファイル検索
  455: 
  456: @c By default, @code{find} prints to the standard output the names of the
  457: @c files that match the given criteria.  @xref{Actions}, for how to get more
  458: @c information about the matching files.
  459: @c 
  460: デフォルトで,@code{find}は標準出力に,与えられた基準にマッチするファイ
  461: ルの名前を出力します.マッチしたファイルに関する詳細を取得する方法は,
  462: @xref{Actions}.
  463: 
  464: @menu
  465: * Name::
  466: * Links::
  467: * Time::
  468: * Size::
  469: * Type::
  470: * Owner::
  471: * Permissions::
  472: * Contents::
  473: * Directories::
  474: * Filesystems::
  475: * Combining Primaries With Operators::
  476: @end menu
  477: 
  478: @node Name
  479: @c @section Name
  480: @section 名前
  481: 
  482: @c Here are ways to search for files whose name matches a certain pattern.
  483: @c @xref{Shell Pattern Matching}, for a description of the @var{pattern}
  484: @c arguments to these tests.
  485: @c 
  486: 基準パターンにマッチする名前を持つファイルを検索する方法は,以下のよう
  487: になります.これらのテストでの@var{pattern}引数の記述については,
  488: @xref{Shell Pattern Matching}.
  489: 
  490: @c Each of these tests has a case-sensitive version and a case-insensitive
  491: @c version, whose name begins with @samp{i}.  In a case-insensitive
  492: @c comparison, the patterns @samp{fo*} and @samp{F??} match the file names
  493: @c @file{Foo}, @samp{FOO}, @samp{foo}, @samp{fOo}, etc.
  494: @c 
  495: これらのテストには,@samp{i}で始まる名前を持つ,大文字小文字を区別バー
  496: ジョンと区別しないバージョンがあります.大文字小文字を区別しない比較で
  497: は,パターン@samp{fo*}と@samp{F??}は,ファイル名@file{Foo},@samp{FOO},
  498: @samp{foo},@samp{fOo}等にマッチします.
  499: 
  500: @menu
  501: * Base Name Patterns::
  502: * Full Name Patterns::
  503: * Fast Full Name Search::
  504: * Shell Pattern Matching::      Wildcards used by these programs.
  505: @end menu
  506: 
  507: @node Base Name Patterns
  508: @c @subsection Base Name Patterns
  509: @subsection ベース名のパターン
  510: 
  511: @deffn Test -name pattern
  512: @deffnx Test -iname pattern
  513: @c True if the base of the file name (the path with the leading directories
  514: @c removed) matches shell pattern @var{pattern}.  For @samp{-iname}, the
  515: @c match is case-insensitive.  To ignore a whole directory tree, use
  516: @c @samp{-prune} (@pxref{Directories}).  As an example, to find Texinfo
  517: @c source files in @file{/usr/local/doc}:
  518: @c 
  519: ファイル名のベース(前置されるディレクトリが削除されたパス)がシェルパター
  520: ン@var{pattern}にマッチする場合は真です.@samp{-iname}の場合は,大文字
  521: 小文字の区別をしないマッチです.ディレクトリツリー全体を無視するために,
  522: @samp{-prune}を使用して下さい(@pxref{Directories}).例として,
  523: @file{/usr/local/doc}のTexinfoソースファイルを見つけるため以下のように
  524: します.
  525: 
  526: @example
  527: find /usr/local/doc -name '*.texi'
  528: @end example
  529: @end deffn
  530: 
  531: @c Notice that the wildcard must be enclosed in quotes in order to
  532: @c protect it from expansion by the shell.
  533: @c 
  534: ワイルドカードは,シェルでの展開から守るため,確実に引用符で囲む必要が
  535: あることに注意してください.
  536: 
  537: @c Patterns for @samp{-name} and @samp{-iname} will match a filename with
  538: @c a leading @samp{.}.  For example the command @samp{find /tmp -name
  539: @c \*bar} will match the file @file{/tmp/.foobar}.
  540: @c 
  541: @samp{-name}と@samp{-iname}に対するパターンは,前に@samp{.}が付いている
  542: ファイル名にもマッチします.例えば,コマンド@samp{find /tmp -name
  543: \*bar} はファイル@file{/tmp/.foobar}にマッチします.
  544: 
  545: @node Full Name Patterns
  546: @c @subsection Full Name Patterns
  547: @subsection 完全なファイル名のパターン
  548: 
  549: @deffn Test -wholename pattern
  550: @deffnx Test -iwholename pattern
  551: @c True if the entire file name, starting with the command line argument
  552: @c under which the file was found, matches shell pattern @var{pattern}.
  553: @c For @samp{-iwholename}, the match is case-insensitive.  To ignore a
  554: @c whole directory tree, use @samp{-prune} rather than checking every
  555: @c file in the tree (@pxref{Directories}).  The ``entire file name'' as
  556: @c used by find starts with the starting-point specified on the command
  557: @c line, and is not converted to an absolute pathname, so for example
  558: @c @code{cd /; find tmp -wholename /tmp} will never match anything.
  559: @c 
  560: コマンドライン引数で始まる見つかったファイルのファイル名全体が,シェル
  561: パターン@var{pattern}にマッチする場合は真になります.
  562: @samp{-iwholename}では,マッチ時に大文字小文字を区別します.ディレクト
  563: リツリーのすべてのファイルを調査するのではなく,ディレクトリツリー全体
  564: を無視するために,@samp{-prune}を使用してください(@pxref{Directories}).
  565: @command{find}が使用する``entire file name''は,コマンドラインで指定す
  566: る起点で,絶対パスに変換されないので,例えば,@code{cd /; find tmp
  567: -wholename /tmp}では何にもマッチしません.
  568: @end deffn
  569: 
  570: @deffn Test -path pattern
  571: @deffnx Test -ipath pattern
  572: @c These tests are deprecated, but work as for @samp{-wholename} and
  573: @c @samp{-iwholename}, respectively.  The @samp{-ipath} test is a GNU
  574: @c extension, but @samp{-path} is also provided by HP-UX @code{find}.
  575: @c 
  576: これらのテストは推奨されませんが,@samp{-wholename}と
  577: @samp{-iwholename}は,それぞれ動作します.@samp{-ipath}のテストはGNUの
  578: 拡張ですが,@samp{-path}はHP-UX @code{find}でも提供されています.
  579: @end deffn
  580: 
  581: @deffn Test -regex expr
  582: @deffnx Test -iregex expr
  583: @c True if the entire file name matches regular expression @var{expr}.
  584: @c This is a match on the whole path, not a search.  For example, to match
  585: @c a file named @file{./fubar3}, you can use the regular expression
  586: @c @samp{.*bar.} or @samp{.*b.*3}, but not @samp{f.*r3}.  @xref{Regexps, ,
  587: @c Syntax of Regular Expressions, emacs, The GNU Emacs Manual}, for a
  588: @c description of the syntax of regular expressions.  For @samp{-iregex},
  589: @c the match is case-insensitive.
  590: @c 
  591: ファイル名全体が正規表現@var{expr}にマッチする場合は真です.これはパス
  592: 全体へのマッチで,サーチではありません.例えば,@file{./fubar3}というファ
  593: イル名にマッチさせるため,正規表現@samp{.*bar.}や@samp{.*b.*3}は使用可
  594: 能ですが,@samp{f.*r3}は不可能です.正規表現の構文の記述は,
  595: @xref{Regexps, , Syntax of Regular Expressions, emacs, The GNU Emacs
  596: Manual}.  @samp{-iregex}の場合は,大文字小文字を区別しません.
  597: @end deffn
  598: 
  599: @node Fast Full Name Search
  600: @c @subsection Fast Full Name Search
  601: @subsection すばやい完全な名前の検索
  602: 
  603: @c To search for files by name without having to actually scan the
  604: @c directories on the disk (which can be slow), you can use the
  605: @c @code{locate} program.  For each shell pattern you give it,
  606: @c @code{locate} searches one or more databases of file names and displays
  607: @c the file names that contain the pattern.  @xref{Shell Pattern Matching},
  608: @c for details about shell patterns.
  609: @c 
  610: 実際にディスク上のディレクトリをスキャンすることなく(きっと遅いでしょ
  611: う),ファイルを名前で検索するために,@code{locate}プログラムを使用する
  612: ことが可能です.与えたそれぞれのシェルパターンに対し,@code{locate}は,
  613: 一つ,またはそれ以上のファイル名のデータベースを検索し,パターンを含む
  614: ファイル名を表示します.シェルパターンの詳細は,@xref{Shell Pattern
  615: Matching}.
  616: 
  617: @c If a pattern is a plain string---it contains no
  618: @c metacharacters---@code{locate} displays all file names in the database
  619: @c that contain that string.  If a pattern contains
  620: @c metacharacters, @code{locate} only displays file names that match the
  621: @c pattern exactly.  As a result, patterns that contain metacharacters
  622: @c should usually begin with a @samp{*}, and will most often end with one
  623: @c as well.  The exceptions are patterns that are intended to explicitly
  624: @c match the beginning or end of a file name.   
  625: @c 
  626: パターンが---メタ文字を含まない---通常の文字列の場合,@code{locate}は,
  627: 文字列を含むすべてのファイル名を表示します.パターンがメタ文字を含む場
  628: 合,@code{locate}はパターンに正確にマッチしているファイル名のみ表示しま
  629: す.結果として,メタ文字を含むパターンは,通常@samp{*}で開始すべきで,
  630: 同じもので終わることが最も多くなっています.例外は,ファイル名の最初ま
  631: たは最後への,明示的なマッチを試みるパターンです.
  632: 
  633: @c If you only want @code{locate} to match against the last component of
  634: @c the filenames (the ``base name'' of the files) you can use the
  635: @c @samp{--basename} option.  The opposite behaviour is the default, but
  636: @c can be selected explicitly by using the option @samp{--wholename}.
  637: @c 
  638: @code{locate}をファイル名の最後の部分(ファイルの``ベース名'')に対しての
  639: みマッチさせたい場合,@samp{--basename}を使用することが可能です.反対の
  640: 動作がデフォルトですが,@samp{--wholename}オプションを使用して,明示的
  641: に選択することが可能です.
  642: 
  643: @c The command
  644: @c 
  645: 以下のコマンドを考えます.
  646: @example
  647: locate @var{pattern}
  648: @end example
  649: 
  650: @c is almost equivalent to
  651: @c 
  652: 以下とほとんど等価です.
  653: @example
  654: find @var{directories} -name @var{pattern}
  655: @end example
  656: 
  657: @c where @var{directories} are the directories for which the file name
  658: @c databases contain information.  The differences are that the
  659: @c @code{locate} information might be out of date, and that @code{locate}
  660: @c handles wildcards in the pattern slightly differently than @code{find}
  661: @c (@pxref{Shell Pattern Matching}).
  662: @c 
  663: ここでの@var{directories}は,情報を含んでいるファイル名データベースのディ
  664: レクトリです.違いは@code{locate}情報が古い可能性があり,そして,
  665: @code{locate}は@code{find}とわずかに異なるパターンでワイルドカードを扱
  666: うことです(@pxref{Shell Pattern Matching}) .
  667: 
  668: @c The file name databases contain lists of files that were on the system
  669: @c when the databases were last updated.  The system administrator can
  670: @c choose the file name of the default database, the frequency with which
  671: @c the databases are updated, and the directories for which they contain
  672: @c entries.
  673: @c 
  674: ファイル名データベースには,データベースが最後に更新されたときにシステ
  675: ムに存在したファイルのリストが含まれています.システム管理者はデフォル
  676: トのデータベースのファイル名,データベースを更新する頻度,そして,エン
  677: トリーを含むディレクトリを選択することが可能です.
  678: 
  679: @c Here is how to select which file name databases @code{locate} searches.
  680: @c The default is system-dependent.
  681: @c 
  682: @code{locate}が検索するファイル名データベースを選択する方法は以下のよう
  683: になります.デフォルトはシステムに依存します.
  684: 
  685: @table @code
  686: @item --database=@var{path}
  687: @itemx -d @var{path}
  688: @c Instead of searching the default file name database, search the file
  689: @c name databases in @var{path}, which is a colon-separated list of
  690: @c database file names.  You can also use the environment variable
  691: @c @code{LOCATE_PATH} to set the list of database files to search.  The
  692: @c option overrides the environment variable if both are used.
  693: @c 
  694: デフォルトのファイル名データベースを検索する代わりに,@var{path}内のファ
  695: イル名データベースを検索し,それはコロンで分けられたデータベースのファ
  696: イル名リストとなります.検索するデータベースファイルのリストを設定する
  697: ために,環境変数@code{LOCATE_PATH}を使用することも可能です.両方使用さ
  698: れている場合,オプションは環境変数に優先します.
  699: @end table
  700: 
  701: @node Shell Pattern Matching
  702: @c @subsection Shell Pattern Matching
  703: @subsection シェルパターンマッチング
  704: 
  705: @c @code{find} and @code{locate} can compare file names, or parts of file
  706: @c names, to shell patterns.  A @dfn{shell pattern} is a string that may
  707: @c contain the following special characters, which are known as
  708: @c @dfn{wildcards} or @dfn{metacharacters}.
  709: @c 
  710: @code{find}と@code{locate}は,ファイル名やファイル名の一部を,シェルパ
  711: ターンと比較することが可能です.@dfn{シェルパターン(hell pattern)}は,
  712: 以下の特殊文字を含む文字列で,それは@dfn{ワイルドカード(wildcards)}や
  713: @dfn{メタ文字(metacharacters)}として知られています.
  714: 
  715: @c You must quote patterns that contain metacharacters to prevent the shell
  716: @c from expanding them itself.  Double and single quotes both work; so does
  717: @c escaping with a backslash.
  718: @c 
  719: メタ文字を含むパターンを,シェルがそれ自身を展開することから避けるため
  720: 引用符で囲む必要があります.二重引用符とシングル引用符の両方が動作しま
  721: す.そのため,(それ自身は)バックスラッシュでエスケープします.
  722: 
  723: @table @code
  724: @item *
  725: @c Matches any zero or more characters.
  726: @c 
  727: ゼロ以上の文字にマッチします.
  728: @item ?
  729: @c Matches any one character.
  730: @c 
  731: あらゆる一文字にマッチします.
  732: @item [@var{string}]
  733: @c Matches exactly one character that is a member of the string
  734: @c @var{string}.  This is called a @dfn{character class}.  As a shorthand,
  735: @c @var{string} may contain ranges, which consist of two characters with a
  736: @c dash between them.  For example, the class @samp{[a-z0-9_]} matches a
  737: @c lowercase letter, a number, or an underscore.  You can negate a class by
  738: @c placing a @samp{!} or @samp{^} immediately after the opening bracket.
  739: @c Thus, @samp{[^A-Z@@]} matches any character except an uppercase letter
  740: @c or an at sign.
  741: @c 
  742: 文字列@var{string}に存在する,正確に一文字にマッチします.これは@dfn{文
  743: 字集合(character class)}と呼ばれます.短いものとして,@var{string}には
  744: 範囲を含めることが可能で,それは間にダッシュがある二つの文字です.例え
  745: ば,集合@samp{[a-z0-9_]}は小文字,数字,またはアンダースコアです.
  746: @samp{!}  や@samp{^}を開括弧の前に配置することで,否定集合も可能です.
  747: このため,@samp{[^A-Z@@]}は大文字とアットマーク以外にマッチします.
  748: 
  749: @item \
  750: @c Removes the special meaning of the character that follows it.  This
  751: @c works even in character classes.
  752: @c 
  753: それ以降の特殊文字の意味をなくします.これは文字集合でも動作します.
  754: @end table
  755: 
  756: @c In the @code{find} tests that do shell pattern matching (@samp{-name},
  757: @c @samp{-wholename}, etc.), wildcards in the pattern will match a @samp{.}
  758: @c at the beginning of a file name.  This is also the case for
  759: @c @code{locate}.  Thus, @samp{find -name '*macs'} will match a file
  760: @c named @file{.emacs}, as will @samp{locate '*macs'}.
  761: @c 
  762: @code{find}がシェルのパターンマッチ(@samp{-name},@samp{-wholename}等)
  763: で行なうテストでは,パターンの中のワイルドカードはファイル名の最初の
  764: @samp{.}にマッチしません.これは@code{locate}ではそうなりません.このた
  765: め,@samp{find -name '*macs'}は@samp{locate '*macs'}だけでなく
  766: @file{.emacs}にもマッチします.
  767: 
  768: @c Slash characters have no special significance in the shell pattern
  769: @c matching that @code{find} and @code{locate} do, unlike in the shell, in
  770: @c which wildcards do not match them.  Therefore, a pattern @samp{foo*bar}
  771: @c can match a file name @samp{foo3/bar}, and a pattern @samp{./sr*sc} can
  772: @c match a file name @samp{./src/misc}.
  773: @c 
  774: スラッシュ文字は,@code{find}と@code{locate}が行なうシェルのパターンマッ
  775: チでは特殊な意味が無いので,ワイルドカードがそれにマッチしないシェルと
  776: は異なります.そのため,パターン@samp{foo*bar}はファイル名
  777: @samp{foo3/bar}にマッチし,パターン@samp{./sr*sc}はファイル名
  778: @samp{./src/misc}にマッチするはずです.
  779: 
  780: @c If you want to locate some files with the @samp{locate} command but
  781: @c don't need to see the full list you can use the @samp{--limit} option
  782: @c to see just a small number of results, or the @samp{--count} option to
  783: @c display only the total number of matches.
  784: @c 
  785: @samp{locate}コマンドでファイルの場所を知りたいが,完全なリストを見る必
  786: 要は無い場合,ちょっとした数の結果を見る@samp{--limit}オプションや,マッ
  787: チの総数だけを表示する@samp{--count}オプションを使用することが可能です.
  788: 
  789: 
  790: @node Links
  791: @c @section Links
  792: @section リンク
  793: 
  794: @c There are two ways that files can be linked together.  @dfn{Symbolic
  795: @c links} are a special type of file whose contents are a portion of the
  796: @c name of another file.  @dfn{Hard links} are multiple directory entries
  797: @c for one file; the file names all have the same index node (@dfn{inode})
  798: @c number on the disk.
  799: @c 
  800: ファイルをお互いにリンクすること可能にする方法は二つあります.@dfn{シン
  801: ボリックリンク(symbolic link)}は,他のファイルの名前の部分が内容になる,
  802: ファイルの特殊な形式です.@dfn{ハードリンク(hard link)}は,一つのファイ
  803: ルに対する,複数のディレクトリエントリです.ファイル名はすべて,同じイ
  804: ンデックスノード(@dfn{inode})番号をディスク上に持ちます.
  805: 
  806: @menu
  807: * Symbolic Links::
  808: * Hard Links::
  809: @end menu
  810: 
  811: @node Symbolic Links
  812: @c @subsection Symbolic Links
  813: @subsection シンボリックリンク
  814: 
  815: @c Symbolic links are names that reference other files.  GNU @code{find}
  816: @c will handle symbolic links in one of two ways; firstly, it can
  817: @c dereference the links for you - this means that if it comes across a
  818: @c symbolic link, it examines the file that the link points to, in order
  819: @c to see if it matches the criteria you have specified.  Secondly, it
  820: @c can check the link itself in case you might be looking for the actual
  821: @c link.  If the file that the symbolic link points to is also within the
  822: @c directory hierarchy you are searching with the @code{find} command,
  823: @c you may not see a great deal of difference between these two
  824: @c alternatives.
  825: @c 
  826: シンボリックリンクとは,他のファイルを参照する名前です.GNU
  827: @code{find}は,シンボリックリンクを二つの方法のいずれかで処理します.最
  828: 初のものは,リンク先を参照する方法で,これはシンボリックリンクの場合は,
  829: 指定した特徴にマッチするかどうかを確認するため,リンク先のファイルを調
  830: 査することを意味します.二番目の方法は,実際のリンクを探している状況で,
  831: リンク自身を調査することが可能です.シンボリックリンクのリンク先のファ
  832: イルも,@code{find}コマンドで検索しているディレクトリ階層にある場合,こ
  833: れら二つの選択肢の違いを詳しく理解しておく必要はありません.
  834: 
  835: @c By default, @code{find} examines symbolic links themselves when it
  836: @c finds them (and, if it later comes across the linked-to file, it will
  837: @c examine that, too).  If you would prefer @code{find} to dereference
  838: @c the links and examine the file that each link points to, specify the
  839: @c @samp{-L} option to @code{find}.  You can explicitly specify the
  840: @c default behaviour by using the @samp{-P} option.    The @samp{-H}
  841: @c option is a half-way-between option which ensures that any symbolic
  842: @c links listed on the command line are dereferenced, but other symbolic
  843: @c links are not.
  844: @c 
  845: デフォルトで,@code{find}はシンボリックリンクが見つかると,それ自身を調
  846: 査します(そして,その後でリンク先のファイルをたどり,それも調査します).
  847: @code{find}にリンク先を参照するようにし,リンクが示すファイルを調査させ
  848: るため,@code{find}で@samp{-L}オプションを指定してください.デフォルト
  849: の動作を明示的に指定するため,@samp{-P}オプションを使用することが可能で
  850: す.@samp{-H}オプションは中間的なオプションで,コマンドラインでリストアッ
  851: プされているシンボリックリンクはリンク先を参照しますが,それ以外のシン
  852: ボリックリンクはリンク先を参照しません.
  853: 
  854: @c Symbolic links are different to ``hard links'' in the sense that you
  855: @c need permissions upon the linked-to file in order to be able to
  856: @c dereference the link.  This can mean that even if you specify the
  857: @c @samp{-L} option, find may not be able to determine the properties of
  858: @c the file that the link points to (because you don't have sufficient
  859: @c permissions).  In this situation, @samp{find} uses the properties of
  860: @c the link itself.  This also occurs if a symbolic link exists but
  861: @c points to a file that is missing.
  862: @c 
  863: シンボリックリンクは``ハードリンク''とは異なり,リンク先を参照可能にす
  864: るために,リンク先のファイルへの権限が必要になることを意味します.つま
  865: り,@samp{-L}オプションを指定している場合でも,@code{find}はリンクが示
  866: すファイルの属性を(十分な権限が無いという理由で)調査することができない
  867: 可能性があります.この状況では,@samp{find}はリンク自身の属性を使用しま
  868: す.シンボリックリンクは存在するが,それが指し示すファイルが無い場合も,
  869: 同じようなことになります.
  870: 
  871: @c The options controlling the behaviour of @code{find} with respect to
  872: @c links are as follows :-
  873: @c 
  874: リンクに関連した@code{find}の動作を制禦するオプションには,以下のものが
  875: あります.
  876: 
  877: @table @samp
  878: @item -P
  879: @c @code{find} does not dereference symbolic links at all.  This is the
  880: @c default behaviour.  This option must be specified before any of the
  881: @c path names on the command line.
  882: @c 
  883: @code{find}はシンボリックリンク先を参照しません.これはデフォルトの動作
  884: です.このオプションは,コマンドラインのパス名の前に指定する必要があり
  885: ます.
  886: 
  887: @item -H
  888: @c @code{find} does not dereference symbolic links (except in the case of
  889: @c file names on the command line, which are dereferenced).  If a
  890: @c symbolic link cannot be dereferenced, the information for the symbolic
  891: @c link itself is used.  This option must be specified before any of the
  892: @c path names on the command line.
  893: @c 
  894: @code{find}はシンボリックリンク先を参照しません(しかし,コマンドライン
  895: 上ののファイル名はリンク先を参照します).シンボリックリンク先を参照でき
  896: ない場合,シンボリックリンク自身の情報が使用されます.このオプションは,
  897: コマンドラインのパス名の前に指定する必要があります.
  898: 
  899: @item -L
  900: @c @code{find} dereferences symbolic links where possible, and where this
  901: @c is not possible it uses the properties of the symbolic link itself.
  902: @c This option must be specified before any of the path names on the
  903: @c command line.  Use of this option also implies the same behaviour as
  904: @c the @samp{-noleaf} option.   If you later use the @samp{-H} or
  905: @c @samp{-P} options, this does not turn off @samp{-noleaf}.
  906: @c 
  907: @code{find}は,可能であればシンボリックリンク先を参照し,不可能なところ
  908: では,シンボリックリンク自身の属性を使用します.このオプションはコマン
  909: ドラインのパス名の前に指定する必要があります.このオプションを使用する
  910: と,@samp{-noleaf}オプションと同じ動作も暗黙に指定されます.後で
  911: @samp{-H}や@samp{-P}オプションを使用する場合でも,@samp{-noleaf}はオフ
  912: になりません.
  913: 
  914: @item -follow
  915: @c This option forms part of the ``expression'' and must be specified
  916: @c after the path names, but it is otherwise equivalent to @samp{-L}.
  917: @c 
  918: このオプションは,``expression''の部分の形式で,パス名の後に指定する必
  919: 要がありますが,それ以外は@samp{-L}と同じです.
  920: @end table
  921: 
  922: @c The following differences in behavior occur when the @samp{-L} option
  923: @c is used:
  924: @c 
  925: @samp{-L}オプションを与えた時の動作には,以下の違いがあります.
  926: 
  927: @itemize @bullet
  928: @item
  929: @c @code{find} follows symbolic links to directories when searching
  930: @c directory trees.
  931: @c 
  932: @code{find}は,ディレクトリツリーを検索するとき,ディレクトリへのシンボ
  933: リックリンクをたどります.
  934: 
  935: @item
  936: @c @samp{-lname} and @samp{-ilname} always return false (unless they
  937: @c happen to match broken symbolic links).
  938: @c 
  939: @samp{-lname}と@samp{-ilname}は常に偽を返します(ただし,壊れたシンボリッ
  940: クリンクにマッチしない限り).
  941: 
  942: @item
  943: @c @samp{-type} reports the types of the files that symbolic links point
  944: @c to.
  945: @c 
  946: @samp{-type}はシンボリックリンクが示すファイルの形式を報告します.
  947: 
  948: @item
  949: @c Implies @samp{-noleaf} (@pxref{Directories}).
  950: @c 
  951: 暗黙に@samp{-noleaf}を指定します(@pxref{Directories}).
  952: @end itemize
  953: 
  954: @c If the @samp{-L} option or the @samp{-H} option is used, 
  955: @c the filenames used as arguments to @samp{-newer}, @samp{-anewer}, and
  956: @c @samp{-cnewer} are dereferenced and the timestamp from the pointed-to
  957: @c file is used instead (if possible -- otherwise the timestamp from the
  958: @c symbolic link is used).
  959: @c 
  960: @samp{-L}オプションまたは@samp{-H}オプションが使用されている場合,
  961: @samp{-newer},@samp{-anewer},そして@samp{-cnewer}の引数として使用され
  962: ているファイル名は,リンク先を参照され,リンク先のタイムスタンプが代わ
  963: りに使用されます(可能であれば -- そうでなければ,シンボリックリンクのタ
  964: イムスタンプが使用されます).
  965: 
  966: @deffn Test -lname pattern
  967: @deffnx Test -ilname pattern
  968: @c True if the file is a symbolic link whose contents match shell pattern
  969: @c @var{pattern}.  For @samp{-ilname}, the match is case-insensitive.
  970: @c @xref{Shell Pattern Matching}, for details about the @var{pattern}
  971: @c argument.  If the @samp{-L} option is in effect, this test will always
  972: @c fail for symbolic links unless they are broken.  So, to list any
  973: @c symbolic links to @file{sysdep.c} in the current directory and its
  974: @c subdirectories, you can do:
  975: @c 
  976: ファイルがシェルパターン@var{pattern}にマッチする内容のシンボリックリン
  977: クの場合は真です.@samp{-ilname}は,大文字小文字を区別しないマッチです.
  978: @var{pattern}引数の詳細は,@xref{Shell Pattern Matching}.  @samp{-L}の
  979: 効果がある場合,このテストはシンボリックリンクが壊れていない限り,常に
  980: 失敗します.そして,現在のディレクトリとそのサブディレクトリ内の,
  981: @file{sysdep.c}へのシンボリックリンクをすべてリストアップするために,以
  982: 下のように実行します.
  983: 
  984: @example
  985: find . -lname '*sysdep.c'
  986: @end example
  987: @end deffn
  988: 
  989: @node Hard Links
  990: @c @subsection Hard Links
  991: @subsection ハードリンク
  992: 
  993: @c Hard links allow more than one name to refer to the same file.  To
  994: @c find all the names which refer to the same file as NAME, use
  995: @c @samp{-samefile NAME}.  If you are not using the @samp{-L} option, you
  996: @c can confine your search to one filesystem using the @samp{-xdev}
  997: @c option.  This is useful because hard links cannot point outside a
  998: @c single filesystem, so this can cut down on needless searching.
  999: @c 
 1000: ハードリンクは,同じファイルを参照する一つ以上の名前を提供します.同じ
 1001: ファイルを参照している全てのファイルを@var{NAME}で見つけるため,
 1002: @samp{-samefile NAME}を使用してください.@samp{-L}オプションを使用して
 1003: いない場合,@samp{-xdev}オプションを使用して,検索を一つのファイルシス
 1004: テムに制限することが可能です.ハードリンクは単一のファイルシステム以外
 1005: を指し示すことができないため,不必要な検索を停止することができるので,
 1006: これは役に立ちます.
 1007: 
 1008: @c If the @samp{-L} option is in effect, and NAME is in fact a symbolic
 1009: @c link, the symbolic link will be dereferenced.  Hence you are searching
 1010: @c for other links (hard or symbolic) to the file pointed to by NAME.  If
 1011: @c @samp{-L} is in effect but NAME is not itself a symbolic link, other
 1012: @c symbolic links to the file NAME will be matched.
 1013: @c 
 1014: @samp{-L}オプションの効果があり,@var{NAME}が実際にはシンボリックリンク
 1015: の場合,シンボリックリンクの参照先を参照します.このため,@var{NAME}が
 1016: 示すファイル以外のリンク(ハードリンクまたはシンボリックリンク)を検索し
 1017: ます.@samp{-L}の効果があり,@var{NAME}がシンボリックリンクではない場合,
 1018: ファイル@var{NAME}へのシンボリックリンクがマッチします.
 1019: 
 1020: @c You can also search for files by inode number.  This can occasionally
 1021: @c be useful in diagnosing problems with filesystems for example, because
 1022: @c @code{fsck} tends to print inode numbers.  Inode numbers also
 1023: @c occasionally turn up in log messages for some types of software, and
 1024: @c are used to support the @code{ftok()} library function.
 1025: @c 
 1026: inode番号でファイルを検索することも可能です.例えば,ファイルシステムの
 1027: 問題を診断するとき,@code{fsck}がinode番号を出力するので,これは役に立
 1028: ちます.inode番号は,ソフトウエアのログメッセージの形式で出力されること
 1029: もあり,@code{ftok()}ライブラリ関数のサポートで使用されています.
 1030: 
 1031: @c You can learn a file's inode number and the number of links to it by
 1032: @c running @samp{ls -li} or @samp{find -ls}.  
 1033: @c 
 1034: ファイルのinode番号とリンク数を@samp{ls -li}や@samp{find -ls}で知ること
 1035: が可能です.
 1036: 
 1037: @c You can search for hard links to inode number NUM by using @samp{-inum
 1038: @c NUM}. If there are any file system mount points below the directory
 1039: @c where you are starting the search, use the @samp{-xdev} option unless
 1040: @c you are also using the @samp{-L} option.  Using @samp{-xdev} this
 1041: @c saves needless searching, since hard links to a file must be on the
 1042: @c same filesystem.  @xref{Filesystems}.
 1043: @c 
 1044: inode番号@var{NUM}へのハードリンクを@samp{-inum NUM}で検索することが可
 1045: 能です.検索を開始したディレクトリ以下に,ファイルシステムのマウントポ
 1046: イントがある場合,@samp{-L}オプションを使用していない場合は
 1047: @samp{-xdev}オプションを使用してください.ハードリンク差機のファイルは
 1048: 同じファイルシステムであることが必要なので,@samp{-xdev}を使用すること
 1049: で不必要な検索といった無駄を省きます.
 1050: 
 1051: @deffn Test -samefile NAME
 1052: @c File is a hard link to the same inode as NAME.  If the @samp{-L}
 1053: @c option is in effect, symbolic links to the same file as NAME points to
 1054: @c are also matched.
 1055: @c 
 1056: @var{NAME}と同じinodeを持つファイルの調査です.@samp{-L}オプションに効
 1057: 果がある場合,同一ファイル@var{NAME}へのシンボリックリンクもマッチしま
 1058: す.
 1059: @end deffn
 1060: 
 1061: @deffn Test -inum n
 1062: @c File has inode number @var{n}.  The @samp{+} and @samp{-} qualifiers
 1063: @c also work, though these are rarely useful.
 1064: @c 
 1065: inode番号@var{n}を持つファイルの調査.@samp{+}と@samp{-}の修飾辞も動作
 1066: するのですが,滅多に役に立ちません.
 1067: @end deffn
 1068: 
 1069: @c You can also search for files that have a certain number of links, with
 1070: @c @samp{-links}.  Directories normally have at least two hard links; their
 1071: @c @file{.} entry is the second one.  If they have subdirectories, each of
 1072: @c those also has a hard link called @file{..} to its parent directory.
 1073: @c The @file{.} and @file{..} directory entries are not normally searched
 1074: @c unless they are mentioned on the @code{find} command line.
 1075: @c 
 1076: @samp{-links}を用いると,特定の数のリンクを持つファイルを検索することも
 1077: 可能です.ディレクトリは通常,少なくとも二つのハードリンクがあります.
 1078: それらの@file{.}エントリは二番目のものです.サブディレクトリがある場合,
 1079: それは個別に親ディレクトリを示す@file{..}と呼ばれるハードリンクもありま
 1080: す.通常,@file{.}と@file{..}のディレクトリエントリーは,@code{find}の
 1081: コマンドラインに書かれていない限り検索されません.
 1082: 
 1083: @deffn Test -links n
 1084: @c File has @var{n} hard links.
 1085: @c 
 1086: @var{n}個のハードリンクを持つファイルの調査.
 1087: @end deffn
 1088: 
 1089: @deffn Test -links +n
 1090: @c File has more than @var{n} hard links.
 1091: @c 
 1092: @var{n}個の以上のハードリンクを持つファイルの調査.
 1093: @end deffn
 1094: 
 1095: @deffn Test -links -n
 1096: @c File has fewer than @var{n} hard links.
 1097: @c 
 1098: @var{n}個未満ののハードリンクを持つファイルの調査.
 1099: @end deffn
 1100: 
 1101: @node Time
 1102: @c @section Time
 1103: @section 時間
 1104: 
 1105: @c Each file has three time stamps, which record the last time that certain
 1106: @c operations were performed on the file:
 1107: @c 
 1108: それぞれのファイルには三つのタイムスタンプがあり,それらはファイルに対
 1109: して特定の処理を実行した,最後の時間を記録します.
 1110: 
 1111: @enumerate
 1112: @item
 1113: @c access (read the file's contents)
 1114: @c 
 1115: アクセス(ファイルの内容を読み込む)
 1116: @item
 1117: @c change the status (modify the file or its attributes)
 1118: @c 
 1119: ステータスの変更(ファイルの編集や属性の変更)
 1120: @item
 1121: @c modify (change the file's contents)
 1122: @c 
 1123: 編集(ファイルの内容を変更)
 1124: @end enumerate
 1125: 
 1126: @c There is no timestamp that indicates when a file was @emph{created}.
 1127: @c 
 1128: ファイルが@emph{作成された}時間を示すタイムスタンプはありません.
 1129: 
 1130: @c You can search for files whose time stamps are within a certain age
 1131: @c range, or compare them to other time stamps.  
 1132: @c 
 1133: タイムスタンプが特定の範囲にあるファイルを検索したり,他のタイムスタン
 1134: プと比較したりすることが可能です.
 1135: 
 1136: @menu
 1137: * Age Ranges::
 1138: * Comparing Timestamps::
 1139: @end menu
 1140: 
 1141: @node Age Ranges
 1142: @c @subsection Age Ranges
 1143: @subsection 期間の範囲
 1144: 
 1145: @c These tests are mainly useful with ranges (@samp{+@var{n}} and
 1146: @c @samp{-@var{n}}).
 1147: @c 
 1148: これらのテストは,範囲(@samp{+@var{n}}と@samp{-@var{n}})を用いる場合に,
 1149: 主に役立ちます.
 1150: 
 1151: @deffn Test -atime n
 1152: @deffnx Test -ctime n
 1153: @deffnx Test -mtime n
 1154: @c True if the file was last accessed (or its status changed, or it was
 1155: @c modified) @var{n}*24 hours ago.  The number of 24-hour periods since
 1156: @c the file's timestamp is always rounded down; therefore 0 means ``less
 1157: @c than 24 hours ago'', 1 means ``between 24 and 48 hours ago'', and so
 1158: @c forth.
 1159: @c 
 1160: ファイルの最後のアクセス(またはステータスの変更,または編集)が,
 1161: @var{n}*24時間前の場合は真です.24時間の数の区切りは,ファイルのタイム
 1162: スタンプが常に切り捨てで処理されます.このため,0は``24時間未満'',1は
 1163: ``24〜48時間の間''といった感じになります.
 1164: @end deffn
 1165: 
 1166: @deffn Test -amin n
 1167: @deffnx Test -cmin n
 1168: @deffnx Test -mmin n
 1169: @c True if the file was last accessed (or its status changed, or it was
 1170: @c modified) @var{n} minutes ago.  These tests provide finer granularity of
 1171: @c measurement than @samp{-atime} et al., but rounding is done in a 
 1172: @c similar way.  For example, to list files in
 1173: @c @file{/u/bill} that were last read from 2 to 6 minutes ago:
 1174: @c 
 1175: ファイルの最後のアクセス(またはステータスの変更,または編集)が,
 1176: @var{n}分前の場合は真です.これらのテストは,@samp{-atime}等よりも細か
 1177: な計測を提供しますが,同じ方法で切り捨てられます.例えば,
 1178: @file{/u/bill}内の最後に読み込まれたのが2〜6分前のファイルをリストアッ
 1179: プするために以下のようにします.
 1180: 
 1181: @example
 1182: find /u/bill -amin +2 -amin -6
 1183: @end example
 1184: @end deffn
 1185: 
 1186: @deffn Option -daystart
 1187: @c Measure times from the beginning of today rather than from 24 hours ago.
 1188: @c So, to list the regular files in your home directory that were modified
 1189: @c yesterday, do
 1190: @c 
 1191: 24時間前ではなく今日の最初から時間をはかります.そのため,ホームディレ
 1192: クトリ内で昨日編集された通常のファイルをリストアップするために,以下の
 1193: ようにします.
 1194: 
 1195: @example
 1196: find ~ -daystart -type f -mtime 1
 1197: @end example
 1198: @end deffn
 1199: 
 1200: @c The @samp{-daystart} option is unlike most other options in that it
 1201: @c has an effect on the way that other tests are performed.  The affected
 1202: @c tests are @samp{-amin}, @samp{-cmin}, @samp{-mmin}, @samp{-atime},
 1203: @c @samp{-ctime} and @samp{-mtime}.
 1204: @c 
 1205: @samp{-daystart}オプションは,それ以外のオプションとは異なり,他の調査
 1206: の実行に効果を与える方法です.影響される調査は,@samp{-amin},
 1207: @samp{-cmin},@samp{-mmin},@samp{-atime},@samp{-ctime},そして
 1208: @samp{-mtime}です.
 1209: 
 1210: @node Comparing Timestamps
 1211: @c @subsection Comparing Timestamps
 1212: @subsection タイムスタンプの比較
 1213: 
 1214: @c As an alternative to comparing timestamps to the current time, you can
 1215: @c compare them to another file's timestamp.  That file's timestamp could
 1216: @c be updated by another program when some event occurs.  Or you could set
 1217: @c it to a particular fixed date using the @code{touch} command.  For
 1218: @c example, to list files in @file{/usr} modified after February 1 of the
 1219: @c current year:
 1220: @c 
 1221: タイムスタンプを現在の時間と比較する代わりに,それを他のファイルのタイ
 1222: ムスタンプと比較することが可能です.そのファイルのタイムスタンプは,い
 1223: くつかのイベントによって,他のプログラムによって更新されるかもしれませ
 1224: ん.また,@code{touch}コマンドを使用して,特定の固定した日付に設定する
 1225: こともできるでしょう.例えば,今年の一月一日以降に編集された
 1226: @file{/usr}内のファイルをリストアップするために,以下のようにします.
 1227: 
 1228: @c Idea from Rick Sladkey.
 1229: @example
 1230: touch -t 02010000 /tmp/stamp$$
 1231: find /usr -newer /tmp/stamp$$
 1232: rm -f /tmp/stamp$$
 1233: @end example
 1234: 
 1235: @deffn Test -anewer file
 1236: @deffnx Test -cnewer file
 1237: @deffnx Test -newer file
 1238: @c True if the file was last accessed (or its status changed, or it was
 1239: @c modified) more recently than @var{file} was modified.  These tests are
 1240: @c affected by @samp{-follow} only if @samp{-follow} comes before them on
 1241: @c the command line.  @xref{Symbolic Links}, for more information on
 1242: @c @samp{-follow}.  As an example, to list any files modified since
 1243: @c @file{/bin/sh} was last modified:
 1244: @c 
 1245: ファイルが最後にアクセス(またはステータスの変更,または編集)されたのが
 1246: @var{file}の編集以降の場合は真です.これらのテストは,@samp{-follow}が
 1247: コマンドラインのそれら(のオプション)の前にある場合のみ,@samp{-follow}
 1248: 影響を受けます.
 1249: 
 1250: @example
 1251: find . -newer /bin/sh
 1252: @end example
 1253: @end deffn
 1254: 
 1255: @deffn Test -used n
 1256: @c True if the file was last accessed @var{n} days after its status was
 1257: @c last changed.  Useful for finding files that are not being used, and
 1258: @c could perhaps be archived or removed to save disk space.
 1259: @c 
 1260: ファイルが最後にアクセスされたのが,そのステータスが最後に変更されてか
 1261: ら@var{n}日後の場合は真です.使用されておらず,ディスクスペースを確保す
 1262: るために圧縮または削除されたファイルを探すのに役立ちます.
 1263: @end deffn
 1264: 
 1265: @node Size
 1266: @c @section Size
 1267: @section サイズ
 1268: 
 1269: @deffn Test -size n@r{[}bckwMG@r{]}
 1270: @c True if the file uses @var{n} units of space, rounding up.  The units
 1271: @c are 512-byte blocks by default, but they can be changed by adding a
 1272: @c one-character suffix to @var{n}:
 1273: @c 
 1274: 切上げで@var{n}単位領域をファイルが使用している場合は真です.単位はデフォ
 1275: ルトで512バイトブロックですが,@var{n}の接尾子として一文字加えることで
 1276: 変更することが可能です.
 1277: 
 1278: @table @code
 1279: @item b
 1280: @c 512-byte blocks (never 1024)
 1281: @c 
 1282: 512バイトブロック単位(1024にはなりません)
 1283: @item c
 1284: @c bytes
 1285: @c 
 1286: バイト単位
 1287: @item k
 1288: @c kilobytes (1024 bytes)
 1289: @c 
 1290: キロバイト(1024バイト)単位
 1291: @item w
 1292: @c 2-byte words
 1293: @c 
 1294: 2バイトワード単位
 1295: @item M
 1296: @c Megabytes
 1297: @c 
 1298: メガバイト単位
 1299: @item G
 1300: @c Gigabytes
 1301: @c 
 1302: ギガバイト単位
 1303: @end table
 1304: 
 1305: @c The `b' suffix always considers blocks to be 512 bytes.  This is not
 1306: @c affected by the setting (or non-setting) of the POSIXLY_CORRECT
 1307: @c environment variable.  This behaviour is different to the behaviour of
 1308: @c the @samp{-ls} action).  If you want to use 1024-byte units, use the
 1309: @c `k' suffix instead.
 1310: @c 
 1311: `b'の接尾辞は常に512バイトのブロックを想定します.これは,
 1312: @env{POSIXLY_CORRECT}環境変数の設定(または未設定)に影響されません.この
 1313: の動作は@samp{-ls}の動作とは異なります.1024バイト単位を使用したい場合,
 1314: `k'接尾辞を代わりに使用してください.
 1315: 
 1316: @c The number can be prefixed with a `+' or a `-'.  A plus sign indicates
 1317: @c that the test should succeed if the file uses at least @var{n} units
 1318: @c of storage (this is the way I normally use this test) and a minus sign
 1319: @c indicates that the test should succeed if the file uses less than
 1320: @c @var{n} units of storage.   There is no `=' prefix, because that's the 
 1321: @c default anyway.  
 1322: @c 
 1323: 数字には`+'や`-'を前置することが可能です.正の符号は,ストレージ内でファ
 1324: イルが少なくとも@var{n}単位を使用している場合,調査が成功したことを示し
 1325: (これは,このテストが使用する一般的な方法です),負の符号は,ストレージ
 1326: 内でファイルが@var{n}単位未満使用している場合,調査が成功したことを示し
 1327: ます.`='接頭辞は無く,これはデフォルトだからです.
 1328: 
 1329: @c The size does not count indirect blocks, but it does count blocks in
 1330: @c sparse files that are not actually allocated.  In other words, it's
 1331: @c consistent with the result you get for @samp{ls -l} or @samp{wc -c}.
 1332: @c This handling of sparse files differs from the output of the @samp{%k}
 1333: @c and @samp{%b} format specifiers for the @samp{-printf} predicate.
 1334: @c 
 1335: サイズは間接的なブロックを数えませんが,実際には割り当てられていない疎
 1336: らなファイル内のブロックは数えます.言い替えると,@samp{ls -l}や
 1337: @samp{wc -c}で得られる結果と矛盾します.この疎らなファイルの処理は,
 1338: @samp{-printf}指示語の@samp{%k}と@samp{%b}の書式指定の出力とは異なりま
 1339: す.
 1340: @end deffn
 1341: 
 1342: @deffn Test -empty
 1343: @c True if the file is empty and is either a regular file or a directory.
 1344: @c This might make it a good candidate for deletion.  This test is useful
 1345: @c with @samp{-depth} (@pxref{Directories}) and @samp{-delete}
 1346: @c (@pxref{Single File}).
 1347: @c 
 1348: ファイルが空の場合で,通常のファイルまたはディレクトリのどちらかの場合
 1349: は真です.これで,削除に適した候補が作成されるでしょう.このテストは,
 1350: @samp{-depth} (@pxref{Directories})と@samp{-delete} (@pxref{Single
 1351: File})とともに用いた場合,役に立ちます.
 1352: @end deffn
 1353: 
 1354: @node Type
 1355: @c @section Type
 1356: @section ファイル形式
 1357: 
 1358: @deffn Test -type c
 1359: @c True if the file is of type @var{c}:
 1360: @c 
 1361: ファイルが@var{c}の形式の場合は真です.
 1362: 
 1363: @table @code
 1364: @item b
 1365: @c block (buffered) special
 1366: @c 
 1367: (バッファされる)ブロックスペシャルファイル
 1368: @item c
 1369: @c character (unbuffered) special
 1370: @c 
 1371: (バッファされない)キャラクタスペシャルファイル
 1372: @item d
 1373: @c directory
 1374: @c 
 1375: ディレクトリ
 1376: @item p
 1377: @c named pipe (FIFO)
 1378: @c 
 1379: 名前付きパイプ(FIFO)
 1380: @item f
 1381: @c regular file
 1382: @c 
 1383: 通常のファイル
 1384: @item l
 1385: @c symbolic link
 1386: @c 
 1387: シンボリックリンク
 1388: @item s
 1389: @c socket
 1390: @c 
 1391: ソケット
 1392: @item D
 1393: door (Solaris)
 1394: @end table
 1395: @end deffn
 1396: 
 1397: @deffn Test -xtype c
 1398: @c The same as @samp{-type} unless the file is a symbolic link.  For
 1399: @c symbolic links: if @samp{-follow} has not been given, true if the file
 1400: @c is a link to a file of type @var{c}; if @samp{-follow} has been given,
 1401: @c true if @var{c} is @samp{l}.  In other words, for symbolic links,
 1402: @c @samp{-xtype} checks the type of the file that @samp{-type} does not
 1403: @c check.  @xref{Symbolic Links}, for more information on @samp{-follow}.
 1404: @c 
 1405: ファイルがシンボリックリンクでない場合,@samp{-type}と同じです.シンボ
 1406: リックリンクに対しては以下のようになります.@samp{-follow}が与えられて
 1407: いない場合,ファイルが@var{c}形式のファイルにリンクしている場合は真です.
 1408: @samp{-follow}が与えられている場合,@var{c}が@samp{l}の場合は真です.言
 1409: い替えると,シンボリックリンクに対し,@samp{-xtype}は,@samp{-type}が調
 1410: 査しないファイルの形式を調査します.@samp{-follow}の詳細は,
 1411: @xref{Symbolic Links}.
 1412: @end deffn
 1413: 
 1414: @node Owner
 1415: @c @section Owner
 1416: @section 所有者
 1417: 
 1418: @deffn Test -user uname
 1419: @deffnx Test -group gname
 1420: @c True if the file is owned by user @var{uname} (belongs to group @var{gname}).
 1421: @c A numeric ID is allowed.
 1422: @c 
 1423: ファイルが(グループ@var{gname}に所属する)ユーザ@var{uname}に所有されて
 1424: いる場合は真です.数字のIDも可能です.
 1425: @end deffn
 1426: 
 1427: @deffn Test -uid n
 1428: @deffnx Test -gid n
 1429: @c True if the file's numeric user ID (group ID) is @var{n}.  These tests
 1430: @c support ranges (@samp{+@var{n}} and @samp{-@var{n}}), unlike
 1431: @c @samp{-user} and @samp{-group}.
 1432: @c 
 1433: ファイルの数字のユーザID(グループID)が@var{n}の場合は真です.これらのテ
 1434: ストは,@samp{-user}と@samp{-group}とは異なり,範囲指定
 1435: (@samp{+@var{n}} と@samp{-@var{n}})をサポートします.
 1436: @end deffn
 1437: 
 1438: @deffn Test -nouser
 1439: @deffnx Test -nogroup
 1440: @c True if no user corresponds to the file's numeric user ID (no group
 1441: @c corresponds to the numeric group ID).  These cases usually mean that the
 1442: @c files belonged to users who have since been removed from the system.
 1443: @c You probably should change the ownership of such files to an existing
 1444: @c user or group, using the @code{chown} or @code{chgrp} program.
 1445: @c 
 1446: ファイルの数字のユーザIDに対応するユーザがいない(数字のグループIDに対応
 1447: するグループがない)場合は真です.これらの場合は,通常,システムから削除
 1448: されているため,ユーザに属さなくなったファイルを意味します.そのような
 1449: ファイルの所有権を,@code{chown}や@code{chgrp}プログラムを使用して,既
 1450: 存のユーザとグループに変更したほうが良いでしょう.
 1451: @end deffn
 1452: 
 1453: @node Permissions
 1454: @c @section Permissions
 1455: @section ファイルの権限
 1456: 
 1457: @c @xref{File Permissions}, for information on how file permissions are
 1458: @c structured and how to specify them.
 1459: @c 
 1460: ファイルの権限の構造とそれを指定する方法に関する情報は,@xref{File
 1461: Permissions}.
 1462: 
 1463: @deffn Test -perm mode
 1464: @c True if the file's permissions are exactly @var{mode} (which can be
 1465: @c numeric or symbolic).
 1466: @c 
 1467: ファイルの権限が正確に@var{mode}(数値的でも象徴的でも可能です)と同一の
 1468: 場合は真です.
 1469: 
 1470: @c If @var{mode} starts with @samp{-}, true if
 1471: @c @emph{all} of the permissions set in @var{mode} are set for the file;
 1472: @c permissions not set in @var{mode} are ignored.
 1473: @c If @var{mode} starts with @samp{/}, true if
 1474: @c @emph{any} of the permissions set in @var{mode} are set for the file;
 1475: @c permissions not set in @var{mode} are ignored.
 1476: @c This is a GNU extension.
 1477: @c 
 1478: @var{mode}が@samp{-}で始まっている場合,@var{mode}の権限が@emph{すべ
 1479: て}ファイルに設定されている場合は真です.@var{mode}に設定されていない権
 1480: 限は無視されます.@var{mode}が@samp{/}で始まっている場合,@var{mode}の
 1481: 権限が@emph{ひとつでも}ファイルに設定されている場合は真です.
 1482: @var{mode}に設定されていない権限は無視されます.これはGNUの拡張です.
 1483: 
 1484: @c If you don't use the @samp{/} or @samp{-} form with a symbolic mode
 1485: @c string, you may have to specify a rather complex mode string.  For
 1486: @c example @samp{-perm g=w} will only match files which have mode 0020
 1487: @c (that is, ones for which group write permission is the only permission
 1488: @c set).  It is more likely that you will want to use the @samp{/} or
 1489: @c @samp{-} forms, for example @samp{-perm -g=w}, which matches any file
 1490: @c with group write permission.
 1491: @c 
 1492: @samp{/}や@samp{-}の形式を記号的なモードの文字列で使用していない場合,
 1493: より複雑なモード文字列を指定する必要があるかもしれません.例えば,
 1494: @samp{-perm g=w}はモードが0020のファイルだけにマッチします(つまり,グルー
 1495: プの書き込み権限だけ権限が設定されているものです).@samp{/}や@samp{-}の
 1496: 形式のほうがより好ましい結果でしょう.例えば,@samp{-perm -g=w}は,グルー
 1497: プの書き込み権限がある,すべてのファイルにマッチします.
 1498: 
 1499: @table @samp
 1500: @item -perm 664
 1501: @c Match files which have read and write permission for their owner,
 1502: @c and group, but which the rest of the world can read but not write to.  
 1503: @c Files which meet these criteria but have other permissions bits set
 1504: @c (for example if someone can execute the file) will not be matched.
 1505: @c 
 1506: 所有者とグループに読み込みと書き込みの権限があり,それ以外は読み込み可
 1507: 能で書き込み不可能なファイルにマッチします.これらの基準に合致したファ
 1508: イルで,それ以外の権限のビットが設定されているもの(例えば,実行可能なファ
 1509: イル)にはマッチしません.
 1510: 
 1511: @item -perm -664
 1512: @c Match files which have read and write permission for their owner,
 1513: @c and group, but which the rest of the world can read but not write to,
 1514: @c without regard to the presence of any extra permission bits (for
 1515: @c example the executable bit).  This will match a file which has mode
 1516: @c 0777, for example.
 1517: @c 
 1518: 所有者とグループに読み込みと書き込みの権限があり,それ以外は読み込み可
 1519: 能で書き込み不可能なファイルにマッチし,それ以外の権限ビット(例えば,実
 1520: 行権限ビット)の存在に依存しません.例えばこれは,0777のモードのファイル
 1521: にマッチします.
 1522: 
 1523: @item -perm /222
 1524: @c Match files which are writeable by somebody (their owner, or
 1525: @c their group, or anybody else).
 1526: @c 
 1527: 書き込み権限があるファイル(所有者,グループ,またはそれ以外誰でも)にマッ
 1528: チします.
 1529: 
 1530: @item -perm /022
 1531: @c Match files which are writeable by either their owner or their
 1532: @c group.  The files don't have to be writeable by both the owner and
 1533: @c group to be matched; either will do.
 1534: @c 
 1535: 所有者またはグループに書き込み権限があるファイルにマッチします.マッチ
 1536: するためには,ファイルに所有者とグループの両方の書き込み権限がある必要
 1537: はありません.いずれかでマッチします.
 1538: 
 1539: @item -perm /g+w,o+w
 1540: @c As above.
 1541: @c 
 1542: 上記と同じです.
 1543: 
 1544: @item -perm /g=w,o=w
 1545: @c As above
 1546: @c 
 1547: 上記と同じです.
 1548: 
 1549: @item -perm -022
 1550: @c Search for files which are writeable by both their owner and their
 1551: @c group.
 1552: @c 
 1553: 所有者とグループの両方の書き込み権限があるファイルを検索します.
 1554: 
 1555: @item -perm -g+w,o+w
 1556: @c As above.
 1557: @c 
 1558: 上記と同じです.
 1559: @end table
 1560: @end deffn
 1561: 
 1562: @node Contents
 1563: @c @section Contents
 1564: @section 内容
 1565: 
 1566: @c To search for files based on their contents, you can use the @code{grep}
 1567: @c program.  For example, to find out which C source files in the current
 1568: @c directory contain the string @samp{thing}, you can do:
 1569: @c 
 1570: ファイルの内容を基に検索するために,@code{grep}プログラムを使用すること
 1571: が可能です.例えば,現在のディレクトリで,文字列@samp{thing}を含むCのソー
 1572: スファイルを見つけるために,以下のようにすることが可能です.
 1573: 
 1574: @example
 1575: grep -l thing *.[ch]
 1576: @end example
 1577: 
 1578: @c If you also want to search for the string in files in subdirectories,
 1579: @c you can combine @code{grep} with @code{find} and @code{xargs}, like
 1580: @c this:
 1581: @c 
 1582: サブディレクトリのファイルの文字列を検索したい時も,以下のように
 1583: @code{find}と@code{xargs}を用いて,@code{grep}を組み合わせることが可能
 1584: です.
 1585: 
 1586: @example
 1587: find . -name '*.[ch]' | xargs grep -l thing
 1588: @end example
 1589: 
 1590: @c The @samp{-l} option causes @code{grep} to print only the names of files
 1591: @c that contain the string, rather than the lines that contain it.  The
 1592: @c string argument (@samp{thing}) is actually a regular expression, so it
 1593: @c can contain metacharacters.  This method can be refined a little by
 1594: @c using the @samp{-r} option to make @code{xargs} not run @code{grep} if
 1595: @c @code{find} produces no output, and using the @code{find} action
 1596: @c @samp{-print0} and the @code{xargs} option @samp{-0} to avoid
 1597: @c misinterpreting files whose names contain spaces:
 1598: @c 
 1599: @code{grep}は@samp{-l}オプションで,文字列を含む行ではなくそれを含むファ
 1600: イル名のみ出力します.文字列の引数(@samp{thing})は,実際には正規表現で,
 1601: そのためメタ文字を含みます.この方法で,@code{find}の出力がない場合は
 1602: @code{xargs}に@code{grep}を実行させないように,@samp{-r}オプションを使
 1603: 用したり,名前にスペースを含んでいて間違って解釈することを防ぐために,
 1604: @code{find}のアクション@samp{-print0}と@code{xargs}のオプション
 1605: @samp{-0}を使用することで改善可能です.
 1606: 
 1607: @example
 1608: find . -name '*.[ch]' -print0 | xargs -r -0 grep -l thing
 1609: @end example
 1610: 
 1611: @c For a fuller treatment of finding files whose contents match a pattern,
 1612: @c see the manual page for @code{grep}.
 1613: @c 
 1614: パターンにマッチする内容があるファイルを見つけるためのより完全な扱いは,
 1615: @code{grep}のマニュアルページを参照して下さい.
 1616: 
 1617: @node Directories
 1618: @c @section Directories
 1619: @section ディレクトリ
 1620: 
 1621: @c Here is how to control which directories @code{find} searches, and how
 1622: @c it searches them.  These two options allow you to process a horizontal
 1623: @c slice of a directory tree.
 1624: @c 
 1625: ディレクトリでの@code{find}の検索を制御し,それらを検索する方法がここに
 1626: あります.これらの二つのオプションで,ディレクトリツリーを輪切りにする
 1627: 処理が可能となります.
 1628: 
 1629: @deffn Option -maxdepth levels
 1630: @c Descend at most @var{levels} (a non-negative integer) levels of
 1631: @c directories below the command line arguments.  @samp{-maxdepth 0} means
 1632: @c only apply the tests and actions to the command line arguments.
 1633: @c 
 1634: コマンドライン引数以下の,最大@var{levels} (正の整数)のレベルのディレク
 1635: トリまで下ります.@samp{-maxdepth 0}はコマンドライン引数のみ,テストと
 1636: アクションを適用することを意味します.
 1637: @end deffn
 1638: 
 1639: @deffn Option -mindepth levels
 1640: @c Do not apply any tests or actions at levels less than @var{levels} (a
 1641: @c non-negative integer).  @samp{-mindepth 1} means process all files
 1642: @c except the command line arguments.
 1643: @c 
 1644: @var{levels} (正の整数)未満のレベルではテストもアクションも適用しません.
 1645: @samp{-mindepth 1}はコマンドライン引数以外のすべてのファイルを処理する
 1646: ことを意味します.
 1647: @end deffn
 1648: 
 1649: @deffn Option -depth
 1650: @c Process each directory's contents before the directory itself.  Doing
 1651: @c this is a good idea when producing lists of files to archive with
 1652: @c @code{cpio} or @code{tar}.  If a directory does not have write
 1653: @c permission for its owner, its contents can still be restored from the
 1654: @c archive since the directory's permissions are restored after its contents.
 1655: @c 
 1656: ディレクトリ自身の前に,それぞれのディレクトリの内容を処理します.
 1657: @code{cpio}や@code{tar}でファイルのリストを生成する時,これを行なうのは
 1658: 良い考えです.ディレクトリにその所有者に対する書き込み権限がない場合,
 1659: ディレクトリの権限はその内容の後で復元されるため,その内容はアーカイブ
 1660: から復元することが可能です.
 1661: @end deffn
 1662: 
 1663: @deffn Option -d
 1664: @c This is a deprecated synonym for @samp{-depth}, for compatibility with
 1665: @c Mac OS X, FreeBSD and OpenBSD.   The @samp{-depth} option is a POSIX
 1666: @c feature, so it is better to use that.
 1667: @c 
 1668: これは,@samp{-depth}の推奨されない同意語で,Mac OS X,FreeBSD,そして
 1669: OpenBSDとの互換性が目的です.@samp{-depth}オプションはPOSIXの機能なので,
 1670: そちらを使用したほうが良いでしょう.
 1671: @end deffn
 1672: 
 1673: @deffn Action -prune
 1674: @c If the file is a directory, do not descend into it.  The result is
 1675: @c true.  For example, to skip the directory @file{src/emacs} and all
 1676: @c files and directories under it, and print the names of the other files
 1677: @c found:
 1678: @c 
 1679: ファイルがディレクトリの場合,その中まで下って行きません.結果は真です.
 1680: 例えば,ディレクトリ@file{src/emacs}と,そのすべてのファイルと,それ以
 1681: 下のディレクトリを省略し,それ以外で見つかったファイルの名前を出力する
 1682: ために以下のようにします.
 1683: 
 1684: @example
 1685: find . -wholename './src/emacs' -prune -o -print
 1686: @end example
 1687: 
 1688: @c The above command will not print @file{./src/emacs} among its list of
 1689: @c results.  This however is not due to the effect of the @samp{-prune}
 1690: @c action (which only prevents further descent, it doesn't make sure we
 1691: @c ignore that item).  Instead, this effect is due to the use of
 1692: @c @samp{-o}.  Since the left hand side of the ``or'' condition has
 1693: @c succeeded for @file{./src/emacs}, it is not necessary to evaluate the
 1694: @c right-hand-side (@samp{-print}) at all for this particular file.  If
 1695: @c you wanted to print that directory name you could use either an extra
 1696: @c @samp{-print} action:
 1697: @c 
 1698: 上記のコマンドでは,結果リストに@file{./src/emacs}を出力しません.しか
 1699: し,これは@samp{-prune}の動作の影響が原因ではありません(それ以上,下っ
 1700: て行くのを避けるだけで,その項目を確実に無視するわけではありません).そ
 1701: うではなく,これは@samp{-o}を使用していることが原因です.左側の``or''条
 1702: 件が@file{./src/emacs}で成功しているので,この指定しているファイルに対
 1703: する右側の評価(@samp{-print})が不要になります.ディレクトリ名を出力した
 1704: い場合,さらに@samp{-print}アクションを使用します.
 1705: 
 1706: @example
 1707: find . -wholename './src/emacs' -prune -print -o -print
 1708: @end example
 1709: 
 1710: @c or use the comma operator:
 1711: @c 
 1712: または,カンマ・オペレータを使用します.
 1713: 
 1714: @example
 1715: find . -wholename './src/emacs' -prune , -print
 1716: @end example
 1717: 
 1718: @c If the @samp{-depth} option is in effect, the subdirectories will have
 1719: @c already been visited in any case.  Hence @samp{-prune} has no effect
 1720: @c and returns false.
 1721: @c 
 1722: @samp{-depth}オプションの影響がある場合,サブディレクトリはあらゆる状況
 1723: で調査されています.このため,@samp{-prune}に効果はありません.
 1724: @end deffn
 1725: 
 1726: 
 1727: @deffn Action -quit
 1728: @c Exit immediately (with return value zero if no errors have occurred).
 1729: @c No child processes will be left running, but no more paths specified
 1730: @c on the command line will be processed.  For example, @code{find
 1731: @c /tmp/foo /tmp/bar -print -quit} will print only @samp{/tmp/foo}.
 1732: @c 
 1733: すぐに修了します(エラーが無ければ,ゼロの値を返します).実行中の子プロ
 1734: セスは無く,コマンドラインで指定されたパスの処理も無い状態になります.
 1735: 例えば,@code{find /tmp/foo /tmp/bar -print -quit}では@samp{/tmp/foo}だ
 1736: けを出力します.
 1737: @end deffn 
 1738: 
 1739: @deffn Option -noleaf
 1740: @c Do not optimize by assuming that directories contain 2 fewer
 1741: @c subdirectories than their hard link count.  This option is needed when
 1742: @c searching filesystems that do not follow the Unix directory-link
 1743: @c convention, such as CD-ROM or MS-DOS filesystems or AFS volume mount
 1744: @c points.  Each directory on a normal Unix filesystem has at least 2 hard
 1745: @c links: its name and its @file{.}  entry.  Additionally, its
 1746: @c subdirectories (if any) each have a @file{..}  entry linked to that
 1747: @c directory.  When @code{find} is examining a directory, after it has
 1748: @c statted 2 fewer subdirectories than the directory's link count, it knows
 1749: @c that the rest of the entries in the directory are non-directories
 1750: @c (@dfn{leaf} files in the directory tree).  If only the files' names need
 1751: @c to be examined, there is no need to stat them; this gives a significant
 1752: @c increase in search speed.
 1753: @c 
 1754: ディレクトリが,ハードリンクの数より二つ少ないサブディレクトリを含むこ
 1755: とを仮定することで,最適化を行ないません.このオプションは,CD-ROMや
 1756: MS-DOSファイルシステムやAFSボリュームマウントポイントといった,Unixのディ
 1757: レクトリリンクの規約に従わないファイルシステムを検索する時に必要です.
 1758: 通常のUnix のファイルシステムのそれぞれのディレクトリは,少なくとも二つ
 1759: のハードリンクがあります.その名前とその@file{.}エントリです.更に,そ
 1760: のサブディレクトリ(が存在する場合)には,そのディレクトリにリンクしてい
 1761: る@file{..}エントリが,それぞれにあります.@code{find}がディレクトリを
 1762: 調査している時,ディレクトリのリンク数よりサブディレクトリが二つ少ない
 1763: ことがはっきりした後で,それはディレクトリのエントリの残りがディレクト
 1764: リでない(ディレクトリ内の@dfn{leaf}ツリー)ことが分かります.ファイルの
 1765: 名前のみ調査に必要な場合は,それらをはっきりさせる必要はありません.こ
 1766: れで検索スピードが飛躍的に増加します.
 1767: @end deffn
 1768: 
 1769: @deffn Option -ignore_readdir_race
 1770: @c If a file disappears after its name has been read from a directory but
 1771: @c before @code{find} gets around to examining the file with @code{stat},
 1772: @c don't issue an error message.  If you don't specify this option, an
 1773: @c error message will be issued.  This option can be useful in system
 1774: @c scripts (cron scripts, for example) that examine areas of the
 1775: @c filesystem that change frequently (mail queues, temporary directories,
 1776: @c and so forth), because this scenario is common for those sorts of
 1777: @c directories.  Completely silencing error messages from @code{find} is
 1778: @c undesirable, so this option neatly solves the problem.  There is no
 1779: @c way to search one part of the filesystem with this option on and part
 1780: @c of it with this option off, though.
 1781: @c 
 1782: ディレクトリから読み込まれた名前のファイルが,@code{find}が@code{stat}
 1783: でファイルを調査する前に見つからない場合,エラーメッセージを出力しませ
 1784: ん.このオプションを指定していない場合,エラーメッセージが出力されます.
 1785: 頻繁に変更されるファイルシステム領域(メールのキュー,テンポラリ・ディレ
 1786: クトリ等)を調査するシステムスクリプト(例えばcronスクリプト)では,このオ
 1787: プションは役に立ち,その理由は,このような種類のディレクトリではよくあ
 1788: ることだからです.@code{find}からのエラーメッセージを完全に無くすことは
 1789: 望まないので,このオプションは,うまく問題を解決します.しかし,ファイ
 1790: ルシステムの一部はこのオプションをオンにし,一部ではこのオプションをオ
 1791: フにして検索する方法はありません.
 1792: @end deffn
 1793: 
 1794: @deffn Option -noignore_readdir_race
 1795: @c This option reverses the effect of the @samp{-ignore_readdir_race} option.
 1796: @c 
 1797: このオプションは,@samp{-ignore_readdir_race}オプションの効果を反転しま
 1798: す.
 1799: @end deffn
 1800: 
 1801: 
 1802: @node Filesystems
 1803: @c @section Filesystems
 1804: @section ファイルシステム
 1805: 
 1806: @c A @dfn{filesystem} is a section of a disk, either on the local host or
 1807: @c mounted from a remote host over a network.  Searching network
 1808: @c filesystems can be slow, so it is common to make @code{find} avoid them.
 1809: @c 
 1810: @dfn{ファイルシステム(filesystem)}とはディスクの区分のことで,それはロー
 1811: カルホスト,または,ネットワーク経由のリモートホストからマウントしたも
 1812: ののいずれかになります.ネットワークファイルシステムを検索すると遅くな
 1813: るはずなので,通常,@code{find}はそれを避けます.
 1814: 
 1815: @c There are two ways to avoid searching certain filesystems.  One way is
 1816: @c to tell @code{find} to only search one filesystem:
 1817: @c 
 1818: 特定のファイルシステムの検索を避ける二つの方法があります.一つの方法は,
 1819: @code{find}に一つのファイルシステムのみを検索するよう伝えることです.
 1820: 
 1821: @deffn Option -xdev
 1822: @deffnx Option -mount
 1823: @c Don't descend directories on other filesystems.  These options are synonyms.
 1824: @c 
 1825: 他のファイルシステムのディレクトリに下りません.これらのオプションは同
 1826: じです.
 1827: @end deffn
 1828: 
 1829: @c The other way is to check the type of filesystem each file is on, and
 1830: @c not descend directories that are on undesirable filesystem types:
 1831: @c 
 1832: もう一つの方法は,それぞれのファイルがあるファイルシステムの形式を調査
 1833: し,好ましくないファイルシステムの形式にあるディレクトリに下らないよう
 1834: にします.
 1835: 
 1836: @deffn Test -fstype type
 1837: @c True if the file is on a filesystem of type @var{type}.  The valid
 1838: @c filesystem types vary among different versions of Unix; an incomplete
 1839: @c list of filesystem types that are accepted on some version of Unix or
 1840: @c another is:
 1841: @c 
 1842: ファイルが,形式@var{type}のファイルシステム上にある場合は真です.有効
 1843: なファイルシステム形式は,Unixの異なるバージョン間で異なります.いくつ
 1844: かのバージョンのUnixなどが受け入れる,ファイルシステムの形式の不完全な
 1845: リストは,以下のとおりです.
 1846: @example
 1847: ext2 ext3 proc sysfs ufs 4.2 4.3 nfs tmp mfs S51K S52K
 1848: @end example
 1849: @c You can use @samp{-printf} with the @samp{%F} directive to see the types
 1850: @c of your filesystems.  The @samp{%D} directive shows the device number.
 1851: @c @xref{Print File Information}.  @samp{-fstype} is
 1852: @c usually used with @samp{-prune} to avoid searching remote filesystems
 1853: @c (@pxref{Directories}). 
 1854: @c 
 1855: ファイルシステムの形式を知るために,@samp{%F}指示語とともに
 1856: @samp{-printf}を使用することが可能です.@samp{%D}指示語はデバイス番号を
 1857: 表示します.@xref{Print File Information}.  リモートファイルシステムの
 1858: 検索を避けるために,@samp{-fstype}は通常,@samp{-prune}とともに使用され
 1859: ます.(@pxref{Directories}).
 1860: @end deffn
 1861: 
 1862: @node Combining Primaries With Operators
 1863: @c @section Combining Primaries With Operators
 1864: @section オペレータの主なものを組み合わせる
 1865: 
 1866: @c Operators build a complex expression from tests and actions.
 1867: @c The operators are, in order of decreasing precedence:
 1868: @c 
 1869: オペレータはテストとアクションから,複雑な表現を構築します.オペレータ
 1870: は優先順位が下がる順序で,以下のものがあります.
 1871: 
 1872: @table @code
 1873: @item @asis{( @var{expr} )}
 1874: @findex ()
 1875: @c Force precedence.  True if @var{expr} is true.
 1876: @c 
 1877: 優先順位をあげます.@var{expr}が真の場合は真です.
 1878: 
 1879: @item @asis{! @var{expr}}
 1880: @itemx @asis{-not @var{expr}}
 1881: @findex !
 1882: @findex -not
 1883: @c True if @var{expr} is false.
 1884: @c 
 1885: @var{expr}が偽の場合は真です.
 1886: 
 1887: @item @asis{@var{expr1 expr2}}
 1888: @itemx @asis{@var{expr1} -a @var{expr2}}
 1889: @itemx @asis{@var{expr1} -and @var{expr2}}
 1890: @findex -a
 1891: @findex -and
 1892: @c And; @var{expr2} is not evaluated if @var{expr1} is false.
 1893: @c 
 1894: And(論理積)です.@var{expr1}が偽の場合,@var{expr2}は評価されません.
 1895: 
 1896: @item @asis{@var{expr1} -o @var{expr2}}
 1897: @itemx @asis{@var{expr1} -or @var{expr2}}
 1898: @findex -o
 1899: @findex -or
 1900: @c Or; @var{expr2} is not evaluated if @var{expr1} is true.
 1901: @c 
 1902: Or(論理和)です.@var{expr1}が真の場合,@var{expr2}は評価されません.
 1903: 
 1904: @item @asis{@var{expr1} , @var{expr2}}
 1905: @findex ,
 1906: @c List; both @var{expr1} and @var{expr2} are always evaluated.  True if
 1907: @c @var{expr2} is true.  The value of @var{expr1} is discarded.  This
 1908: @c operator lets you do multiple independent operations on one traversal,
 1909: @c without depending on whether other operations succeeded.  The two 
 1910: @c operations @var{expr1} and @var{expr2} are not always fully
 1911: @c independent, since @var{expr1} might have side effects like touching
 1912: @c or deleting files, or it might use @samp{-prune} which would also
 1913: @c affect @var{expr2}.
 1914: @c 
 1915: リストです.@var{expr1}と@var{expr2}は,常に評価されます.@var{expr2}が
 1916: 真の場合は真です.@var{expr1}の値は放棄されます.このオペレータで,一回
 1917: の処理で,他の処理が成功したかどうかに依存せず,複数の独立した処理を行
 1918: なうことができます.二つの処理@var{expr1}と@var{expr2}は,常に完全に独
 1919: 立というわけではなく,それは@var{expr1}にファイルを編修したり削除したり
 1920: する副作用がある可能性があり,また,@var{expr2}に影響する@samp{-prune}
 1921: を使用している可能性もあるためです.
 1922: @end table
 1923: 
 1924: @c @code{find} searches the directory tree rooted at each file name by
 1925: @c evaluating the expression from left to right, according to the rules of
 1926: @c precedence, until the outcome is known (the left hand side is false for
 1927: @c @samp{-and}, true for @samp{-or}), at which point @code{find} moves on
 1928: @c to the next file name.
 1929: @c 
 1930: @code{find}は,右から左まで式を評価しながら,それぞれのファイル名を起点
 1931: としたディレクトリツリーを,優先順位の規則に従い,(@samp{-and}に対して
 1932: は左が偽,@samp{-or}に対しては真となる)結果が分かるまで検索し,そして,
 1933: @code{find}は次のファイル名へ移動します.
 1934: 
 1935: @c There are two other tests that can be useful in complex expressions:
 1936: @c 
 1937: 複雑な表現で役に立つ,二つのテストが他にあります.
 1938: 
 1939: @deffn Test -true
 1940: @c Always true.
 1941: @c 
 1942: 常に真です.
 1943: @end deffn
 1944: 
 1945: @deffn Test -false
 1946: @c Always false.
 1947: @c 
 1948: 常に偽です.
 1949: @end deffn
 1950: 
 1951: @node Actions, Common Tasks, Finding Files, Top
 1952: @c @chapter Actions
 1953: @chapter アクション
 1954: 
 1955: @c There are several ways you can print information about the files that
 1956: @c match the criteria you gave in the @code{find} expression.  You can
 1957: @c print the information either to the standard output or to a file that
 1958: @c you name.  You can also execute commands that have the file names as
 1959: @c arguments.  You can use those commands as further filters to select files.
 1960: @c 
 1961: @code{find}の式で与えた基準にマッチするファイルの情報を出力する方法が,
 1962: いくつかあります.標準出力または指名したファイルに,情報を出力すること
 1963: が可能です.ファイル名を引数として,コマンドを実行することも可能です.
 1964: これらのコマンドを,選択したファイルへのフィルター以外の目的で使用する
 1965: ことが可能です.
 1966: 
 1967: @menu
 1968: * Print File Name::
 1969: * Print File Information::
 1970: * Run Commands::
 1971: * Delete Files::
 1972: * Adding Tests::
 1973: @end menu
 1974: 
 1975: @node Print File Name
 1976: @c @section Print File Name
 1977: @section ファイル名の出力
 1978: 
 1979: @deffn Action -print
 1980: @c True; print the full file name on the standard output, followed by a
 1981: @c newline.
 1982: @c 
 1983: 真の時,完全なファイル名を標準出力に出力し,改行を追加します.
 1984: @end deffn
 1985: 
 1986: @deffn Action -fprint file
 1987: @c True; print the full file name into file @var{file}, followed by a
 1988: @c newline.  If @var{file} does not exist when @code{find} is run, it is
 1989: @c created; if it does exist, it is truncated to 0 bytes.  The file names
 1990: @c @file{/dev/stdout} and @file{/dev/stderr} are handled specially; they
 1991: @c refer to the standard output and standard error output, respectively.
 1992: @c 
 1993: 真の時,完全なファイル名をファイル@var{file}に出力し,改行を追加します.
 1994: @code{find}の実行時に@var{file}が存在しない場合は作成されます.存在する
 1995: 場合は0バイトに切り詰められます.ファイル名@file{/dev/stdout}と
 1996: @file{/dev/stderr}は,特別な扱いをされます.それらはそれぞれ,標準出力
 1997: と標準エラー出力を参照します.
 1998: @end deffn
 1999: 
 2000: @node Print File Information
 2001: @c @section Print File Information
 2002: @section ファイル情報の出力
 2003: 
 2004: @deffn Action -ls
 2005: @c True; list the current file in @samp{ls -dils} format on the standard
 2006: @c output.  The output looks like this:
 2007: @c 
 2008: 真の時,現在のファイルを@samp{ls -dils}の書式で標準出力にリストアップし
 2009: ます.出力は以下のようになります.
 2010: 
 2011: @smallexample
 2012: 204744   17 -rw-r--r--   1 djm      staff       17337 Nov  2  1992 ./lwall-quotes
 2013: @end smallexample
 2014: 
 2015: @c The fields are:
 2016: @c 
 2017: フィールドは以下のとおりです.
 2018: 
 2019: @enumerate
 2020: @item
 2021: @c The inode number of the file.  @xref{Hard Links}, for how to find files
 2022: @c based on their inode number.
 2023: @c 
 2024: ファイルのinodeナンバーです.inodeナンバーを元にしたファイルの検索方法
 2025: は,@xref{Hard Links}.
 2026: 
 2027: @item
 2028: @c the number of blocks in the file.  The block counts are of 1K blocks,
 2029: @c unless the environment variable @code{POSIXLY_CORRECT} is set, in which
 2030: @c case 512-byte blocks are used.  @xref{Size}, for how to find files based
 2031: @c on their size.
 2032: @c 
 2033: ファイルのブロック数です.ブロック計算は,512バイトブロック単位を使用す
 2034: る環境変数@code{POSIXLY_CORRECT}が設定されていない場合,1Kブロック単位
 2035: です.サイズを元にしたファイルの検索方法は,@xref{Size}.
 2036: 
 2037: @item
 2038: @c The file's type and permissions.  The type is shown as a dash for a
 2039: @c regular file; for other file types, a letter like for @samp{-type} is
 2040: @c used (@pxref{Type}).  The permissions are read, write, and execute for
 2041: @c the file's owner, its group, and other users, respectively; a dash means
 2042: @c the permission is not granted.  @xref{File Permissions}, for more details
 2043: @c about file permissions.  @xref{Permissions}, for how to find files based
 2044: @c on their permissions.
 2045: @c 
 2046: ファイルの形式と権限です.形式は,通常のファイルに対してはダッシュで表
 2047: 示されます.それ以外のファイル形式に対しては,@samp{-type}に対して使用
 2048: される文字です(@pxref{Type}).権限は,読み込み,書き込み,そして実行で,
 2049: それぞれファイルの所有者,そのグループ,そしてその他のユーザに対するも
 2050: のです.ダッシュは権限が与えられていないことを意味します.ファイルの権
 2051: 限の詳細は,@xref{File Permissions}.  その権限を元にしたファイルの検索
 2052: 方法は,@xref{Permissions}.
 2053: 
 2054: @item
 2055: @c The number of hard links to the file.
 2056: @c 
 2057: ファイルに対するハードリンクの数です.
 2058: 
 2059: @item
 2060: @c The user who owns the file.
 2061: @c 
 2062: ファイルを所有しているユーザです.
 2063: 
 2064: @item
 2065: @c The file's group.
 2066: @c 
 2067: ファイルのグループです.
 2068: 
 2069: @item
 2070: @c The file's size in bytes.
 2071: @c 
 2072: ファイルのバイト単位のサイズです.
 2073: 
 2074: @item
 2075: @c The date the file was last modified.
 2076: @c 
 2077: ファイルが最後に編集された日付です.
 2078: 
 2079: @item
 2080: @c The file's name.  @samp{-ls} quotes non-printable characters in the file
 2081: @c names using C-like backslash escapes.  
 2082: @c This may change soon, as the treatment of unprintable characters is
 2083: @c harmonised for @samp{-ls}, @samp{-fls}, @samp{-print}, @samp{-fprint},
 2084: @c @samp{-printf} and @samp{-fprintf}.
 2085: @c 
 2086: ファイル名です.@samp{-ls}は,ファイル名で使用されている出力不可能な文
 2087: 字を,Cのようなバックスラッシュエスケープを使用して引用符で囲みます.印
 2088: 字不可能な文字の扱いは@samp{-ls},@samp{-fls},@samp{-print},
 2089: @samp{-fprint},@samp{-printf},そして@samp{-fprintf}では同じなので,こ
 2090: れは将来,変更される可能性があります.
 2091: @end enumerate
 2092: @end deffn
 2093: 
 2094: @deffn Action -fls file
 2095: @c True; like @samp{-ls} but write to @var{file} like @samp{-fprint}
 2096: @c (@pxref{Print File Name}).
 2097: @c 
 2098: 真の時,@samp{-ls}に似ていますが,@samp{-fprint}のように@var{file}に書
 2099: き出します(@pxref{Print File Name}).
 2100: @end deffn
 2101: 
 2102: @deffn Action -printf format
 2103: @c True; print @var{format} on the standard output, interpreting @samp{\}
 2104: @c escapes and @samp{%} directives.  Field widths and precisions can be
 2105: @c specified as with the @code{printf} C function.  Format flags (like
 2106: @c @samp{#} for example) may not work as you expect because many of the
 2107: @c fields, even numeric ones, are printed with %s.  This means though
 2108: @c that the format flag @samp{-} will work; it forces left-alignment of
 2109: @c the field.  Unlike @samp{-print}, @samp{-printf} does not add a
 2110: @c newline at the end of the string.  If you want a newline at the end of
 2111: @c the string, add a @samp{\n}.
 2112: @c 
 2113: 真の時,@samp{\}エスケープと@samp{%}指示語を解釈しながら,@var{format}
 2114: を標準出力に出力します.フィールドの幅と精度は,C関数の@code{printf}の
 2115: ように指定することが可能です.書式フラグ(例えば@samp{#})は,多くのフィー
 2116: ルドは@samp{%s}で出力されるので,数値的なものであっても期待したように動
 2117: 作しません.これは,書式フラグ@samp{-}が動作することを意味します.それ
 2118: はフィールドを左寄せに強制します.@samp{-print}とは異なり,
 2119: @samp{-printf}は文字列の終わりに改行を追加しません.文字列の終わりを改
 2120: 行にしたい場合,@samp{\n}を追加してください.
 2121: @end deffn
 2122: 
 2123: @deffn Action -fprintf file format
 2124: @c True; like @samp{-printf} but write to @var{file} like @samp{-fprint}
 2125: @c (@pxref{Print File Name}).
 2126: @c 
 2127: 真の時,@samp{-printf}に似ていますが,@samp{-fprint}のように@var{file}
 2128: に書き出します(@pxref{Print File Name}).
 2129: @end deffn
 2130: 
 2131: @menu
 2132: * Escapes::
 2133: * Format Directives::
 2134: * Time Formats::
 2135: @end menu
 2136: 
 2137: @node Escapes
 2138: @c @subsection Escapes
 2139: @subsection エスケープ
 2140: 
 2141: @c The escapes that @samp{-printf} and @samp{-fprintf} recognize are:
 2142: @c 
 2143: @samp{-printf}と@samp{-fprintf}で認識されるエスケープは以下のとおりです.
 2144: 
 2145: @table @code
 2146: @item \a
 2147: @c Alarm bell.
 2148: @c 
 2149: アラームベル.
 2150: @item \b
 2151: @c Backspace.
 2152: @c 
 2153: バックスペース.
 2154: @item \c
 2155: @c Stop printing from this format immediately and flush the output.
 2156: @c 
 2157: この書式の直後出力の停止し,出力をフラッシュ.
 2158: @item \f
 2159: @c Form feed.
 2160: @c 
 2161: フォームフィード.
 2162: @item \n
 2163: @c Newline.
 2164: @c 
 2165: 改行.
 2166: @item \r
 2167: @c Carriage return.
 2168: @c 
 2169: キャリッジリターン.
 2170: @item \t
 2171: @c Horizontal tab.
 2172: @c 
 2173: 水平タブ.
 2174: @item \v
 2175: @c Vertical tab.
 2176: @c 
 2177: 垂直タブ.
 2178: @item \\
 2179: @c A literal backslash (@samp{\}).
 2180: @c 
 2181: バックスラッシュそのもの(@samp{\}).
 2182: @item \NNN
 2183: @c The character whose ASCII code is NNN (octal).
 2184: @c 
 2185: ASCIIコードがNNNの文字(八進数).
 2186: @end table
 2187: @c A @samp{\} character followed by any other character is treated as an
 2188: @c ordinary character, so they both are printed, and a warning message is
 2189: @c printed to the standard error output (because it was probably a typo).
 2190: @c 
 2191: @samp{\}文字に他の文字が続くものは,通常の文字として扱われるので,両方
 2192: が出力され,(おそらくそれは入力ミスなので)標準エラー出力に警告メッセー
 2193: ジが出力されます.
 2194: 
 2195: @node Format Directives
 2196: @c @subsection Format Directives
 2197: @subsection 書式指示語
 2198: 
 2199: @c @samp{-printf} and @samp{-fprintf} support the following format
 2200: @c directives to print information about the file being processed.  The C
 2201: @c @code{printf} function, field width and precision specifiers are
 2202: @c supported, as applied to string (%s) types. That is, you can specify
 2203: @c "minimum field width"."maximum field width" for each directive.
 2204: @c Format flags (like @samp{#} for example) may not work as you expect
 2205: @c because many of the fields, even numeric ones, are printed with %s.
 2206: @c The format flag @samp{-} does work; it forces left-alignment of the
 2207: @c field.
 2208: @c 
 2209: @samp{-printf}と@samp{-fprintf}は,処理しているファイルに関する情報を出
 2210: 力するため,以下の書式指示語をサポートします.Cの@code{printf}関数での
 2211: フィールド幅と精度指定は,文字列(@samp{%s})の形式に適用するようにサポー
 2212: トされています.つまり,それぞれの指示語に対する"最小フィールド幅"."最
 2213: 大フィールド幅"を指定することが可能です.書式フラグ(例えば@samp{#})は,
 2214: 多くのフィールドは@samp{%s}で出力されるので,数値的なものであっても期待
 2215: したように動作しません.書式フラグ@samp{-}は動作することを意味します.
 2216: それはフィールドを左寄せに強制します.
 2217: 
 2218: @c @samp{%%} is a literal percent sign.  A @samp{%} character followed by
 2219: @c an unrecognised character (i.e. not a known directive or printf field
 2220: @c width and precision specifier), is discarded (but the unrecognised character
 2221: @c is printed), and a warning message is printed to the standard error output
 2222: @c (because it was probably a typo).
 2223: @c 
 2224: @samp{%%}はパーセント記号そのものです.認識できない文字が続く@samp{%}文
 2225: 字(例えば,既知の指示語でも,@code{printf}のフィールド幅や精度指定でも
 2226: ないもの)は削除され(しかし,認識できない文字は出力されます),(おそらく
 2227: 入力ミスのため)標準出力に警告メッセージが出力されます.
 2228: 
 2229: @menu
 2230: * Name Directives::
 2231: * Ownership Directives::
 2232: * Size Directives::
 2233: * Location Directives::
 2234: * Time Directives::
 2235: * Formatting Flags::
 2236: @end menu
 2237: 
 2238: @node Name Directives
 2239: @c @subsubsection Name Directives
 2240: @subsubsection 名前指示語
 2241: 
 2242: @table @code
 2243: @item %p
 2244: @c supports %-X.Yp
 2245: @c 
 2246: @c File's name (not the absolute path name, but the name of the file as
 2247: @c it was encountered by find - that is, as a relative path from one of
 2248: @c the starting points).
 2249: @c 
 2250: ファイル名(絶対パスではなく,@code{find}が見つけたファイル名です - つま
 2251: り,開始点からの相対パスです).
 2252: @item %f
 2253: @c File's name with any leading directories removed (only the last element).
 2254: @c 
 2255: 前置されるディレクトリを削除したファイル名(最後の要素のみ).
 2256: @c supports %-X.Yf
 2257: @item %h
 2258: @c Leading directories of file's name (all but the last element and the
 2259: @c slash before it).  If the file's name contains no slashes (for example
 2260: @c because it was named on the command line and is in the current working
 2261: @c directory), then ``%h'' expands to ``.''.  This prevents ``%h/%f''
 2262: @c expanding to ``/foo'', which would be surprising and probably not
 2263: @c desirable.
 2264: @c 
 2265: ファイル名に前置されるディレクトリ(最後の要素とその前のスラッシュ以外す
 2266: べて).ファイル名にスラッシュが無い(例えば,コマンドラインで指名されて
 2267: いたり,現在のワーキング・ディレクトリにある)場合,@samp{%h}は@samp{.}
 2268: に展開されます.これは,@samp{%h/%f}を@samp{/foo}に展開することが,予想
 2269: 外でおそらく要求されることでないので,そうすることを避けます.
 2270: @c supports %-X.Yh
 2271: @item %P
 2272: @c File's name with the name of the command line argument under which
 2273: @c it was found removed from the beginning.
 2274: @c 
 2275: ファイル名で,それが見つけられたコマンドライン引数の名前は,最初から削
 2276: 除されます.
 2277: @c supports %-X.YP
 2278: @item %H
 2279: @c Command line argument under which file was found.
 2280: @c 
 2281: それによりファイルが見つけられた,コマンドライン引数.
 2282: @c supports %-X.YH
 2283: @end table
 2284: 
 2285: @node Ownership Directives
 2286: @c @subsubsection Ownership Directives
 2287: @subsubsection 所有者指示語
 2288: 
 2289: @table @code
 2290: @item %g
 2291: @c supports %-X.Yg
 2292: @c File's group name, or numeric group ID if the group has no name.
 2293: @c 
 2294: ファイルのグループ名,または名前が無い場合はグループID.
 2295: @item %G
 2296: @c supports %-X.Yg
 2297: @c TODO: Needs to support # flag and 0 flag
 2298: @c 
 2299: @c File's numeric group ID.
 2300: @c 
 2301: ファイルの数値的なグループID.
 2302: @item %u
 2303: @c supports %-X.Yu
 2304: @c File's user name, or numeric user ID if the user has no name.
 2305: @c 
 2306: ファイルのユーザ名,または名前が無い場合はユーザID.
 2307: @item %U
 2308: @c supports %-X.Yu
 2309: @c TODO: Needs to support # flag
 2310: @c 
 2311: @c File's numeric user ID.
 2312: @c 
 2313: ファイルの数値的なユーザID.
 2314: @item %m
 2315: @c full support, including # and 0.
 2316: @c File's permissions (in octal).   If you always want to have a leading
 2317: @c zero on the number, use the '#' format flag, for example '%#m'.
 2318: @c 
 2319: ファイルの権限(八進数).数字の前に常にゼロを前置したい場合,例えば@samp{%#m}の
 2320: ように,@samp{#}書式フラグを使用してください.
 2321: @end table
 2322: 
 2323: @node Size Directives
 2324: @c @subsubsection Size Directives
 2325: @subsubsection サイズ指示語
 2326: 
 2327: @table @code
 2328: @item %k
 2329: @c The amount of disk space used for this file in 1K blocks. Since disk space is
 2330: @c allocated in multiples of the filesystem block size this is usually greater
 2331: @c than %s/1024, but it can also be smaller if the file is a sparse file (that is,
 2332: @c it has ``holes'').
 2333: @c 
 2334: このファイルが使用している1Kブロック単位でのディスク使用量.ディスク領
 2335: 域はファイルシステムのブロックサイズの倍数を占有するので,これは通常
 2336: @samp{%s/1024}より大きくなりますが,ファイルが疎らなファイル(いわゆる
 2337: ``穴''があるもの)の場合は小さくなるはずです.
 2338: @item %b
 2339: @c The amount of disk space used for this file in 512-byte blocks. Since disk
 2340: @c space is allocated in multiples of the filesystem block size this is usually
 2341: @c greater than %s/1024, but it can also be smaller if the file is a sparse file
 2342: @c (that is, it has ``holes'').
 2343: @c 
 2344: このファイルが使用している512バイトブロック単位でのディスク使用量.ディ
 2345: スク領域はファイルシステムのブロックサイズの倍数を占有するので,これは
 2346: 通常@samp{%s/1024}より大きくなりますが,ファイルが疎らなファイル(いわゆ
 2347: る``穴''があるもの)の場合は小さくなるはずです.
 2348: @item %s
 2349: @c File's size in bytes.
 2350: @c 
 2351: バイト単位でのファイルサイズ.
 2352: @end table
 2353: 
 2354: @node Location Directives
 2355: @c @subsubsection Location Directives
 2356: @subsubsection 位置指示語
 2357: 
 2358: @table @code
 2359: @item %d
 2360: @c File's depth in the directory tree (depth below a file named on the
 2361: @c command line, not depth below the root directory).  Files named on the
 2362: @c command line have a depth of 0.  Subdirectories immediately below them
 2363: @c have a depth of 1, and so on.
 2364: @c 
 2365: ディレクトリツリーでのファイルの深さ(コマンドラインで指名されたファイル
 2366: からの深さで,ルートディレクトリからではありません).コマンドラインのファ
 2367: イル名は,深さが0です.直下のサブディレクトリは1となり,そのように続い
 2368: ていきます.
 2369: @item %D
 2370: @c The device number on which the file exists (the @code{st_dev} field of
 2371: @c @code{struct stat}), in decimal.
 2372: @c 
 2373: ファイルが存在するデバイス番号(@code{struct stat}の@code{st_dev}フィー
 2374: ルド)で,十進数です.
 2375: @item %F
 2376: @c Type of the filesystem the file is on; this value can be used for
 2377: @c @samp{-fstype} (@pxref{Directories}).
 2378: @c 
 2379: ファイルが存在するファイルシステム.この値は,@samp{-fstype}で使用する
 2380: ものです(@pxref{Directories}).
 2381: @item %l
 2382: @c Object of symbolic link (empty string if file is not a symbolic link).
 2383: @c 
 2384: シンボリックリンクのオブジェクト(ファイルがシンボリックリンクでない場合
 2385: は空文字です.)
 2386: @item %i
 2387: @c File's inode number (in decimal).
 2388: @c 
 2389: ファイルのinode番号(十進数).
 2390: @item %n
 2391: @c Number of hard links to file.
 2392: @c 
 2393: ファイルのハードリンクの数.
 2394: @item %y 
 2395: @c Type of the file as used with @samp{-type}.   If the file is a symbolic
 2396: @c link, @samp{l} will be printed.
 2397: @c 
 2398: @samp{-type}で使用されるファイルの形式.ファイルがシンボリックリンクの
 2399: 場合,@samp{l}が出力されます.
 2400: @item %Y
 2401: @c Type of the file as used with @samp{-type}.   If the file is a symbolic
 2402: @c link, it is dereferenced.  If the file is a broken symbolic link,
 2403: @c @samp{N} is printed.
 2404: @c 
 2405: @samp{-type}で使用されるファイルの形式.ファイルがシンボリックリンクの
 2406: 場合,リンクをたどります.ファイルが壊れているシンボリックリンクの場合,
 2407: @samp{N}が出力されます.
 2408: @end table
 2409: 
 2410: @node Time Directives
 2411: @c @subsubsection Time Directives
 2412: @subsubsection 時間指示語
 2413: 
 2414: @c Some of these directives use the C @code{ctime} function.  Its output
 2415: @c depends on the current locale, but it typically looks like
 2416: @c 
 2417: これらの指示語にはCの@code{ctime}関数を使用するものもあります.その出力
 2418: は現在のロカールに依存しますが,典型的なものは以下のようになります.
 2419: 
 2420: @example
 2421: Wed Nov  2 00:42:36 1994
 2422: @end example
 2423: 
 2424: @table @code
 2425: @item %a
 2426: @c File's last access time in the format returned by the C @code{ctime} function.
 2427: @c 
 2428: Cの@code{ctime}関数で返される書式での,ファイルが最後にアクセスされた時
 2429: 間.
 2430: @item %A@var{k}
 2431: @c File's last access time in the format specified by @var{k}
 2432: @c (@pxref{Time Formats}). 
 2433: @c 
 2434: @var{k}で指定される書式での,ファイルが最後にアクセスされた時間
 2435: (@pxref{Time Formats}).
 2436: @item %c
 2437: @c File's last status change time in the format returned by the C @code{ctime}
 2438: @c function.
 2439: @c 
 2440: Cの@code{ctime}関数で返される書式での,ファイルのステータスが最後に変更
 2441: された時間.
 2442: @item %C@var{k}
 2443: @c File's last status change time in the format specified by @var{k}
 2444: @c (@pxref{Time Formats}).
 2445: @c 
 2446: @var{k}で指定される書式での,ファイルのステータスが最後に変更された時間
 2447: (@pxref{Time Formats}).
 2448: @item %t
 2449: @c File's last modification time in the format returned by the C @code{ctime}
 2450: @c function.
 2451: @c 
 2452: Cの@code{ctime}関数で返される書式での,ファイルが最後に編集された時間.
 2453: @item %T@var{k}
 2454: @c File's last modification time in the format specified by @var{k} 
 2455: @c (@pxref{Time Formats}). 
 2456: @c 
 2457: @var{k}で指定される書式での,ファイルが最後に編集された時間
 2458: (@pxref{Time Formats}).
 2459: @end table
 2460: 
 2461: @node Time Formats
 2462: @c @subsection Time Formats
 2463: @subsection 時間の書式
 2464: 
 2465: @c Below are the formats for the directives @samp{%A}, @samp{%C}, and
 2466: @c @samp{%T}, which print the file's timestamps.  Some of these formats
 2467: @c might not be available on all systems, due to differences in the C
 2468: @c @code{strftime} function between systems.
 2469: @c 
 2470: 以下は,指示語@samp{%A},@samp{%C},そして@samp{%T}に対する書式で,それ
 2471: はファイルのタイムスタンプを出力します.これらの書式には,Cの
 2472: @code{strftime}関数のシステム間での違いにより,すべてのシステムで利用可
 2473: 能でないものもあります.
 2474: 
 2475: @menu
 2476: * Time Components::
 2477: * Date Components::
 2478: * Combined Time Formats::
 2479: @end menu
 2480: 
 2481: @node Time Components
 2482: @c @subsubsection Time Components
 2483: @subsubsection 時間の内容
 2484: 
 2485: @c The following format directives print single components of the time.
 2486: @c 
 2487: 以下の書式指示語は,時間の単一の内容を出力します.
 2488: 
 2489: @table @code
 2490: @item H
 2491: @c hour (00..23)
 2492: @c 
 2493: 時間(00..23)
 2494: @item I
 2495: @c hour (01..12)
 2496: @c 
 2497: 時間(01..12)
 2498: @item k
 2499: @c hour ( 0..23)
 2500: @c 
 2501: 時間( 0..23)
 2502: @item l
 2503: @c hour ( 1..12)
 2504: @c 
 2505: 時間( 1..12)
 2506: @item p
 2507: @c locale's AM or PM
 2508: @c 
 2509: ロカールの午前や午後
 2510: @item Z
 2511: @c time zone (e.g., EDT), or nothing if no time zone is determinable
 2512: @c 
 2513: タイムゾーン(例えば,EDT),またはタイムゾーンが定義されていない場合は何
 2514: も出力しない.
 2515: @item M
 2516: @c minute (00..59)
 2517: @c 
 2518: 分(00..59)
 2519: @item S
 2520: @c second (00..61)
 2521: @c 
 2522: 秒(00..61)
 2523: @item @@
 2524: @c seconds since Jan. 1, 1970, 00:00 GMT.
 2525: @c 
 2526: 1970年1月1日00:00 GMT以来の秒.
 2527: @end table
 2528: 
 2529: @node Date Components
 2530: @c @subsubsection Date Components
 2531: @subsubsection 日付の内容
 2532: 
 2533: @c The following format directives print single components of the date.
 2534: @c 
 2535: 以下の書式指示語は,日付の単一の内容を出力します.
 2536: 
 2537: @table @code
 2538: @item a
 2539: @c locale's abbreviated weekday name (Sun..Sat)
 2540: @c 
 2541: ロカールの略記された曜日名(Sun..Sat)
 2542: @item A
 2543: @c locale's full weekday name, variable length (Sunday..Saturday)
 2544: @c 
 2545: ロカールの完全な曜日名,可変長(Sunday..Saturday)
 2546: @item b
 2547: @itemx h
 2548: @c locale's abbreviated month name (Jan..Dec)
 2549: @c 
 2550: ロカールの略記された月名(Jan..Dec)
 2551: @item B
 2552: @c locale's full month name, variable length (January..December)
 2553: @c 
 2554: ロカールの完全な月名,可変長(January..December)
 2555: @item m
 2556: @c month (01..12)
 2557: @c 
 2558: 月(01..12)
 2559: @item d
 2560: @c day of month (01..31)
 2561: @c 
 2562: 日(01..31)
 2563: @item w
 2564: @c day of week (0..6)
 2565: @c 
 2566: 曜日(0..6)
 2567: @item j
 2568: @c day of year (001..366)
 2569: @c 
 2570: 年間の日付(001..366)
 2571: @item U
 2572: @c week number of year with Sunday as first day of week (00..53)
 2573: @c 
 2574: 日曜日を週の最初の日とした時の,年間の週数(00..53)
 2575: @item W
 2576: @c week number of year with Monday as first day of week (00..53)
 2577: @c 
 2578: 月曜日を週の最初の日とした時の,年間の週数(00..53)
 2579: @item Y
 2580: @c year (1970@dots{})
 2581: @c 
 2582: 年(1970@dots{})
 2583: @item y
 2584: @c last two digits of year (00..99)
 2585: @c 
 2586: 年の最後の二桁(00..99)
 2587: @end table
 2588: 
 2589: @node Combined Time Formats
 2590: @c @subsubsection Combined Time Formats
 2591: @subsubsection 時間の書式の組み合わせ
 2592: 
 2593: @c The following format directives print combinations of time and date
 2594: @c components. 
 2595: @c 
 2596: 以下の書式指示語は,時間と日付の組み合わせを出力します.
 2597: 
 2598: @table @code
 2599: @item r
 2600: @c time, 12-hour (hh:mm:ss [AP]M)
 2601: @c 
 2602: 時間,12時間制(hh:mm:ss [AP]M)
 2603: @item T
 2604: @c time, 24-hour (hh:mm:ss)
 2605: @c 
 2606: 時間,24時間制(hh:mm:ss)
 2607: @item X
 2608: @c locale's time representation (H:M:S)
 2609: @c 
 2610: ロカールの時間表現(H:M:S)
 2611: @item c
 2612: @c locale's date and time (Sat Nov 04 12:02:33 EST 1989)
 2613: @c 
 2614: ロカールの日付と時間(Sat Nov 04 12:02:33 EST 1989)
 2615: @item D
 2616: @c date (mm/dd/yy)
 2617: @c 
 2618: 日付(mm/dd/yy)
 2619: @item x
 2620: @c locale's date representation (mm/dd/yy)
 2621: @c 
 2622: ロカールの日付表現(mm/dd/yy)
 2623: @item +
 2624: @c Date and time, separated by '+', for example `2004-04-28+22:22:05'.
 2625: @c The time is given in the current timezone (which may be affected by
 2626: @c setting the TZ environment variable).  This is a GNU extension.
 2627: @c 
 2628: 日付と時間を@samp{+}で分離し,例えば@samp{2004-04-28+22:22:05}とします.
 2629: 時間は,現在のタイムゾーンで与えられたものになります(TZ環境変数で設定さ
 2630: れたものに影響されるかもしれません).これはGNUの拡張です.
 2631: @end table
 2632: 
 2633: @node Formatting Flags
 2634: @c @subsubsection Formatting Flags
 2635: @subsubsection 書式フラグ
 2636: 
 2637: @c The @samp{%m} and @samp{%d} directives support the @samp{#}, @samp{0}
 2638: @c and @samp{+} flags, but the other directives do not, even if they
 2639: @c print numbers.  Numeric directives that do not support these flags
 2640: @c include 
 2641: @c 
 2642: @samp{%m}と@samp{%d}指示語は,@samp{#},@samp{0},そして@samp{+}フラグ
 2643: をサポートしますが,それ以外の指示語は数値を出力するものでもサポートし
 2644: ません.これらのフラグをサポートしない数値の指示語には,以下のものが含
 2645: まれます.
 2646: 
 2647: @c @samp{G},
 2648: @c @samp{U},
 2649: @c @samp{b},
 2650: @c @samp{D},
 2651: @c @samp{k} and
 2652: @c @samp{n}.
 2653: @c 
 2654: @samp{G},@samp{U},@samp{b},@samp{D},@samp{k},そして@samp{n}です.
 2655: 
 2656: @c All fields support the format flag @samp{-}, which makes fields
 2657: @c left-aligned.  That is, if the field width is greater than the actual
 2658: @c contents of the field, the requisite number of spaces are printed
 2659: @c after the field content instead of before it.
 2660: @c 
 2661: すべてのフィールドは書式化フラグ@samp{-}をサポートし,それは左寄せの
 2662: フィールドになります.つまり,フィールドの幅がフィールドの実際の内容よ
 2663: り大きい場合,必要なスペースがフィールド内容のの前ではなく後に出力され
 2664: ます.
 2665: 
 2666: @node Run Commands
 2667: @c @section Run Commands
 2668: @section コマンドの実行
 2669: 
 2670: @c You can use the list of file names created by @code{find} or
 2671: @c @code{locate} as arguments to other commands.  In this way you can
 2672: @c perform arbitrary actions on the files.
 2673: @c 
 2674: @code{find}や@code{locate}で作成されたファイル名のリストを,他のコマン
 2675: ドへの引数として使用することが可能です.この方法で,ファイルへの任意の
 2676: 動作を実行することが可能です.
 2677: 
 2678: @menu
 2679: * Single File::
 2680: * Multiple Files::
 2681: * Querying::
 2682: @end menu
 2683: 
 2684: @node Single File
 2685: @c @subsection Single File
 2686: @subsection 単一のファイル
 2687: 
 2688: @c Here is how to run a command on one file at a time.
 2689: @c 
 2690: ここに一つのファイルへのコマンドを,一度に実行する方法があります.
 2691: 
 2692: @deffn Action -execdir command ;
 2693: @c Execute @var{command}; true if 0 status is returned.  @code{find} takes
 2694: @c all arguments after @samp{-exec} to be part of the command until an
 2695: @c argument consisting of @samp{;} is reached.  It replaces the string
 2696: @c @samp{@{@}} by the current file name being processed everywhere it
 2697: @c occurs in the command.  Both of these constructions need to be escaped
 2698: @c (with a @samp{\}) or quoted to protect them from expansion by the shell.
 2699: @c The command is executed in the directory in which @code{find} was run.
 2700: @c 
 2701: @var{command}を実行します.0のステータスが返される場合は真です.
 2702: @code{find}は,@samp{-exec}以降のすべての引数を,@samp{;}までの内容から
 2703: 成り立つ引数をコマンドとして受けとります.それは,文字列@samp{@{@}}を現
 2704: 在のファイル名で置換し,コマンドにそれがある場所で処理されます.これら
 2705: の構文はどちらも,シェルによる展開を防ぐために(@samp{\}を用いて)エスケー
 2706: プしたり,引用符で囲む必要があります.コマンドは,@code{find} を実行し
 2707: ているディレクトリで実行されます.
 2708: 
 2709: @c For example, to compare each C header file in the current directory with
 2710: @c the file @file{/tmp/master}:
 2711: @c 
 2712: 例えば,現在のディレクトリのそれぞれのCのヘッダファイルを,ファイル
 2713: @file{/tmp/master}と比較するために以下のようにします.
 2714: 
 2715: @example
 2716: find . -name '*.h' -execdir diff -u '@{@}' /tmp/master ';'
 2717: @end example
 2718: @end deffn
 2719: 
 2720: @c Another similar option, @samp{-exec} is supported, but is less secure.
 2721: @c @xref{Security Considerations}, for a discussion of the security
 2722: @c problems surrounding @samp{-exec}.
 2723: @c 
 2724: それに似たもう一つのオプションとして,@samp{-exec}がサポートされていま
 2725: すが,余りセキュリティーが高くありません.@samp{-exec}に関するセキュリ
 2726: ティーの問題の議論は,@xref{Security Considerations}.
 2727: 
 2728: @deffn Action -exec command ;
 2729: @c This insecure variant of the @samp{-execdir} action is specified by
 2730: @c POSIX.  The main difference is that the command is executed in the
 2731: @c directory from which @code{find} was invoked, meaning that @samp{@{@}}
 2732: @c is expanded to a relative path starting with the name of one of the
 2733: @c starting directories, rather than just the basename of the matched
 2734: @c file.
 2735: @c 
 2736: この,余りセキュリティーの高くない@samp{-execdir}アクションの亜種は,
 2737: POSIXで指定されているものです.主な違いは,@code{find}が呼び出されたディ
 2738: レクトリでコマンドが実行されるということで,@samp{@{@}}が,マッチしたファ
 2739: イルのベース名ではなく,開始ディレクトリからの相対パスに展開されること
 2740: を意味します.
 2741: @end deffn
 2742: 
 2743: 
 2744: @node Multiple Files
 2745: @c @subsection Multiple Files
 2746: @subsection 複数のファイル
 2747: 
 2748: @c Sometimes you need to process files one of the time.  But usually this
 2749: @c is not necessary, and, it is faster to run a command on as many files
 2750: @c as possible at a time, rather than once per file.  Doing this saves on
 2751: @c the time it takes to start up the command each time.
 2752: @c 
 2753: 一度に一つずつのファイルを処理する必要がある時もあります.しかし,これ
 2754: は不要で,ファイルごとにコマンドを実行するより,できるだけ多くのファイ
 2755: ルをコマンドで実行した方が速くなります.こうすることで,それぞれのコマ
 2756: ンドを開始する時間を稼ぐことになります.
 2757: 
 2758: @c The @samp{-execdir} and @samp{-exec} actions have variants that build
 2759: @c command lines containing as many matched files as possible.  
 2760: @c 
 2761: @samp{-execdir}と@samp{-exec}アクションには,できるだけ多くのマッチした
 2762: ファイルを含むコマンドラインを構築する亜種があります.
 2763: 
 2764: @deffn Action -execdir command @{@} +
 2765: @c This works as for @samp{-execdir command ;}, except that the
 2766: @c @samp{@{@}} at the end of the command is expanded to a list of names
 2767: @c of matching files.  This expansion is done in such a way as to avoid
 2768: @c exceeding the maximum command line length available on the system.
 2769: @c Only one @samp{@{@}} is allowed within the command, and it must appear
 2770: @c at the end, immediately before the @samp{+}.  A @samp{+} appearing in
 2771: @c any position other than immediately after @samp{@{@}} is not
 2772: @c considered to be special (that is, it does not terminate the command).
 2773: @c 
 2774: これは@samp{-execdir command ;}と同じように動作しますが,コマンドの終わ
 2775: りの@samp{@{@}}はマッチしたファイルの名前のリストになります.この展開は,
 2776: システムで利用可能なコマンドラインの最大の長さを越えないように行われま
 2777: す.コマンドには一つの@samp{@{@}}だけが可能で,@samp{+}の直前に,最後に
 2778: 書く必要があります.@samp{@{@}}直後以外の位置にある@samp{+}は,特別扱い
 2779: されません(つまり,コマンドの終端ではありません).
 2780: @end deffn
 2781: 
 2782: 
 2783: @deffn Action -exec command @{@} +
 2784: @c This insecure variant of the @samp{-execdir} action is specified by
 2785: @c POSIX.  The main difference is that the command is executed in the
 2786: @c directory from which @code{find} was invoked, meaning that @samp{@{@}}
 2787: @c is expanded to a relative path starting with the name of one of the
 2788: @c starting directories, rather than just the basename of the matched
 2789: @c file.
 2790: @c 
 2791: この,余りセキュリティーの高くない@samp{-execdir}アクションの亜種は,
 2792: POSIXで指定されているものです.主な違いは,@code{find}が呼び出されたディ
 2793: レクトリでコマンドが実行されるということで,@samp{@{@}}が,マッチしたファ
 2794: イルのベース名ではなく,開始ディレクトリからの相対パスに展開されること
 2795: を意味します.
 2796: @end deffn
 2797: 
 2798: @c Before @code{find} exits, any partially-built command lines are
 2799: @c executed.  This happens even if the exit was caused by the
 2800: @c @samp{-quit} action.  However, some types of error (for example not
 2801: @c being able to invoke @code{stat()} on the current directory) can cause
 2802: @c an immediate fatal exit.  In this situation, any partially-built
 2803: @c command lines will not be invoked (this prevents possible infinite
 2804: @c loops).
 2805: @c 
 2806: @code{find}が終了する前に,部分的に構築されたコマンドラインが実行されま
 2807: す.これは,@samp{-quit}アクションで終了された場合もそうなります.しか
 2808: し,エラーの形式によっては(例えば@code{stat()}の呼び出しがカレントディ
 2809: レクトリで不可能),直後に致命的な終了になります.この状況では,部分的に
 2810: 構築されたコマンド莱因は呼び出されません(これで,無限ループを抑止しま
 2811: す).
 2812: 
 2813: @c Another, but less secure, way to run a command on more than one file
 2814: @c at once, is to use the @code{xargs} command, which is invoked like this:
 2815: @c 
 2816: もう一つの,余りセキュリティは高くありませんが,一度に一つ以上のファイ
 2817: ルでコマンドを実行する方法は,@code{xargs}コマンドを使用する方法で,以
 2818: 下のように呼び出します.
 2819: 
 2820: @example
 2821: xargs @r{[}@var{option}@dots{}@r{]} @r{[}@var{command} @r{[}@var{initial-arguments}@r{]}@r{]}
 2822: @end example
 2823: 
 2824: @c @code{xargs} normally reads arguments from the standard input.  These
 2825: @c arguments are delimited by blanks (which can be protected with double
 2826: @c or single quotes or a backslash) or newlines.  It executes the
 2827: @c @var{command} (default is @file{/bin/echo}) one or more times with any
 2828: @c @var{initial-arguments} followed by arguments read from standard
 2829: @c input.  Blank lines on the standard input are ignored.
 2830: @c 
 2831: @code{xargs}は通常,標準入力から引数を読み込みます.これらの引数は空白
 2832: (それは,ダブルクオートやシングルクオートまたはバックスラッシュで保護可
 2833: 能)や改行で分離されています.それは@var{command} (デフォルトで
 2834: @file{/bin/echo})を,標準入力から読み込まれた引数が続くあらゆる
 2835: @var{initial-arguments}を用いて,一回以上実行します.標準入力の空白行は
 2836: 無視されます.
 2837: 
 2838: @c Instead of blank-delimited names, it is safer to use @samp{find -print0}
 2839: @c or @samp{find -fprint0} and process the output by giving the @samp{-0}
 2840: @c or @samp{--null} option to GNU @code{xargs}, GNU @code{tar}, GNU
 2841: @c @code{cpio}, or @code{perl}.  The @code{locate} command also has a
 2842: @c @samp{-0} or @samp{--null} option which does the same thing.
 2843: @c 
 2844: 空白の分離名の代わりに,@samp{find -print0}や@samp{find -fprint0}を使用
 2845: し,GNU @code{xargs},GNU @code{tar},GNU @code{cpio},または
 2846: @code{perl}へ,@samp{-0}や@samp{--null}オプションを与えて,出力を処理し
 2847: た方が安全です.@code{locate}コマンドにも,同じことを行う@samp{-0}や
 2848: @samp{--null}オプションがあります.
 2849: 
 2850: @c You can use shell command substitution (backquotes) to process a list of
 2851: @c arguments, like this:
 2852: @c 
 2853: 以下のように,引数リストを処理するためシェルコマンドの置換(バッククオー
 2854: ト)を使用することが可能です.
 2855: 
 2856: @example
 2857: grep -l sprintf `find $HOME -name '*.c' -print`
 2858: @end example
 2859: 
 2860: @c However, that method produces an error if the length of the @samp{.c}
 2861: @c file names exceeds the operating system's command-line length limit.
 2862: @c @code{xargs} avoids that problem by running the command as many times as
 2863: @c necessary without exceeding the limit:
 2864: @c 
 2865: しかし,その方法は,@samp{.c}ファイル名の長さが,オペレーティングシステ
 2866: ムのコマンドラインの長さの制限を超過する場合,エラーが生じるでしょう.
 2867: @code{xargs}は,制限を超過しないようにするために必要なだけコマンドを実
 2868: 行することで,その問題を避けます.
 2869: 
 2870: @example
 2871: find $HOME -name '*.c' -print | xargs grep -l sprintf
 2872: @end example
 2873: 
 2874: @c However, if the command needs to have its standard input be a terminal
 2875: @c (@code{less}, for example), you have to use the shell command
 2876: @c substitution method or use the @samp{--arg-file} option of
 2877: @c @code{xargs}.
 2878: @c 
 2879: しかし,標準入力が端末であることを必要とするコマンド(例えば,
 2880: @code{less})の場合,シェルコマンドの置換の手法や,@code{xargs}の
 2881: @samp{--arg-file}オプションを使用する必要があります.
 2882: 
 2883: @c The @code{xargs} command will process all its input, building command
 2884: @c lines and executing them, unless one of the commands exits with a
 2885: @c status of 255 (this will cause xargs to issue an error message and
 2886: @c stop) or it reads a line contains the end of file string specified
 2887: @c with the @samp{--eof} option. 
 2888: @c 
 2889: @code{xargs}コマンドは,コマンドが255のステータスで終了したり
 2890: (@command{xargs}がエラーメッセージを出力し停止しています),ファイルの終
 2891: わりとなる@samp{--eof}オプションで指定されている文字列を含んでいる行を
 2892: 読み込むまでは,すべての入力を処理し,コマンドラインを構築し,それを実
 2893: 行します.
 2894: 
 2895: @menu
 2896: * Unsafe File Name Handling::
 2897: * Safe File Name Handling::
 2898: * Unusual Characters in File Names::
 2899: * Limiting Command Size::
 2900: * Interspersing File Names::
 2901: @end menu
 2902: 
 2903: @node Unsafe File Name Handling
 2904: @c @subsubsection Unsafe File Name Handling
 2905: @subsubsection 安全でないファイル名の扱い
 2906: 
 2907: @c Because file names can contain quotes, backslashes, blank characters,
 2908: @c and even newlines, it is not safe to process them using @code{xargs} in its
 2909: @c default mode of operation.  But since most files' names do not contain
 2910: @c blanks, this problem occurs only infrequently.  If you are only
 2911: @c searching through files that you know have safe names, then you need not
 2912: @c be concerned about it.  
 2913: @c 
 2914: ファイル名には,引用符,バックスラッシュ,空白文字,そして改行でさえ含
 2915: めることが可能なので,処理のデフォルトモードで@code{xargs}を使用しなが
 2916: らそれを処理することは安全ではありません.しかし,ほとんどのファイル名
 2917: は空白を含まないので,この問題は滅多に発生しません.安全なファイル名だ
 2918: と知っているファイルを検索している場合のみ,それについて悩む必要はあり
 2919: ません.
 2920: 
 2921: @c This example is adapted from:
 2922: @c From: pfalstad@stone.Princeton.EDU (Paul John Falstad)
 2923: @c Newsgroups: comp.unix.shell
 2924: @c Subject: Re: Beware xargs security holes
 2925: @c Date: 16 Oct 90 19:12:06 GMT
 2926: @c 
 2927: @c In many applications, if @code{xargs} botches processing a file because
 2928: @c its name contains special characters, some data might be lost.  The
 2929: @c importance of this problem depends on the importance of the data and
 2930: @c whether anyone notices the loss soon enough to correct it.  However,
 2931: @c here is an extreme example of the problems that using blank-delimited
 2932: @c names can cause.  If the following command is run daily from
 2933: @c @code{cron}, then any user can remove any file on the system:
 2934: @c 
 2935: 応用する際は,名前に特殊文字を含んでいるため,@code{xargs}ファイルをう
 2936: まく処理できない場合も多く,失われるデータもあります.この問題の重要性
 2937: は,データの重要性に依存し,それを訂正するためにはできるだけ速く,失っ
 2938: たものに気づくかに依存します.しかし,ここに,空白で分離した名前の使用
 2939: で引き起こされる究極の例があります.以下のコマンドが,毎日@code{cron}で
 2940: 実行される場合,あらゆるユーザは任意のファイルを削除することが可能です.
 2941: 
 2942: @example
 2943: find / -name '#*' -atime +7 -print | xargs rm
 2944: @end example
 2945: 
 2946: @c For example, you could do something like this:
 2947: @c 
 2948: 例えば,以下のようなことが可能でしょう.
 2949: 
 2950: @example
 2951: eg$ echo > '#
 2952: vmunix'
 2953: @end example
 2954: 
 2955: @noindent
 2956: @c and then @code{cron} would delete @file{/vmunix}, if it ran
 2957: @c @code{xargs} with @file{/} as its current directory.
 2958: @c 
 2959: @file{/}を現在のディレクトリとして,@code{xargs}を実行してしまった場合,
 2960: そして,@code{cron}は@file{/vmunix}を削除するでしょう.
 2961: 
 2962: @c To delete other files, for example @file{/u/joeuser/.plan}, you could do
 2963: @c this:
 2964: @c 
 2965: 他のファイルを削除するために,例えば@file{/u/joeuser/.plan}は,以下のよ
 2966: うにすることで可能でしょう.
 2967: 
 2968: @example
 2969: eg$ mkdir '#
 2970: '
 2971: eg$ cd '#
 2972: '
 2973: eg$ mkdir u u/joeuser u/joeuser/.plan'
 2974: '
 2975: eg$ echo > u/joeuser/.plan'
 2976: /#foo'
 2977: eg$ cd ..
 2978: eg$ find . -name '#*' -print | xargs echo
 2979: ./# ./# /u/joeuser/.plan /#foo
 2980: @end example
 2981: 
 2982: @node Safe File Name Handling
 2983: @c @subsubsection Safe File Name Handling
 2984: @subsubsection 安全なファイル名の扱い
 2985: 
 2986: @c Here is how to make @code{find} output file names so that they can be
 2987: @c used by other programs without being mangled or misinterpreted.  You can
 2988: @c process file names generated this way by giving the @samp{-0} or
 2989: @c @samp{--null} option to GNU @code{xargs}, GNU @code{tar}, GNU
 2990: @c @code{cpio}, or @code{perl}.
 2991: @c 
 2992: @code{find}が出力したファイル名を,他のプログラムでめちゃくちゃにされた
 2993: り誤解されたりしないで,他のプログラムで使用可能にする方法は以下のよう
 2994: になります.この方法で生成されたファイル名に,@samp{-0}や@samp{--null}
 2995: オプションを,GNU @code{xargs},GNU @code{tar},GNU @code{cpio},または,
 2996: @code{perl} に渡すことで,処理することが可能です.
 2997: 
 2998: @deffn Action -print0
 2999: @c True; print the full file name on the standard output, followed by a
 3000: @c null character.
 3001: @c 
 3002: 真です.標準出力の完全なファイル名にヌル文字を続けて出力します.
 3003: @end deffn
 3004: 
 3005: @deffn Action -fprint0 file
 3006: @c True; like @samp{-print0} but write to @var{file} like @samp{-fprint}
 3007: @c (@pxref{Print File Name}).
 3008: @c 
 3009: 真です.@samp{-print0}ににていますが,@var{file}を@samp{-fprint}のように
 3010: 書き出します(@pxref{Print File Name}).
 3011: @end deffn
 3012: 
 3013: @c As of findutils version 4.2.4, the @code{locate} program also has a
 3014: @c @samp{--null} option which does the same thing.  For similarity with
 3015: @c @code{xargs}, the short form of the option @samp{-0} can also be used.
 3016: @c 
 3017: findutilsのバージョン4.2.4からは,@code{locate}プログラムにも同様なこと
 3018: を行う@samp{--null}オプションがあります.@code{xargs}と同様,短い形式の
 3019: オプション@samp{-0}も使用することが可能です.
 3020: 
 3021: @c If you want to be able to handle file names safely but need to run
 3022: @c commands which want to be connected to a terminal on their input, you
 3023: @c can use the @samp{--arg-file} option to @code{xargs} like this:
 3024: @c 
 3025: ファイル名を安全に処理したいが,コマンドを入力の終わりに繋げて実行する
 3026: 必要がある場合,以下のように@code{xargs}の@samp{--arg-file}オプションを
 3027: 使用することが可能です.
 3028: 
 3029: @example
 3030: find / -name xyzzy -print0 > list
 3031: xargs --null --arg-file=list munge
 3032: @end example
 3033: 
 3034: @c The example above runs the @code{munge} program on all the files named
 3035: @c @file{xyzzy} that we can find, but @code{munge}'s input will still be
 3036: @c the terminal (or whatever the shell was using as standard input).  If
 3037: @c your shell has the ``process substitution'' feature @samp{<(...)}, you
 3038: @c can do this in just one step:
 3039: @c 
 3040: 上記の例では,見つけることができた@file{xyzzy}と命名されたすべてのファ
 3041: イルで,@code{munge}プログラムを実行しまが,@code{munge}の入力は端末に
 3042: なっています(また,実際にはシェルが標準入力を使用しています).シェルに
 3043: ``処理の代入''機能@samp{<(...)}がある場合,ワンステップで実行することが
 3044: 可能です.
 3045: 
 3046: @example
 3047: xargs --null --arg-file=<(find / -name xyzzy -print0) munge
 3048: @end example
 3049: 
 3050: @node Unusual Characters in File Names
 3051: @c @subsubsection Unusual Characters in File Names
 3052: @subsubsection ファイル名の通常ではない文字
 3053: 
 3054: @c As discussed above, you often need to be careful about how the names
 3055: @c of files are handled by @code{find} and other programs.  If the output
 3056: @c of @code{find} is not going to another program but instead is being
 3057: @c shown on a terminal, this can still be a problem.  For example, some
 3058: @c character sequences can reprogram the function keys on some terminals.
 3059: @c @xref{Security Considerations}, for a discussion of other security
 3060: @c problems relating to @code{find}.
 3061: @c 
 3062: これまで議論したように,@code{find}とその他のプログラムでのファイル名の
 3063: 処理方法について,頻繁に注意する必要があります.@code{find}の出力を他の
 3064: プログラムに渡さず端末に表示させる場合でも,問題になることがあります.
 3065: 例えば,特定の文字の並びには端末のファンクションキーを再構成するものも
 3066: あります.@code{find}のセキュリティの問題に関する議論は,
 3067: @xref{Security Considerations}.
 3068: 
 3069: @c Unusual characters are handled differently by various
 3070: @c actions, as described below.
 3071: @c 
 3072: 通常ではない文字は,以下の記述のように,さまざまなアクションとは別に処
 3073: 理されます.
 3074: 
 3075: @table @samp
 3076: @item -print0
 3077: @itemx -fprint0
 3078: @c Always print the exact filename, unchanged, even if the output is
 3079: @c going to a terminal.
 3080: @c 
 3081: 常に正確なファイル名を出力し,出力が端末の場合でも変更されません.
 3082: @item -ok
 3083: @itemx -okdir
 3084: @c Always print the exact filename, unchanged.  This will probably change
 3085: @c in a future release.
 3086: @c 
 3087: 常に正確なファイル名を出力し,変更されません.これは将来のリリースで,
 3088: おそらく変更されるでしょう.
 3089: @item -ls
 3090: @itemx -fls
 3091: @c Unusual characters are always escaped.  White space, backslash, and
 3092: @c double quote characters are printed using C-style escaping (for
 3093: @c example @samp{\f}, @samp{\"}).  Other unusual characters are printed
 3094: @c using an octal escape.  Other Printable characters (for @samp{-ls} and
 3095: @c @samp{-fls} these are the characters between octal 041 and 0176) are
 3096: @c printed as-is.
 3097: @c 
 3098: 通常ではない文字は常にエスケープされます.空白,バックスラッシュ,そし
 3099: て二重引用符文字はC形式のエスケープ(例えば,@samp{\f},@samp{\"})で出力
 3100: されます.それ以外の通常ではない文字は,八進数を用いて出力されます.そ
 3101: れ以外の印字可能文字(@samp{-ls}と@samp{-fls}では,八進数の041と0176の間
 3102: の文字)は,そのまま出力されます.
 3103: @item -printf
 3104: @itemx -fprintf
 3105: @c If the output is not going to a terminal, it is printed as-is.
 3106: @c Otherwise, the result depends on which directive is in use:
 3107: @c 
 3108: 出力が端末でない場合,そのまま出力されます.それ以外の場合,結果は使用
 3109: されている指示語に依存します.
 3110: @table @asis
 3111: @item %D, %F, %H, %Y, %y 
 3112: @c These expand to values which are not under control of files' ownwers,
 3113: @c and so are printed as-is.
 3114: @c 
 3115: これらは,ファイルの所有者の制御下には無い値に展開され,そのまま出力さ
 3116: れます.
 3117: @item  %a, %b, %c, %d, %g, %G, %i, %k, %m, %M, %n, %s, %t, %u, %U
 3118: @c These have values which are under the control of files' ownwers but which
 3119: @c cannot be used to send arbitrary data to the terminal, and so these
 3120: @c are printed as-is.  
 3121: @c 
 3122: これらは,ファイルの所有者の制御下にはある値になりますが,端末に不明瞭
 3123: はデータを送るために使用されることが無いので,そのまま出力されます.
 3124: @item %f, %h, %l, %p, %P 
 3125: @c The output of these directives is quoted if the output is going to a
 3126: @c terminal.
 3127: @c 
 3128: これらの指示語の出力は,出力が端末の場合,引用符で囲まれます.
 3129: 
 3130: @c This quoting is performed in the same way as for GNU @code{ls}.   
 3131: @c This is not the same quoting mechanism as the one used for  @samp{-ls} and
 3132: @c @samp{fls}.   If you are able to decide what format to use for the output 
 3133: @c of @code{find} then it is normally better to use @samp{\0} as a terminator
 3134: @c than to use newline, as file names can contain white space and newline
 3135: @c characters.
 3136: @c 
 3137: この引用符で囲む手法は,GNU @code{ls}と同じ方法で実行されます.
 3138: @samp{-ls}と@samp{-fls}で使用される引用符で囲むメカニズムとは異なります.
 3139: @code{find}の出力で使用する書式を決定することが可能な場合,通常は改行で
 3140: はなく@samp{\0}を終端文字として使用するほうが良く,それは,ファイル名に
 3141: は空白や改行文字を含めることができるからです.
 3142: 
 3143: @end table 
 3144: @item -print
 3145: @itemx -fprint
 3146: @c Quoting is handled in the same way as for the @samp{%p} directive
 3147: @c of @samp{-printf} and @samp{-fprintf}.  If you are using @code{find} in
 3148: @c a script or in a situation where the matched files might have
 3149: @c arbitrary names, you should consider using @samp{-print0} instead of
 3150: @c @samp{-print}.
 3151: @c 
 3152: 引用符での囲み方は,@samp{-printf}と@samp{-fprintf}の@samp{%p}指示語と
 3153: 同じ方法で処理されます.スクリプト内やマッチしたファイルが不明瞭な名前
 3154: を持つ状況で@code{find}を使用している場合,@samp{-print}の代わりに
 3155: @samp{-print0}の使用を検討すべきでしょう.
 3156: @end table
 3157: 
 3158: @c The @code{locate} program quotes and escapes unusual characters in
 3159: @c file names in the same way as @code{find}'s @samp{-print} action.
 3160: @c 
 3161: @code{locate}プログラムは,@code{find}の@samp{-print}アクションと同じ方
 3162: 法で,ファイル名の通常ではない文字を引用符で囲んだり,エスケープしたり
 3163: します.
 3164: 
 3165: @c The behaviours described above may change soon, as the treatment of
 3166: @c unprintable characters is harmonised for @samp{-ls}, @samp{-fls},
 3167: @c @samp{-print}, @samp{-fprint}, @samp{-printf} and @samp{-fprintf}.
 3168: @c 
 3169: これまで記述してきた動作はまもなく変更される可能性があり,それは,印字
 3170: 不能な文字列の処理を,@samp{-ls},@samp{-fls},@samp{-print},
 3171: @samp{-fprint},@samp{-printf},そして@samp{-fprintf}で調和させるためで
 3172: す.
 3173: 
 3174: @node Limiting Command Size
 3175: @c @subsubsection Limiting Command Size
 3176: @subsubsection コマンドサイズの制限
 3177: 
 3178: @c @code{xargs} gives you control over how many arguments it passes to the
 3179: @c command each time it executes it.  By default, it uses up to
 3180: @c @code{ARG_MAX} - 2k, or 128k, whichever is smaller, characters per
 3181: @c command.  It uses as many lines and arguments as fit within that limit.
 3182: @c The following options modify those values.
 3183: @c 
 3184: @code{xargs}で,それぞれの実行時にコマンドに渡す引数の数を制御すること
 3185: ができます.デフォルトで,@code{ARG_MAX} - 2k,または128kまでの小さい方
 3186: を,コマンドごとの文字として使用します.それは,制限以内のできるだけ多
 3187: くの行と引数を使用します.以下のオプションはこれらの値を変更します.
 3188: 
 3189: @table @code
 3190: @item --no-run-if-empty
 3191: @itemx -r
 3192: @c If the standard input does not contain any nonblanks, do not run the
 3193: @c command.  By default, the command is run once even if there is no input.
 3194: @c 
 3195: 標準入力が空白でない文字を含まない場合,コマンドを実行しません.デフォ
 3196: ルトで,入力が無い場合でもコマンドは一度実行されます.
 3197: 
 3198: @item --max-lines@r{[}=@var{max-lines}@r{]}
 3199: @itemx -L@r{[}@var{max-lines}@r{]}
 3200: @itemx -l@r{[}@var{max-lines}@r{]}
 3201: @c Use at most @var{max-lines} nonblank input lines per command line;
 3202: @c @var{max-lines} defaults to 1 if omitted.  Trailing blanks cause an
 3203: @c input line to be logically continued on the next input line, for the
 3204: @c purpose of counting the lines.  Implies @samp{-x}.   The preferred
 3205: @c name for this option is @samp{-L} as this is specified by POSIX.  This
 3206: @c option should be compatible with @samp{-I} but currently it is not.
 3207: @c 
 3208: 最大@var{max-lines}の空白でない入力行を,コマンドラインごとに使用します.
 3209: 省略された場合,@var{max-lines}のデフォルトは1です.後置される空白は,
 3210: 行を数える目的で,入力行を次の入力行に論理的に連結します.@samp{-x}を暗
 3211: 黙に指定します.より好まれるこのオプションの名前は@samp{-L}で,それは
 3212: POSIXで指定されています.このオプションは@samp{-I}と互換性があるべきで
 3213: すが,現在はそうなっていません.
 3214: 
 3215: @item --max-args=@var{max-args}
 3216: @itemx -n @var{max-args}
 3217: @c Use at most @var{max-args} arguments per command line.  Fewer than
 3218: @c @var{max-args} arguments will be used if the size (see the @samp{-s}
 3219: @c option) is exceeded, unless the @samp{-x} option is given, in which case
 3220: @c @code{xargs} will exit.
 3221: @c 
 3222: 最大@var{max-args}個の引数を,コマンドラインごとに使用します.大きさが
 3223: @var{max-args}を超過した場合,それより小さいものが使用されますが,それ
 3224: は@samp{-x}オプションが与えられていない場合に限り,その場合は
 3225: @code{xargs}は終了します.
 3226: 
 3227: @item --max-chars=@var{max-chars}
 3228: @itemx -s @var{max-chars}
 3229: @c Use at most @var{max-chars} characters per command line, including the
 3230: @c command and initial arguments and the terminating nulls at the ends of
 3231: @c the argument strings.  If you specify a value for this option which is
 3232: @c too large or small, a warning message is printed and the appropriate
 3233: @c upper or lower limit is used instead.
 3234: @c 
 3235: 最大@var{max-chars}文字を,コマンドラインごとに使用し,それはコマンドと
 3236: 最初の引数と引数文字列の最後の終端のヌルを含みます.このオプションに大
 3237: きすぎたり小さすぎたりする値を指定している場合,警告メッセージが出力さ
 3238: れ,代わりに適切な上限や下限が使用されます.
 3239: 
 3240: @item --max-procs=@var{max-procs}
 3241: @itemx -P @var{max-procs}
 3242: @c Run up to @var{max-procs} processes at a time; the default is 1.  If
 3243: @c @var{max-procs} is 0, @code{xargs} will run as many processes as
 3244: @c possible at a time.  Use the @samp{-n}, @samp{-s}, or @samp{-L} option
 3245: @c with @samp{-P}; otherwise chances are that the command will be run only
 3246: @c once.
 3247: @c 
 3248: @var{max-procs}プロセスまで一度に実行します.デフォルトは1です.
 3249: @var{max-procs}が0の場合,@code{xargs}は可能な限り多くのプロセスを,一
 3250: 度に実行します.@samp{-P}とともに,@samp{-n},@samp{-s},または
 3251: @samp{-L}オプションを使用して下さい.そうしない場合,コマンドが実行され
 3252: る機会は,一度しかありません.
 3253: @end table
 3254: 
 3255: @node Interspersing File Names
 3256: @c @subsubsection Interspersing File Names
 3257: @subsubsection 服数のファイル名を分割する
 3258: 
 3259: @c @code{xargs} can insert the name of the file it is processing between
 3260: @c arguments you give for the command.  Unless you also give options to
 3261: @c limit the command size (@pxref{Limiting Command Size}), this mode of
 3262: @c operation is equivalent to @samp{find -exec} (@pxref{Single File}).
 3263: @c 
 3264: @code{xargs}は,処理するファイル名を,コマンドに対して与えた引数の間に
 3265: 挿入することが可能です.コマンドの大きさを制限するオプションを与えてい
 3266: ない場合(@pxref{Limiting Command Size}),このモードの処理は@samp{find
 3267: -exec}と等価です(@pxref{Single File}).
 3268: 
 3269: @table @code
 3270: @item --replace@r{[}=@var{replace-str}@r{]}
 3271: @itemx -i@r{[}@var{replace-str}@r{]}
 3272: @c Replace occurrences of @var{replace-str} in the initial arguments with
 3273: @c names read from the input.  Also, unquoted blanks do not
 3274: @c terminate arguments; instead, the input is split at newlines only.  If
 3275: @c @var{replace-str} is omitted, it defaults to @samp{@{@}} (like for
 3276: @c @samp{find -exec}).  Implies @samp{-x} and @samp{-l 1}.  As an
 3277: @c example, to sort each file the @file{bills} directory, leaving the
 3278: @c output in that file name with @file{.sorted} appended, you could do:
 3279: @c 
 3280: 最初の引数の@var{replace-str}があるところを,入力から読み込まれる名前に
 3281: 置換します.また,引用符で囲まれていない空白は,引数の最後になりません.
 3282: その代わりに,入力は改行だけで分離されます.@var{replace-str}が省略され
 3283: た場合,デフォルトは@samp{@{@}}です(@samp{find -exec}に似ています).
 3284: @samp{-x}と@samp{-l 1}を暗黙に指定します.例えば,@file{bills}ディレク
 3285: トリのそれぞれのファイルをソートし,出力をファイル名に@file{.sorted}を
 3286: 後置したものに書き出す時,以下のようにすることで可能です.
 3287: 
 3288: @example
 3289: find bills -type f | xargs -iXX sort -o XX.sorted XX
 3290: @end example
 3291: 
 3292: @noindent
 3293: @c The equivalent command using @samp{find -execdir} is:
 3294: @c 
 3295: @samp{find -execdir}を使用した等価のコマンドは以下のようになります.
 3296: 
 3297: @example
 3298: find bills -type f -execdir sort -o '@{@}.sorted' '@{@}' ';'
 3299: @end example
 3300: @end table
 3301: 
 3302: @node Querying
 3303: @c @subsection Querying
 3304: @subsection 問い合わせ
 3305: 
 3306: @c To ask the user whether to execute a command on a single file, you can
 3307: @c use the @code{find} primary @samp{-okdir} instead of @samp{-execdir},
 3308: @c and the @code{find} primary @samp{-ok} instead of @samp{-exec}:
 3309: @c 
 3310: ユーザに単一のファイル上でコマンドを実行するかどうかを尋ねるため,
 3311: @code{find}のプライマリ@samp{-execdir}の代わりに@samp{-okdir}を,そして
 3312: @code{find}のプライマリ@samp{-exec}の代わりに@samp{-ok}を使用することが
 3313: 可能です.
 3314: 
 3315: @deffn Action -okdir command ;
 3316: @c Like @samp{-execdir} (@pxref{Single File}), but ask the user first (on
 3317: @c the standard input); if the response does not start with @samp{y} or
 3318: @c @samp{Y}, do not run the command, and return false.
 3319: @c 
 3320: @samp{-execdir}に似ていますが(@pxref{Single File}),ユーザに(標準入力上
 3321: で)最初に尋ねます.応答が@samp{y}や@samp{Y}で始まらない場合,コマンドを
 3322: 実行せず,偽を返します.
 3323: @end deffn
 3324: 
 3325: @deffn Action -ok command ;
 3326: @c This insecure variant of the @samp{-okdir} action is specified by
 3327: @c POSIX.  The main difference is that the command is executed in the
 3328: @c directory from which @code{find} was invoked, meaning that @samp{@{@}}
 3329: @c is expanded to a relative path starting with the name of one of the
 3330: @c starting directories, rather than just the basename of the matched
 3331: @c file.
 3332: @c 
 3333: この,余りセキュリティーの高くない@samp{-okdir}アクションの亜種は,
 3334: POSIXで指定されているものです.主な違いは,@code{find}が呼び出されたディ
 3335: レクトリでコマンドが実行されるということで,@samp{@{@}}が,マッチしたファ
 3336: イルのベース名ではなく,開始ディレクトリからの相対パスに展開されること
 3337: を意味します.
 3338: @end deffn
 3339: 
 3340: @c When processing multiple files with a single command, to query the user
 3341: @c you give @code{xargs} the following option.  When using this option, you
 3342: @c might find it useful to control the number of files processed per
 3343: @c invocation of the command (@pxref{Limiting Command Size}).
 3344: @c 
 3345: 単一のコマンドで複数のファイルを処理する時,ユーザに問い合わせるため,
 3346: @code{xargs}に以下のオプションを与えます.このオプションを使用する時,
 3347: コマンドの呼出ごとに処理するファイルの数を制御することが役に立つと分か
 3348: るでしょう.
 3349: 
 3350: @table @code
 3351: @item --interactive
 3352: @itemx -p
 3353: @c Prompt the user about whether to run each command line and read a line
 3354: @c from the terminal.  Only run the command line if the response starts
 3355: @c with @samp{y} or @samp{Y}.  Implies @samp{-t}.
 3356: @c 
 3357: ユーザにそれぞれのコマンドラインを実行するかどうかプロンプトを表示し,
 3358: 端末から一行読み込みます.応答が@samp{y}や@samp{Y}で始まる場合のみコマ
 3359: ンドラインを実行します.暗黙に@samp{-t}が指定されます.
 3360: @end table
 3361: 
 3362: @node Delete Files
 3363: @c @section Delete Files
 3364: @section ファイルの削除
 3365: 
 3366: @deffn Action -delete
 3367: @c Delete files or directories; true if removal succeeded.  If the
 3368: @c removal failed, an error message is issued.
 3369: @c 
 3370: ファイルやディレクトリを削除します.削除に成功した場合は真です.削除に
 3371: 失敗した場合,エラーメッセージが出力されます.
 3372: 
 3373: @c The use of the @samp{-delete} action on the command line automatically
 3374: @c turns on the @samp{-depth} option (@pxref{find Expressions}).
 3375: @c 
 3376: コマンドラインで@samp{-delete}アクションを使用すると,自動的に
 3377: @samp{-depth}オプションがオンになります(@pxref{find Expressions}).
 3378: @end deffn
 3379: 
 3380: @node Adding Tests
 3381: @c @section Adding Tests
 3382: @section テストの追加
 3383: 
 3384: @c You can test for file attributes that none of the @code{find} builtin
 3385: @c tests check.  To do this, use @code{xargs} to run a program that filters
 3386: @c a list of files printed by @code{find}.  If possible, use @code{find}
 3387: @c builtin tests to pare down the list, so the program run by @code{xargs}
 3388: @c has less work to do.  The tests builtin to @code{find} will likely run
 3389: @c faster than tests that other programs perform.
 3390: @c 
 3391: @code{find}の組み込みテストが調査しない,ファイルの属性の調査をすること
 3392: が可能です.こうするために,@code{find}が出力したファイルリストへのフィ
 3393: ルターとなるプログラムを実行するため,@code{xargs}を使用してください.
 3394: @code{xargs}によって実行されるプログラムが行なう仕事を減らすため,リス
 3395: トが少なくなるように,@code{find}の組み込みテストをできるだけ使用して下
 3396: さい.@code{find}の組み込みテストは,他のプログラムが実行するテストより
 3397: 速く実行されるでしょう.
 3398: 
 3399: @c For reasons of efficiency it is often useful to limit the number of
 3400: @c times an external program has to be run.  For this reason, it is often
 3401: @c a good idea to implement ``extended'' tests by using @code{xargs}.
 3402: @c 
 3403: 効率の問題で,外部プログラムの実行回数を制限することが役に立つこともよ
 3404: くあります.このため,@code{xargs}を使用して``拡張''テストを実装するの
 3405: は良い考えです.
 3406: 
 3407: @c For example, here is a way to print the names of all of the unstripped
 3408: @c binaries in the @file{/usr/local} directory tree.  Builtin tests avoid
 3409: @c running @code{file} on files that are not regular files or are not
 3410: @c executable.
 3411: @c 
 3412: 例えば以下に,@file{/usr/local}ディレクトリツリー内のstripされていない
 3413: バイナリの,すべての名前を出力する方法があります.組み込みテストは,通
 3414: 常のファイルでないものや,実行可能でないファイルで,@code{file}を実行す
 3415: ることを避けます.
 3416: 
 3417: @example
 3418: find /usr/local -type f -perm /a=x | xargs file | 
 3419:   grep 'not stripped' | cut -d: -f1
 3420: @end example
 3421: 
 3422: @noindent
 3423: @c The @code{cut} program removes everything after the file name from the
 3424: @c output of @code{file}.
 3425: @c 
 3426: @code{cut}プログラムは,@code{file}の出力からファイル名以降のものすべて
 3427: を削除します.
 3428: 
 3429: @c However, using @code{xargs} can present important security problems
 3430: @c (@pxref{Security Considerations}).  These can be avoided by using
 3431: @c @samp{-execdir}.  The @samp{-execdir} action is also a useful way of
 3432: @c putting your own test in the middle of a set of other tests or actions
 3433: @c for @code{find} (for example, you might want to use @samp{-prune}).
 3434: @c 
 3435: しかし,@code{xargs}を使用することは,セキュリティの重要な問題に遭遇す
 3436: ることもあります(@pxref{Security Considerations}).これらは
 3437: @samp{-execdir}を使用することで回避することが可能です.@samp{-execdir}
 3438: アクションは,他のテスト集の合間や@code{find}のアクションに独自のテスト
 3439: を書くときにも役に立ちます(例えば,@samp{-prune}を使用したいかもしれま
 3440: せん).
 3441: 
 3442: @c Idea from Martin Weitzel.
 3443: @c 
 3444: @c To place a special test somewhere in the middle of a @code{find}
 3445: @c expression, you can use @samp{-execdir} (or, less securely,
 3446: @c @samp{-exec}) to run a program that performs the test.  Because
 3447: @c @samp{-execdir} evaluates to the exit status of the executed program,
 3448: @c you can use a program (which can be a shell script) that tests for a
 3449: @c special attribute and make it exit with a true (zero) or false
 3450: @c (non-zero) status.  It is a good idea to place such a special test
 3451: @c @emph{after} the builtin tests, because it starts a new process which
 3452: @c could be avoided if a builtin test evaluates to false.  
 3453: @c 
 3454: @code{find}の式の中間のどこかで特殊なテストを配置したい場合,テストを実
 3455: 施するプログラムを実行するために,@samp{-execdir} (または,余りセキュリ
 3456: ティの高くない@samp{-exec})を使用することが可能です.@samp{-execdir}は,
 3457: 実行されたプログラムの終了ステータスを評価するので,特殊な属性を検査す
 3458: るプログラム(それは,シェルスクリプトも可能です)を書くことと,真(ゼロ)
 3459: や偽(ゼロ以外)のステータスで終了させることが可能です.そのような特殊な
 3460: テストは,組み込みテストが偽と評価される場合は行なわない新しいプロセス
 3461: を開始するので,それを組み込みテストの@emph{後に}配置することは良い考え
 3462: です.
 3463: 
 3464: @c Here is a shell script called @code{unstripped} that checks whether its
 3465: @c argument is an unstripped binary file:
 3466: @c 
 3467: 以下は,引数がstripされているバイナリファイルかどうかを調査する,
 3468: @code{unstripped}という名前のシェルスクリプトです.
 3469: 
 3470: @example
 3471: #! /bin/sh
 3472: file "$1" | grep -q "not stripped"
 3473: @end example
 3474: 
 3475: 
 3476: @c This script relies on the fact that the shell exits with the status of
 3477: @c the last command in the pipeline, in this case @code{grep}.  The
 3478: @c @code{grep} command exits with a true status if it found any matches,
 3479: @c false if not.  Here is an example of using the script (assuming it is
 3480: @c in your search path).  It lists the stripped executables (and shell
 3481: @c scripts) in the file @file{sbins} and the unstripped ones in
 3482: @c @file{ubins}.
 3483: @c 
 3484: このスクリプトは,パイプラインの最後のコマンドのステータスでシェルが終
 3485: 了することに依存し,この場合@code{grep}になります.@code{grep}は,マッ
 3486: チが見つかる場合は真で終了し,それ以外では偽で終了します.以下にに(サー
 3487: チパスにあると仮定している)スクリプトを利用している例があります.それは,
 3488: ファイル@file{sbins}内のstripされている実行形式と,@file{ubins}内の
 3489: stripされていない実行形式をリストアップします.
 3490: 
 3491: @example
 3492: find /usr/local -type f -perm /a=x \
 3493:   \( -execdir unstripped '@{@}' \; -fprint ubins -o -fprint sbins \)
 3494: @end example
 3495: 
 3496: @node Common Tasks, Databases, Actions, Top
 3497: @c @chapter Common Tasks
 3498: @chapter 一般的な作業
 3499: 
 3500: @c The sections that follow contain some extended examples that both give a
 3501: @c good idea of the power of these programs, and show you how to solve
 3502: @c common real-world problems.
 3503: @c 
 3504: 以下のセクションには,これらのプログラムの能力を利用する際の良い考えを
 3505: 与え,一般的な現実問題を解説する方法を提示している,拡張された例を含ま
 3506: れています.
 3507: 
 3508: @menu
 3509: * Viewing And Editing::
 3510: * Archiving::
 3511: * Cleaning Up::
 3512: * Strange File Names::
 3513: * Fixing Permissions::
 3514: * Classifying Files::
 3515: @end menu
 3516: 
 3517: @node Viewing And Editing
 3518: @c @section Viewing And Editing
 3519: @section 閲覧と編集
 3520: 
 3521: @c To view a list of files that meet certain criteria, simply run your file
 3522: @c viewing program with the file names as arguments.  Shells substitute a
 3523: @c command enclosed in backquotes with its output, so the whole command
 3524: @c looks like this:
 3525: @c 
 3526: 特定の基準を満たすファイルのリストを見るために,引数にファイル名を用い
 3527: て,単純にファイルビューアープログラムを実行します.シェルは,バックク
 3528: オートで囲まれたコマンドを,その出力に置換するので,コマンド全体は以下
 3529: のようになります.
 3530: 
 3531: @example
 3532: less `find /usr/include -name '*.h' | xargs grep -l mode_t`
 3533: @end example
 3534: 
 3535: @noindent
 3536: @c You can edit those files by giving an editor name instead of a file
 3537: @c viewing program:
 3538: @c 
 3539: ファイルビューアープログラムの代わりにエディタの名前を与えることで,こ
 3540: れらのファイルを編集することも可能です.
 3541: 
 3542: @example
 3543: emacs `find /usr/include -name '*.h' | xargs grep -l mode_t`
 3544: @end example
 3545: 
 3546: @c Because there is a limit to the length of any individual command line,
 3547: @c there is a limit to the number of files that can be handled in this
 3548: @c way.  We can get around this difficulty by using xargs like this:
 3549: @c 
 3550: コマンドラインには個別の長さに制限があるので,この方法で処理されるファ
 3551: イル数には制限があります.以下のように@command{xargs}を使用することで,
 3552: この面倒なことを回避します.
 3553: 
 3554: @example
 3555: find /usr/include -name '*.h' | xargs grep -l mode_t > todo
 3556: xargs --arg-file=todo emacs
 3557: @end example
 3558: 
 3559: @c Here, @code{xargs} will run @code{emacs} as many times as necessary to
 3560: @c visit all of the files listed in the file @file{todo}.
 3561: @c 
 3562: これで,@code{xargs}はファイル@file{todo}にリストアップされているすべて
 3563: のファイルに必要な回数,@code{emacs}を実行します.
 3564: 
 3565: @node Archiving
 3566: @c @section Archiving
 3567: @section アーカイブ
 3568: 
 3569: @c You can pass a list of files produced by @code{find} to a file archiving
 3570: @c program.  GNU @code{tar} and @code{cpio} can both read lists of file
 3571: @c names from the standard input---either delimited by nulls (the safe way)
 3572: @c or by blanks (the lazy, risky default way).  To use null-delimited
 3573: @c names, give them the @samp{--null} option.  You can store a file archive
 3574: @c in a file, write it on a tape, or send it over a network to extract on
 3575: @c another machine.
 3576: @c 
 3577: @code{find}で生成したファイルリストを,ファイルアーカイブプログラムに渡
 3578: すことも可能です.GNU @code{tar}と@code{cpio}は,どちらも標準入力からファ
 3579: イル名のリストを読み込むことが可能です---ヌル(安全な方法),または,空白
 3580: (簡単だが危険なデフォルトの方法)のどちらかで分離します.ヌルで名前を分
 3581: 離する方法を使用するため,@samp{--null}オプションを与えてください.ファ
 3582: イルアーカイブをファイルに保存したり,テープに書き出したり,ネットワー
 3583: ク越しの他のマシンに展開したりすることも可能です。
 3584: 
 3585: @c One common use of @code{find} to archive files is to send a list of the
 3586: @c files in a directory tree to @code{cpio}.  Use @samp{-depth} so if a
 3587: @c directory does not have write permission for its owner, its contents can
 3588: @c still be restored from the archive since the directory's permissions are
 3589: @c restored after its contents.  Here is an example of doing this using
 3590: @c @code{cpio}; you could use a more complex @code{find} expression to
 3591: @c archive only certain files.
 3592: @c 
 3593: ファイルをアーカイブする一般的な@code{find}の使用方法は,ディレクトリツ
 3594: リー内のファイルリストを@code{cpio}に送る方法です.所有者がディレクトリ
 3595: に書き込み権限が無い場合は@samp{-depth}を使用し,(その場合)ディレクトリ
 3596: の権限はそのコンテンツのリストア後にリストアされるため,そのコンテンツ
 3597: をアーカイブからリストアすることが可能です.こうするために@code{cpio}使
 3598: 用した例がここにあります.特定のファイルのみアーカイブするために,より
 3599: 複雑な@code{find}の式を使用することも可能です.
 3600: 
 3601: @example
 3602: find . -depth -print0 |
 3603:   cpio --create --null --format=crc --file=/dev/nrst0
 3604: @end example
 3605: 
 3606: @c You could restore that archive using this command:
 3607: @c 
 3608: 以下のコマンドを使用して,そのアーカイブをリストアすることが可能です.
 3609: 
 3610: @example
 3611: cpio --extract --null --make-dir --unconditional \
 3612:   --preserve --file=/dev/nrst0
 3613: @end example
 3614: 
 3615: @c Here are the commands to do the same things using @code{tar}:
 3616: @c 
 3617: 同じことを@code{tar}を使用して行なうコマンドは以下のようになります.
 3618: 
 3619: @example
 3620: find . -depth -print0 |
 3621:   tar --create --null --files-from=- --file=/dev/nrst0
 3622: 
 3623: tar --extract --null --preserve-perm --same-owner \
 3624:   --file=/dev/nrst0
 3625: @end example
 3626: 
 3627: @c Idea from Rick Sladkey.
 3628: @c 
 3629: @c Here is an example of copying a directory from one machine to another:
 3630: @c 
 3631: 一つのマシンから他のマシンに,ディレクトリをコピーする例は以下のように
 3632: なります.
 3633: 
 3634: @example
 3635: find . -depth -print0 | cpio -0o -Hnewc |
 3636:   rsh @var{other-machine} "cd `pwd` && cpio -i0dum"
 3637: @end example
 3638: 
 3639: @node Cleaning Up
 3640: @c @section Cleaning Up
 3641: @section クリーンアップ
 3642: 
 3643: @c Idea from Jim Meyering.
 3644: @c 
 3645: @c This section gives examples of removing unwanted files in various situations.
 3646: @c Here is a command to remove the CVS backup files created when an update
 3647: @c requires a merge:
 3648: @c 
 3649: このセクションでは,さまざまな状況で,不要なファイルを削除する例を提供
 3650: します.マージの要求で更新された時に作成されるCVSバックアップファイルを
 3651: 削除するコマンドは以下のようになります.
 3652: 
 3653: @example
 3654: find . -name '.#*' -print0 | xargs -0r rm -f
 3655: @end example
 3656: 
 3657: @c The command above works, but the following is safer:
 3658: @c 
 3659: 上記のコマンドは動作しますが,以下のものがより安全です.
 3660: 
 3661: @example
 3662: find . -name '.#*' -depth -delete
 3663: @end example
 3664: 
 3665: @c Idea from Franc,ois Pinard.
 3666: @c 
 3667: @c You can run this command to clean out your clutter in @file{/tmp}.  You
 3668: @c might place it in the file your shell runs when you log out
 3669: @c (@file{.bash_logout}, @file{.logout}, or @file{.zlogout}, depending on
 3670: @c which shell you use).
 3671: @c 
 3672: @file{/tmp}内のゴミファイルをきれいにするためにこのコマンドを実行するこ
 3673: とが可能です.ログアウトする時にシェルがそれを実行するよう,(使用してい
 3674: るシェルに依存しますが,@file{.bash_logout},@file{.logout},または
 3675: @file{.zlogout})ファイルに書き出すことも可能です.
 3676: 
 3677: @example
 3678: find /tmp -depth -user "$LOGNAME" -type f -delete 
 3679: @end example
 3680: 
 3681: @c If your @code{find} command removes directories, you may find that 
 3682: @c you get a spurious error message when @code{find} tries to recurse
 3683: @c into a directory that has now been removed.  Using the @samp{-depth}
 3684: @c option will normally resolve this problem.
 3685: @c 
 3686: @code{find}コマンドでディレクトリを削除する場合,@code{find}が削除され
 3687: たディレクトリの再帰的な削除を試みるとき,偽りのエラーメッセージを見る
 3688: かもしれません.@samp{-depth}オプションを使用することで,通常この問題は
 3689: 解決されます.
 3690: 
 3691: @c Idea from Noah Friedman.
 3692: @c 
 3693: @c To remove old Emacs backup and auto-save files, you can use a command
 3694: @c like the following.  It is especially important in this case to use
 3695: @c null-terminated file names because Emacs packages like the VM mailer
 3696: @c often create temporary file names with spaces in them, like @file{#reply
 3697: @c to David J. MacKenzie<1>#}.
 3698: @c 
 3699: 古いEmacsのバックアップファイルと自動保存ファイルを削除するために,以下
 3700: のようなコマンドが使用可能です.VMメーラーのようなEmacsパッケージは,
 3701: @file{#reply to David J. MacKenzie<1>#}のようにスペースを含む一時ファイ
 3702: ルを作成することが多いので,ヌルで終端されているファイル名を使用する方
 3703: 法は,この場合には特に重要です.
 3704: 
 3705: @example
 3706: find ~ \( -name '*~' -o -name '#*#' \) -print0 |
 3707:   xargs --no-run-if-empty --null rm -vf
 3708: @end example
 3709: 
 3710: @c Removing old files from @file{/tmp} is commonly done from @code{cron}:
 3711: @c 
 3712: @file{/tmp}から古いファイルを削除するため,通常は@code{cron}から実行し
 3713: ます.
 3714: 
 3715: @c Idea from Kaveh Ghazi.
 3716: @c 
 3717: @example
 3718: find /tmp /var/tmp -not -type d -mtime +3 -delete
 3719: find /tmp /var/tmp -depth -mindepth 1 -type d -empty -delete
 3720: @end example
 3721: 
 3722: @c The second @code{find} command above uses @samp{-depth} so it cleans out
 3723: @c empty directories depth-first, hoping that the parents become empty and
 3724: @c can be removed too.  It uses @samp{-mindepth} to avoid removing
 3725: @c @file{/tmp} itself if it becomes totally empty.
 3726: @c 
 3727: 上記の二番目の@code{find}コマンドは,空のディレクトリの最初の深度をきれ
 3728: いにするため@samp{-depth}を使用し,それで親が空になり,削除も可能になる
 3729: ことを期待しています.全体が空になった場合,@file{/tmp}自身を削除しない
 3730: ように,@samp{-mindepth}を使用しています.
 3731: 
 3732: @node Strange File Names
 3733: @c @section Strange File Names
 3734: @section 奇妙なファイル名
 3735: 
 3736: @c Idea from:
 3737: @c From: tmatimar@isgtec.com (Ted Timar)
 3738: @c Newsgroups: comp.unix.questions,comp.unix.shell,comp.answers,news.answers
 3739: @c Subject: Unix - Frequently Asked Questions (2/7) [Frequent posting]
 3740: @c Subject: How do I remove a file with funny characters in the filename ?
 3741: @c Date: Thu Mar 18 17:16:55 EST 1993
 3742: @c 
 3743: @c @code{find} can help you remove or rename a file with strange characters
 3744: @c in its name.  People are sometimes stymied by files whose names contain
 3745: @c characters such as spaces, tabs, control characters, or characters with
 3746: @c the high bit set.  The simplest way to remove such files is:
 3747: @c 
 3748: @code{find}は,名前に奇妙な文字を含むファイルを,削除したり名前を変更し
 3749: たりする手助けにもなります.スペース,タブ,制御文字,またはハイビット
 3750: セットを用いた文字のような,もの(文字)を含む名前のファイルに邪魔される
 3751: ときもあります.そのようなファイルを削除する最も簡単な方法は,以下のよ
 3752: うになります.
 3753: 
 3754: @example
 3755: rm -i @var{some*pattern*that*matches*the*problem*file}
 3756: @end example
 3757: 
 3758: @c @code{rm} asks you whether to remove each file matching the given
 3759: @c pattern.  If you are using an old shell, this approach might not work if
 3760: @c the file name contains a character with the high bit set; the shell may
 3761: @c strip it off.  A more reliable way is:
 3762: @c 
 3763: @code{rm}は,与えられたパターンにマッチするそれぞれのファイルを削除する
 3764: かどうか尋ねます.古いシェルを使用している場合で,ファイル名にハイビッ
 3765: トセットを用いた文字を含む場合には,この方法は動作しません.シェルはそ
 3766: れを削除します.より信頼できる方法は,以下のようになります.
 3767: 
 3768: @example
 3769: find . -maxdepth 1 @var{tests} -okdir rm '@{@}' \;
 3770: @end example
 3771: 
 3772: @noindent
 3773: @c where @var{tests} uniquely identify the file.  The @samp{-maxdepth 1}
 3774: @c option prevents @code{find} from wasting time searching for the file in
 3775: @c any subdirectories; if there are no subdirectories, you may omit it.  A
 3776: @c good way to uniquely identify the problem file is to figure out its
 3777: @c inode number; use
 3778: @c 
 3779: ここでの@var{tests}は,ファイルをユニークに識別します.@samp{-maxdepth
 3780: 1}オプションは,@code{find}があらゆるサブディレクトリのファイルを検索す
 3781: ることで,時間を無駄にすることを妨げます.サブディレクトリが無い場合は
 3782: 省略してもかまいません.問題のファイルをユニークに識別する良い方法は,
 3783: そのinode番号を知ることです.以下のように使用します.
 3784: 
 3785: @example
 3786: ls -i
 3787: @end example
 3788: 
 3789: @c Suppose you have a file whose name contains control characters, and you
 3790: @c have found that its inode number is 12345.  This command prompts you for
 3791: @c whether to remove it:
 3792: @c 
 3793: 制御文字を名前に含んでいるファイルがあって,そのinode番号が12345だと分
 3794: かったと仮定します.以下のコマンドは,それを削除するかどうか,プロンプ
 3795: トを表示します.
 3796: 
 3797: @example
 3798: find . -maxdepth 1 -inum 12345 -okdir rm -f '@{@}' \;
 3799: @end example
 3800: 
 3801: @c If you don't want to be asked, perhaps because the file name may contain
 3802: @c a strange character sequence that will mess up your screen when printed,
 3803: @c then use @samp{-execdir} instead of @samp{-okdir}.
 3804: @c 
 3805: ファイル名が奇妙な文字列を含んでいて,出力時にスクリーンが駄目になるた
 3806: め,尋ねられたくない場合は,@samp{-okdir}の代わりに@samp{-execdir}を使
 3807: 用して下さい.
 3808: 
 3809: @c If you want to rename the file instead, you can use @code{mv} instead of
 3810: @c @code{rm}:
 3811: @c 
 3812: そうではなく,ファイルの名前を変更したい場合,@code{rm}の代わりに
 3813: @code{mv}を使用することが可能です.
 3814: 
 3815: @example
 3816: find . -maxdepth 1 -inum 12345 -okdir mv '@{@}' @var{new-file-name} \;
 3817: @end example
 3818: 
 3819: @node Fixing Permissions
 3820: @c @section Fixing Permissions
 3821: @section 権限の修正
 3822: 
 3823: @c Suppose you want to make sure that everyone can write to the directories in a
 3824: @c certain directory tree.  Here is a way to find directories lacking either
 3825: @c user or group write permission (or both), and fix their permissions:
 3826: @c 
 3827: 特定のディレクトリツリーのディレクトリに,誰でも書き込めることを確実に
 3828: したいと仮定します.ユーザまたはグループ(または両方)の権限が無く,それ
 3829: らの権限を修正する方法は以下のようになります.
 3830: 
 3831: @example
 3832: find . -type d -not -perm -ug=w | xargs chmod ug+w
 3833: @end example
 3834: 
 3835: @noindent
 3836: @c You could also reverse the operations, if you want to make sure that
 3837: @c directories do @emph{not} have world write permission.
 3838: @c 
 3839: ディレクトリが誰でも書き込め@emph{ない}ことを確実にしたい場合,反対の処
 3840: 理も可能でしょう.
 3841: 
 3842: @node Classifying Files
 3843: @c @section Classifying Files
 3844: @section ファイルの分類
 3845: 
 3846: @c Idea from:
 3847: @c From: martin@mwtech.UUCP (Martin Weitzel)
 3848: @c Newsgroups: comp.unix.wizards,comp.unix.questions
 3849: @c Subject: Advanced usage of 'find' (Re: Unix security automating script)
 3850: @c Date: 22 Mar 90 15:05:19 GMT
 3851: @c 
 3852: @c If you want to classify a set of files into several groups based on
 3853: @c different criteria, you can use the comma operator to perform multiple
 3854: @c independent tests on the files.  Here is an example:
 3855: @c 
 3856: ファイルの集合を異なる基準でいくつかのグループに分類したい場合,ファイ
 3857: ル上で複数の独立したテストを実行するため,カンマオペレータを使用するこ
 3858: とが可能です.例えば以下のようにします.
 3859: 
 3860: @example
 3861: find / -type d \( -perm -o=w -fprint allwrite , \
 3862:   -perm -o=x -fprint allexec \)
 3863: 
 3864: echo "Directories that can be written to by everyone:"
 3865: cat allwrite
 3866: echo ""
 3867: echo "Directories with search permissions for everyone:"
 3868: cat allexec
 3869: @end example
 3870: 
 3871: @c @code{find} has only to make one scan through the directory tree (which
 3872: @c is one of the most time consuming parts of its work).
 3873: @c 
 3874: @code{find}は,ディレクトリツリー全体を一度走査する必要があるだけです
 3875: (それはその作業で最も時間がかかる部分の一つです).
 3876: 
 3877: @node Databases, File Permissions, Common Tasks, Top
 3878: @c @chapter File Name Databases
 3879: @chapter ファイル名のデータベース
 3880: 
 3881: @c The file name databases used by @code{locate} contain lists of files
 3882: @c that were in particular directory trees when the databases were last
 3883: @c updated.  The file name of the default database is determined when
 3884: @c @code{locate} and @code{updatedb} are configured and installed.  The
 3885: @c frequency with which the databases are updated and the directories for
 3886: @c which they contain entries depend on how often @code{updatedb} is run,
 3887: @c and with which arguments.
 3888: @c 
 3889: @code{locate}で使用されるファイル名のデータベースには,データベースが最
 3890: 後に更新された時の,特定のディレクトリツリー内のファイルのリストが含ま
 3891: れています.データベースのデフォルトファイル名は,@code{locate}と
 3892: @code{updatedb}がコンフィグレーションされインストールされた時に決定され
 3893: ます.データベースが更新される頻度と,項目に含めるディレクトリは,
 3894: @code{updatedb}が実行される頻度と,その引数に依存します.
 3895: 
 3896: @c You can obtain some statistics about the databases by using
 3897: @c @samp{locate --statistics}.
 3898: @c 
 3899: @samp{locate --statistics}を使用することで,データベースの統計情報を得
 3900: ることが可能です.
 3901: 
 3902: @menu
 3903: * Database Locations::
 3904: * Database Formats::
 3905: * Newline Handling::
 3906: @end menu
 3907: 
 3908: 
 3909: @node Database Locations
 3910: @c @section Database Locations
 3911: @section データベースの位置
 3912: 
 3913: @c There can be multiple file name databases.  Users can select which
 3914: @c databases @code{locate} searches using the @code{LOCATE_PATH}
 3915: @c environment variable or a command line option.  The system
 3916: @c administrator can choose the file name of the default database, the
 3917: @c frequency with which the databases are updated, and the directories
 3918: @c for which they contain entries.  File name databases are updated by
 3919: @c running the @code{updatedb} program, typically nightly.
 3920: @c 
 3921: 複数のファイル名のデータベースを存在させることが可能です.ユーザは,
 3922: @code{locate}が検索を行なうデータベースを,@code{LOCATE_PATH}環境変数や
 3923: コマンドラインオプションを使用して選択することが可能です.システム管理
 3924: 者は,デフォルトのデータベースのファイル名,データベースを更新する頻度,
 3925: そして,項目に含めるディレクトリを選択することが可能です.ファイル名の
 3926: データベースは,@code{updatedb}プログラムで,通常夜に実行され更新されま
 3927: す.
 3928: 
 3929: @c In networked environments, it often makes sense to build a database at
 3930: @c the root of each filesystem, containing the entries for that filesystem.
 3931: @c @code{updatedb} is then run for each filesystem on the fileserver where
 3932: @c that filesystem is on a local disk, to prevent thrashing the network.
 3933: @c 
 3934: ネットワーク環境では,ファイルシステムの項目を含めながら,それぞれのルー
 3935: トファイルシステムでデータベースを構築することに意味があります.
 3936: @code{updatedb}は,ネットワークのスラッシングを避けるため,ファイルシス
 3937: テムがローカルディスクにあるファイルサーバの,それぞれのファイルシステ
 3938: ムで実行されます.@code{updatedb}に,それぞれのデータベースが含んでいる
 3939: 項目のディレクトリを選択させるオプションは以下のとおりです.
 3940: 
 3941: @c @xref{Invoking updatedb},
 3942: @c for the description of the options to @code{updatedb}, which specify
 3943: @c which directories would each database contain entries for.
 3944: @c 
 3945: @code{updatedb}のオプションの記述で,項目を含むデータベースがあるディレ
 3946: クトリの指定は,@xref{Invoking updatedb}.
 3947: 
 3948: @node Database Formats
 3949: @c @section Database Formats
 3950: @section データベースの書式
 3951: 
 3952: @c The file name databases contain lists of files that were in particular
 3953: @c directory trees when the databases were last updated.  The file name
 3954: @c database format changed starting with GNU @code{locate} version 4.0 to
 3955: @c allow machines with different byte orderings to share the databases.  The
 3956: @c new GNU @code{locate} can read both the old and new database formats.
 3957: @c However, old versions of @code{locate} and @code{find} produce incorrect
 3958: @c results if given a new-format database.
 3959: @c 
 3960: ファイル名のデータベースには,データベースが最後に更新された時の,特定
 3961: のディレクトリツリーのファイルのリストを含まれます.ファイル名のデータ
 3962: ベースの書式変更は,異なるバイト順序を用いるマシンでも,データベースの
 3963: 共有が可能となるように,GNU @code{locate}バージョン4.0から開始されまし
 3964: た.新しいGNU @code{locate}は,新旧両方のデータベースの書式を読み込むこ
 3965: とが可能です.しかし,古いバージョンの@code{locate}と@code{find}では,
 3966: 新しい書式のデータベースを与えられた場合,間違った結果となります.
 3967: 
 3968: @c If you run @samp{locate --statistics}, the resulting summary indicates
 3969: @c the type of each locate database.  
 3970: @c 
 3971: @samp{locate --statistics}を実行した場合,要約された結果は,それぞれの
 3972: @command{locate}のデータベースの形式を示します.
 3973: 
 3974: @menu
 3975: * New Database Format::
 3976: * Sample Database::
 3977: * Old Database Format::
 3978: @end menu
 3979: 
 3980: @node New Database Format
 3981: @c @subsection New Database Format
 3982: @subsection 新しいデータベースの書式
 3983: 
 3984: @c @code{updatedb} runs a program called @code{frcode} to
 3985: @c @dfn{front-compress} the list of file names, which reduces the database
 3986: @c size by a factor of 4 to 5.  Front-compression (also known as
 3987: @c incremental encoding) works as follows.
 3988: @c 
 3989: @code{updatedb}は,4の要素を5にする@footnote{訳注:原文はby a factor
 3990: of 4 to 5}ことでデータベースの大きさが小さくなるように,ファイル名のリ
 3991: ストを@dfn{前部圧縮(front-compress)}するため,@code{frcode}を実行します.
 3992: 前部圧縮(増分符合化としても知られている)は以下のように動作します.
 3993: 
 3994: @c The database entries are a sorted list (case-insensitively, for users'
 3995: @c convenience).  Since the list is sorted, each entry is likely to share a
 3996: @c prefix (initial string) with the previous entry.  Each database entry
 3997: @c begins with an offset-differential count byte, which is the additional
 3998: @c number of characters of prefix of the preceding entry to use beyond the
 3999: @c number that the preceding entry is using of its predecessor.  (The
 4000: @c counts can be negative.)  Following the count is a null-terminated ASCII
 4001: @c remainder---the part of the name that follows the shared prefix.
 4002: @c 
 4003: データベースの項目は,(ユーザの利便性のため,大文字小文字を識別しないで)
 4004: ソートされているリストです.リストはソートされているので,それぞれの項
 4005: 目は,前の項目と同じ接頭辞(最初の文字列)を共有することがよくあります.
 4006: それぞれのデータベース項目はオフセットバイトの差分の数で始まっていて,
 4007: それは前の項目の更に前のものが使用している数より多くなる,前の項目に前
 4008: 置される接頭辞への追加の文字数です.(数は負になることもあります.) それ
 4009: 以降の数は,ヌルで終端されているASCII文字の残りです---共有している接尾
 4010: 辞以降の名前の部分です.
 4011: 
 4012: @c If the offset-differential count is larger than can be stored in a byte
 4013: @c (+/-127), the byte has the value 0x80 and the count follows in a 2-byte
 4014: @c word, with the high byte first (network byte order).
 4015: @c 
 4016: オフセット差分数がバイト(+/-127)で保存できるものより大きい場合,バイト
 4017: の値が0x80になり,それ以下の2バイトがその数値になっていて,それはハイバ
 4018: イトを最初(ネットワークバイトの順序)にしたものを用います.
 4019: 
 4020: @c Every database begins with a dummy entry for a file called
 4021: @c @file{LOCATE02}, which @code{locate} checks for to ensure that the
 4022: @c database file has the correct format; it ignores the entry in doing the
 4023: @c search.
 4024: @c 
 4025: すべてのデータベースは,@file{LOCATE02}と呼ばれるダミーの項目で始まって
 4026: いて,それは,データベースファイルの書式が正しいことを確認するために,
 4027: @code{locate}が調査するものです.検索時にはその項目は無視されます.
 4028: 
 4029: @c Databases can not be concatenated together, even if the first (dummy)
 4030: @c entry is trimmed from all but the first database.  This is because the
 4031: @c offset-differential count in the first entry of the second and following
 4032: @c databases will be wrong.
 4033: @c 
 4034: 最初の(ダミー)項目を,先頭のデータベース以外からすべて切り取っても,デー
 4035: タベースを連結させることは不可能です.これは,二番目とそれ以降の最初の
 4036: 項目にあるオフセット差分数が間違ってしまうためです.
 4037: 
 4038: @c In the output of @samp{locate --statistics}, the new database format
 4039: @c is referred to as @samp{LOCATE02}.
 4040: @c 
 4041: @samp{locate --statistics}の出力で,新しいデータベースの書式は
 4042: @samp{LOCATE02}として参照します.
 4043: 
 4044: @node Sample Database
 4045: @c @subsection Sample Database
 4046: @subsection サンプルデータベース
 4047: 
 4048: @c Sample input to @code{frcode}:
 4049: @c 
 4050: @code{frcode}へのサンプル入力です.
 4051: @c with nulls changed to newlines:
 4052: 
 4053: @example
 4054: /usr/src
 4055: /usr/src/cmd/aardvark.c
 4056: /usr/src/cmd/armadillo.c
 4057: /usr/tmp/zoo
 4058: @end example
 4059: 
 4060: @c Length of the longest prefix of the preceding entry to share:
 4061: @c 
 4062: 共有するために前置される,最も長い接頭辞の長さは以下のようになります.
 4063: 
 4064: @example
 4065: 0 /usr/src
 4066: 8 /cmd/aardvark.c
 4067: 14 rmadillo.c
 4068: 5 tmp/zoo
 4069: @end example
 4070: 
 4071: @c Output from @code{frcode}, with trailing nulls changed to newlines
 4072: @c and count bytes made printable:
 4073: @c 
 4074: 最後のヌルを改行に変更し,バイトを印字可能文字に変更した場合の,
 4075: @code{frcode}からの出力は以下のようになります.
 4076: 
 4077: @example
 4078: 0 LOCATE02
 4079: 0 /usr/src
 4080: 8 /cmd/aardvark.c
 4081: 6 rmadillo.c
 4082: -9 tmp/zoo
 4083: @end example
 4084: 
 4085: @c (6 = 14 - 8, and -9 = 5 - 14)
 4086: @c 
 4087: (6 = 14 - 8,そして -9 = 5 - 14)
 4088: 
 4089: @node Old Database Format
 4090: @c @subsection Old Database Format
 4091: @subsection 古いデータベースの書式
 4092: 
 4093: @c The old database format is used by Unix @code{locate} and @code{find}
 4094: @c programs and earlier releases of the GNU ones.  @code{updatedb} produces
 4095: @c this format if given the @samp{--old-format} option.
 4096: @c 
 4097: 古いデータベースの書式は,Unixの@code{locate}と@code{find}プログラム,
 4098: そして早期のGNUがリリースしたもので使用されています.@code{updatedb}は,
 4099: @samp{--old-format}オプションが与えられた場合,この書式で生成します.
 4100: 
 4101: @c @code{updatedb} runs programs called @code{bigram} and @code{code} to
 4102: @c produce old-format databases.  The old format differs from the new one
 4103: @c in the following ways.  Instead of each entry starting with an
 4104: @c offset-differential count byte and ending with a null, byte values from
 4105: @c 0 through 28 indicate offset-differential counts from -14 through 14.
 4106: @c The byte value indicating that a long offset-differential count follows
 4107: @c is 0x1e (30), not 0x80.  The long counts are stored in host byte order,
 4108: @c which is not necessarily network byte order, and host integer word size,
 4109: @c which is usually 4 bytes.  They also represent a count 14 less than
 4110: @c their value.  The database lines have no termination byte; the start of
 4111: @c the next line is indicated by its first byte having a value <= 30.
 4112: @c 
 4113: @code{updatedb}は,古い書式のデータベースを生成するために,
 4114: @code{bigram} と@code{code}と呼ばれるプログラムを実行します.古い書式は,
 4115: 新しいものと以下の方式で異なります.オフセット差分数バイトで始まりヌル
 4116: で終るそれぞれの項目の代わりに,-14から14までのオフセット差分数を示す0
 4117: から28の値になります.それ以上の大きなオフセット差分数を示すバイト値は,
 4118: 0x1e (30)で0x80ではありません.大きな数は,ホストのバイト順でソートされ,
 4119: それはネットワークバイトの順序である必要はなく,ホストのワード整数の大
 4120: きさとなっていて,それは通常4バイトです.その値が14より小さいものは表示
 4121: されません.データベースの行には終端バイトがありません.次の行の先頭は,
 4122: 30より小さい値を持つバイトで示されます.
 4123: 
 4124: @c In addition, instead of starting with a dummy entry, the old database
 4125: @c format starts with a 256 byte table containing the 128 most common
 4126: @c bigrams in the file list.  A bigram is a pair of adjacent bytes.  Bytes
 4127: @c in the database that have the high bit set are indexes (with the high
 4128: @c bit cleared) into the bigram table.  The bigram and offset-differential
 4129: @c count coding makes these databases 20-25% smaller than the new format,
 4130: @c but makes them not 8-bit clean.  Any byte in a file name that is in the
 4131: @c ranges used for the special codes is replaced in the database by a
 4132: @c question mark, which not coincidentally is the shell wildcard to match a
 4133: @c single character.
 4134: @c 
 4135: 更に,最初のダミー項目で始まる代わりに,古いデータベース書式は,ファイ
 4136: ルリストで最も一般的な128の@code{bigram}を含んでいる,256バイトの表で始
 4137: まります.@code{bigram}は調整されたバイトの組となっています.ハイビット
 4138: セットを持つデータベースのバイトは,(ハイビットがクリアされてい
 4139: る)@code{bigram}表内部の索引です.@code{bigram}とオフセット差分数の符合
 4140: 化は,これらのデータベースを,新しい書式より20から25%まで小さくしますが,
 4141: 8ビットクリーンにはなりません.特殊コードに使用される範囲にあるファイル
 4142: 名のバイトは,データベース内では疑問符に置換され,それは,単一文字にマッ
 4143: チするシェルのワイルドカードにはマッチしません.
 4144: 
 4145: @c The old format therefore can not faithfully store entries with non-ASCII
 4146: @c characters. It therefore should not be used in internationalized
 4147: @c environments.
 4148: @c 
 4149: そのため古い書式では,ASCII以外の文字の項目を忠実の保存することが不可能
 4150: です.そのため,国際化環境では使用すべきではありません.
 4151: 
 4152: @c The output of @samp{locate --statistics} will give an incorrect count
 4153: @c of the number of filenames containing newlines or high-bit characters
 4154: @c for old-format databases.
 4155: @c 
 4156: @samp{locate --statistics}の出力は,古い書式の改行やハイビット文字を含
 4157: むファイル名の計数で間違えてしまうでしょう.
 4158: 
 4159: @node Newline Handling
 4160: @c @section Newline Handling
 4161: @section 改行の取り扱い
 4162: 
 4163: @c Within the database, filenames are terminated with a null character.
 4164: @c This is the case for both the old and the new format.  
 4165: @c 
 4166: データベースでは,ファイル名はヌル文字で終端されています.これは,古い
 4167: 書式も新しい書式も同じようになっています.
 4168: 
 4169: @c When the new database format is being used, the compression technique
 4170: @c used to generate the database though relies on the ability to sort the
 4171: @c list of files before they are presented to @code{frcode}.
 4172: @c 
 4173: 新しいデータベースの書式が使用されているとき,@code{frcode}に渡す前の,
 4174: ファイルのリストの並べ替え能力に依存する圧縮技術が,データベースの生成
 4175: に使用されています.
 4176: 
 4177: @c If the system's sort command allows its input list of files to be
 4178: @c separated with null characters via the @samp{-z} option, this option
 4179: @c is used and therefore @code{updatedb} and @code{locate} will both
 4180: @c correctly handle filenames containing newlines.  If the @code{sort}
 4181: @c command lacks support for this, the list of files is delimited with
 4182: @c the newline character, meaning that parts of filenames containing
 4183: @c newlines will be incorrectly sorted.  This can result in both
 4184: @c incorrect matches and incorrect failures to match.
 4185: @c 
 4186: システムのソートコマンドが,入力されるファイルのリストを@samp{-z}オプショ
 4187: ンでヌル文字で分離している場合,このオプションが使用され,そのため,
 4188: @code{updatedb}と@code{locate}は両方共,改行を含むファイル名を正しく処
 4189: 理します.@code{sort}コマンドにこのサポートが無い場合,ファイルのリスト
 4190: は改行文字で分離され,つまり,改行を含むファイルの部分は間違って並べ替
 4191: えられます.結果として,正しくないマッチと,正しくない間違ったマッチの
 4192: 両方が発生します.
 4193: 
 4194: @c On the other hand, if you are using the old database format, filenames
 4195: @c with embedded newlines are not correctly handled.  There is no
 4196: @c technical limitation which enforces this, it's just that the
 4197: @c @code{bigram} program has no been updated to support lists of
 4198: @c filenames separated by nulls.
 4199: @c 
 4200: 一方,古いデータベース書式を使用している場合,改行が埋め込まれたファイ
 4201: ル名は正しく処理されません.これを強制する技術的な制限は無いので,
 4202: @code{bigram}プログラムはヌルで分離されているファイル名のリストをサポー
 4203: トするように更新されていません.
 4204: 
 4205: @c So, if you are using the new database format (this is the default) and
 4206: @c your system uses GNU @code{find}, newlines will be correctly handled
 4207: @c at all times.  Otherwise, newlines may not be correctly handled.
 4208: @c 
 4209: そのため,新しいデータベース書式を使用していて(これはデフォルトです),
 4210: システムでGNU @code{find}を使用している場合,改行はいつでも正しく処理さ
 4211: れます.そうでなければ,改行は正しく処理されない可能性があります.
 4212: 
 4213: @node File Permissions, Reference, Databases, Top
 4214: @c @chapter File Permissions
 4215: @chapter ファイルの権限
 4216: 
 4217: @include perm-ja.texi
 4218: 
 4219: @node Reference, Security Considerations, File Permissions, Top
 4220: @c @chapter Reference
 4221: @chapter リファレンス
 4222: 
 4223: @c Below are summaries of the command line syntax for the programs
 4224: @c discussed in this manual.
 4225: @c 
 4226: 以下は,このマニュアルで示してきたプログラムに対する,コマンドラインの
 4227: 構文の概要です.
 4228: 
 4229: @menu
 4230: * Invoking find::
 4231: * Invoking locate::
 4232: * Invoking updatedb::
 4233: * Invoking xargs::
 4234: @end menu
 4235: 
 4236: @node Invoking find, Invoking locate, , Reference
 4237: @c @section Invoking @code{find}
 4238: @section @code{find}の呼び出し
 4239: 
 4240: @example
 4241: find @r{[-H] [-L] [-P]} @r{[}@var{file}@dots{}@r{]} @r{[}@var{expression}@r{]}
 4242: @end example
 4243: 
 4244: @c @code{find} searches the directory tree rooted at each file name
 4245: @c @var{file} by evaluating the @var{expression} on each file it finds in
 4246: @c the tree.
 4247: @c 
 4248: @code{find}は,それぞれのファイル名@var{file}をルートとするディレクトリ
 4249: ツリーを,そのツリーで見つかったそれぞれのファイル上で@var{expression}
 4250: を評価しながら検索します.
 4251: 
 4252: @c The options @samp{-H}, @samp{-L} or @samp{-P} may be specified at the
 4253: @c start of the command line (if none of these is specified, @samp{-P} is
 4254: @c assumed).  The arguments after these are a list of files or
 4255: @c directories that should be searched.
 4256: @c 
 4257: オプションの@samp{-H},@samp{-L},または@samp{-P}は,コマンドラインの最
 4258: 初に指定してもかまいません(これらが指定されていない場合,@samp{-P}が仮
 4259: 定されます).これらの後の引数は,検索するファイルやディレクトリのリスト
 4260: です.
 4261: 
 4262: @c This list of files to search is followed by a list of expressions
 4263: @c describing the files we wish to search for.  The first part of the
 4264: @c expression is recognised by the fact that it begins with @samp{-},
 4265: @c @samp{(}, @samp{)}, @samp{,}, or @samp{!}.  Any arguments after it are
 4266: @c the rest of the expression.  If no paths are given, the current
 4267: @c directory is used.  If no expression is given, the expression
 4268: @c @samp{-print} is used.
 4269: @c 
 4270: 検索するファイルのリストには,検索したいファイルの記述式のリストが続き
 4271: ます.式の最初の部分は,@samp{-},@samp{(}, @samp{)},@samp{,},または
 4272: @samp{!}で始まるという事で認識されます.それ以降のあらゆる引数は式の残
 4273: りとみなします.パスが与えられていない場合,現在のディレクトリが使用さ
 4274: れます.式が与えられていない場合,式@samp{-print}が使用されます.
 4275: 
 4276: @c @code{find} exits with status 0 if all files are processed successfully,
 4277: @c greater than 0 if errors occur.
 4278: @c 
 4279: @code{find}は,すべてのファイルが正しく処理された場合は0のステータスで,
 4280: エラーが発生した場合は0より大きなステータスで終了します.
 4281: 
 4282: @c Three options can precede the list of path names.  They determine the
 4283: @c way that symbolic links are handled.
 4284: @c 
 4285: パス名に三つのオプションを前置することが可能です.それらはシンボリック
 4286: リンクの扱い方を決定します.
 4287: 
 4288: @table @code
 4289: @item -P
 4290: @c Never follow symbolic links (this is the default), except in the case
 4291: @c of the @samp{-xtype} predicate.
 4292: @c 
 4293: @samp{-xtype}指示語以外で,シンボリックリンクをたどりません(これがデフォ
 4294: ルトです).
 4295: @item -L
 4296: @c Always follow symbolic links, except in the case of the @samp{-xtype}
 4297: @c predicate.
 4298: @c 
 4299: @samp{-xtype}指示語以外で,常にシンボリックリンクをたどります.
 4300: @item -H
 4301: @c Follow symbolic links specified in the list of paths to search, or
 4302: @c which are otherwise specified on the command line.
 4303: @c 
 4304: 検索パスのリストで指定されている,または,コマンドラインで指定されてい
 4305: るシンボリックリンクをたどります.
 4306: @end table
 4307: 
 4308: @c If @code{find} would follow a symbolic link, but cannot for any reason
 4309: @c (for example, because it has insufficient permissions or the link is
 4310: @c broken), it falls back on using the properties of the symbolic link
 4311: @c itself.  @ref{Symbolic Links} for a more complete description of how
 4312: @c symbolic links are handled.
 4313: @c 
 4314: @code{find}がシンボリックリンクをたどるつもりが,なんらかの理由で不可能
 4315: な場合(例えば,十分な権限が無いとか,リンクが壊れているとか),シンボリッ
 4316: クリンク自身の属性を使用するようになります.シンボリックリンクの取り扱
 4317: いの完全な記述は,@ref{Symbolic Links}.
 4318: 
 4319: @c @xref{Primary Index}, for a summary of all of the tests, actions, and
 4320: @c options that the expression can contain.  If the expression is
 4321: @c missing, @samp{-print} is assumed.
 4322: @c 
 4323: 式に含めることが可能なすべてのテスト,アクション,そしてオプションの概
 4324: 要は,@xref{Primary Index}.  式が無い場合,@samp{-print}が仮定されます.
 4325: 
 4326: @c @code{find} also recognizes two options for administrative use:
 4327: @c 
 4328: @code{find}は,管理上で使用するため,二つのオプションも認識します.
 4329: 
 4330: @table @code
 4331: @item --help
 4332: @c Print a summary of the command-line argument format and exit.
 4333: @c 
 4334: コマンドライン引数の書式の概要を出力し,終了します.
 4335: @item --version
 4336: @c Print the version number of @code{find} and exit.
 4337: @c 
 4338: @code{find}のバージョンナンバーを出力し,終了します.
 4339: @end table
 4340: 
 4341: @menu
 4342: * Warning Messages::
 4343: @end menu
 4344: 
 4345: @node Warning Messages,,, Invoking find
 4346: @c @subsection Warning Messages
 4347: @subsection 警告メッセージ
 4348: 
 4349: @c If there is an error on the @code{find} command line, an error message
 4350: @c is normally issued.  However, there are some usages that are
 4351: @c inadvisable but which @code{find} should still accept.  Under these
 4352: @c circumstances, @code{find} may issue a warning message.  By default,
 4353: @c warnings are enabled only if @code{find} is being run interactively
 4354: @c (specifically, if the standard input is a terminal).  Warning messages
 4355: @c can be controlled explicitly by the use of options on the command
 4356: @c line:
 4357: @c 
 4358: @code{find}のコマンドラインにエラーがある場合,通常エラーメッセージが出
 4359: 力されます.しかし,勧められないが@code{find}は受け入れる使用方法もあり
 4360: ます.この状況では,@code{find}は警告メッセージを出力します.デフォルト
 4361: で,@code{find}が対話的に実行されている場合だけ(特に,標準入力が端末の
 4362: 場合),警告メッセージが利用可能です.警告メッセージはコマンドラインオプ
 4363: ションで,明示的に制御することが可能です.
 4364: 
 4365: @table @code
 4366: @item -warn
 4367: @c Issue warning messages where appropriate.
 4368: @c 
 4369: 適切なところで警告メッセージを発行します.
 4370: @item -nowarn
 4371: @c Do not issue warning messages.
 4372: @c 
 4373: 警告メッセージを発行しません.
 4374: @end table
 4375: 
 4376: @c These options take effect at the point on the command line where they
 4377: @c are specified.  Therefore if you specify @samp{-nowarn} at the end of
 4378: @c the command line, you will not see warning messages for any problems
 4379: @c occurring before that.  The warning messages affected by the above
 4380: @c options are triggered by:
 4381: @c 
 4382: これらのオプションは,コマンドラインで指定されている場所で効果がありま
 4383: す.このため,@samp{-nowarn}をコマンドラインの最後に指定している場合,
 4384: それ以前に発生した問題の警告メッセージは表示されません.上記のオプショ
 4385: ンで変更される警告メッセージは,以下のものに影響します.
 4386: 
 4387: @itemize @minus
 4388: @item
 4389: @c Use of the @samp{-d} option which is deprecated; please use
 4390: @c @samp{-depth} instead, since the latter is POSIX-compliant.
 4391: @c 
 4392: 推奨されない@samp{-d}オプションの使用.POSIX互換の@samp{-depth}を代わり
 4393: に使用してください.
 4394: @item
 4395: @c Use of the @samp{-ipath} option which is deprecated; please use
 4396: @c @samp{-iwholename} instead.
 4397: @c 
 4398: 推奨されない@samp{-ipath}オプションの使用.@samp{-iwholename}を代わりに
 4399: 使用してください.
 4400: @item 
 4401: @c Specifying an option (for example @samp{-mindepth}) after a non-option
 4402: @c (for example @samp{-type} or @samp{-print}) on the command line.
 4403: @c 
 4404: コマンドラインのオプション以外(例えば,@samp{-type}や@samp{-print})の後
 4405: でのオプション(例えば@samp{-mindepth})の指定.
 4406: @end itemize
 4407: 
 4408: @c The default behaviour above is designed to work in that way so that
 4409: @c existing shell scripts which use such constructs don't generate
 4410: @c spurious errors, but people will be made aware of the problem.
 4411: @c 
 4412: 上記のデフォルトの動作は,そのような構成の既存のシェルスクリプトで重大
 4413: なエラーを生成しない方法で,ユーザが問題に気付くように動作するよう設計
 4414: されています.
 4415: 
 4416: @c Some warning messages are issued for less common or more serious
 4417: @c problems, and so cannot be turned off:
 4418: @c 
 4419: 警告メッセージには,あまり一般的ではない,またはより重要な問題で出力さ
 4420: れ,それらは停止できません.
 4421: 
 4422: @itemize @minus
 4423: @item
 4424: @c Use of an unrecognised backslash escape sequence with @samp{-fprintf}
 4425: @c 
 4426: @samp{-fprintf}での,認識できないバックスラッシュ・エスケープ・シーケン
 4427: スの使用.
 4428: @item
 4429: @c Use of an unrecognised formatting directive with @samp{-fprintf}
 4430: @c 
 4431: @samp{-fprintf}での,認識できない書式指示語の使用.
 4432: @end itemize
 4433: 
 4434: @node Invoking locate, Invoking updatedb, Invoking find, Reference
 4435: @c @section Invoking @code{locate}
 4436: @section @code{locate}の呼び出し
 4437: 
 4438: @example
 4439: locate @r{[}@var{option}@dots{}@r{]} @var{pattern}@dots{}
 4440: @end example
 4441: 
 4442: @table @code
 4443: @item --all
 4444: @itemx -A
 4445: @c Print only names which match all non-option arguments, not those matching
 4446: @c one or more non-option arguments.
 4447: @c 
 4448: オプションではない引数の,一つまたはそれ以上ではなく,すべての引数にマッ
 4449: チした名前だけを出力します.
 4450: 
 4451: @item --basename
 4452: @itemx -b
 4453: @c The specified pattern is matched against just the last component of
 4454: @c the name of the file in the locate database.  This last component is
 4455: @c also called the ``base name''.  For example, the base name of
 4456: @c @file{/tmp/mystuff/foo.old.c} is @file{foo.old.c}.  If the pattern
 4457: @c contains metacharacters, it must match the base name exactly.  If not,
 4458: @c it must match part of the base name.
 4459: @c 
 4460: @code{locate}データベースのファイル名の最後の構成要素に対してマッチする
 4461: パターンを指定します.最後の構成要素は,``ベース名(base name)''と呼ばれ
 4462: ます.例えば,@file{/tmp/mystuff/foo.old.c}のベース名は
 4463: @file{foo.old.c}になります.パターンにメタ文字が含まれている場合,ベー
 4464: ス名に正確にマッチする必要があります.そうでない場合,ベース名の一部が
 4465: マッチする必要があります.
 4466: 
 4467: @item --count
 4468: @itemx -c
 4469: @c Instead of printing the matched filenames, just print the total 
 4470: @c number of matches we found, unless @samp{--print} (@samp{-p}) is also
 4471: @c present.
 4472: @c 
 4473: @samp{--print} (@samp{-p})も指定されていない限り,マッチしたファイル名
 4474: を出力する代わりに,見つかったマッチ数だけを出力します.
 4475: 
 4476: @item --database=@var{path}
 4477: @itemx -d @var{path}
 4478: @c Instead of searching the default file name database, search the file
 4479: @c name databases in @var{path}, which is a colon-separated list of
 4480: @c database file names.  You can also use the environment variable
 4481: @c @code{LOCATE_PATH} to set the list of database files to search.  The
 4482: @c option overrides the environment variable if both are used.  Empty
 4483: @c elements in @var{path} (that is, a leading or trailing colon, or two
 4484: @c colons in a row) are taken to stand for the default database.
 4485: @c A database can be supplied on stdin, using @samp{-} as an element
 4486: @c of @samp{path}. If more than one element of @samp{path} is @samp{-},
 4487: @c later instances are ignored (but a warning message is printed).
 4488: @c 
 4489: デフォルトのファイル名のデータベースを検索する代わりに,@var{path}にあ
 4490: るファイル名のデータベースを検索し,それはコロンで分離されたデータベー
 4491: スファイル名のリストになります.環境変数@code{LOCATE_PATH}を検索するデー
 4492: タベースファイルに設定する方法も使用可能です.両方使用されている場合,
 4493: オプションは環境変数に優先します.@var{path}の空の項目(すなわち,先頭と
 4494: 末尾のコロンや,一行に二つのコロン)は,デフォルトのデータベースとして受
 4495: け取ります.@samp{path}の項目で@samp{-}を使用することで,データベースは
 4496: 標準入力からも提供することが可能です.@samp{path}の一つ以上の@samp{-}が
 4497: 構成要素にある場合,後のものが無視されます(しかし,警告メッセージは出力
 4498: されます).
 4499: 
 4500: @item --existing
 4501: @itemx -e
 4502: @c Only print out such names which currently exist (instead of such names
 4503: @c which existed when the database was created).  Note that this may slow
 4504: @c down the program a lot, if there are many matches in the database.
 4505: @c The way in which broken symbolic links are treated is affected by the
 4506: @c @samp{-L}, @samp{-P} and @samp{-H} options.
 4507: @c 
 4508: (データベースが作成されたときに存在していた名前の代わりに)現在,存在し
 4509: ている名前だけ出力されます.データベースのマッチが多い場合,プログラム
 4510: が非常に遅くなることに注意してください.壊れたシンボリックリンクの扱い
 4511: 方は,@samp{-L},@samp{-P},そして@samp{-H}オプションが影響します.
 4512: 
 4513: @item --non-existing
 4514: @itemx -E
 4515: @c Only print out such names which currently do not exist (instead of
 4516: @c such names which existed when the database was created).  Note that
 4517: @c this may slow down the program a lot, if there are many matches in the
 4518: @c database.  The way in which broken symbolic links are treated is
 4519: @c affected by the @samp{-L}, @samp{-P} and @samp{-H} options.
 4520: @c 
 4521: (データベースが作成されたときに存在していた名前の代わりに)現在,存在し
 4522: ていない名前だけ出力されます.データベースのマッチが多い場合,プログラ
 4523: ムが非常に遅くなることに注意してください.壊れたシンボリックリンクの扱
 4524: い方は,@samp{-L},@samp{-P},そして@samp{-H}オプションが影響します.
 4525: 
 4526: @item --follow
 4527: @itemx -L
 4528: @c If testing for the existence of files (with the @samp{-e} or @samp{-E}
 4529: @c options), consider broken symbolic links to be non-existing.  This is
 4530: @c the default.
 4531: @c 
 4532: (@samp{-e}や@samp{-E}オプションで)ファイルの存在を調査する場合,壊れて
 4533: いるシンボリックリンクは存在しないものとみなします.これはデフォルトで
 4534: す.
 4535: 
 4536: @item --nofollow
 4537: @itemx -P
 4538: @itemx -H
 4539: @c If testing for the existence of files (with the @samp{-e} or @samp{-E}
 4540: @c options), treat broken symbolic links as if they were existing files.
 4541: @c The @samp{-H} form of this option is provided purely for similarity
 4542: @c with @code{find}; the use of @samp{-P} is recommended over @samp{-H}.
 4543: @c 
 4544: (@samp{-e}や@samp{-E}オプションで)ファイルの存在を調査する場合,壊れて
 4545: いるシンボリックリンクはファイルが存在しているかのように処理します.こ
 4546: のオプションの@samp{-H}の形式は,@code{find}に類似しているために提供さ
 4547: れています.@samp{-H}ではなく@samp{-P}の使用が推奨されます.
 4548: 
 4549: @item --ignore-case
 4550: @itemx -i
 4551: @c Ignore case distinctions in both the pattern and the file names.
 4552: @c 
 4553: パターンとファイル名の両方で,大文字小文字の違いを無視します.
 4554: 
 4555: @item --limit=N
 4556: @itemx -l N
 4557: @c Limit the number of results printed to N.  If you use the
 4558: @c @samp{--count} option, the value printed will never be larger than
 4559: @c this limit.
 4560: @c 
 4561: 結果として出力する数を@var{N}に制限します.@samp{--count}オプションを使
 4562: 用している場合,出力される値はこの制限より大きくなりません.
 4563: 
 4564: @item --mmap
 4565: @itemx -m
 4566: @c Accepted but does nothing.  The option is supported only to provide
 4567: @c compatibility with BSD's @code{locate}.
 4568: @c 
 4569: 受け入れられますが何もしません.このオプションは,BSDの@code{locate}と
 4570: の互換性を提供するためだけにサポートされています.
 4571: 
 4572: @item --null
 4573: @itemx -0
 4574: @c Results are separated with the ASCII NUL character rather than the
 4575: @c newline character.  To get the full benefit of the use of this option,
 4576: @c use the new locate database format (that is the default anyway).
 4577: @c 
 4578: 結果を,改行文字ではなく,ASCIIのヌル文字で分離します.このオプションの
 4579: 利便性を完全に利用するため,新しいデータベース書式を使用してください(デ
 4580: フォルトです).
 4581: 
 4582: @item --print
 4583: @itemx -p
 4584: @c Print search results when they normally would not, because of the presence
 4585: @c of @samp{--statistics} (@samp{-S}) or @samp{--count} (@samp{-c}).
 4586: @c 
 4587: @samp{--statistics} (@samp{-S})や@samp{--count} (@samp{-c})のために,通
 4588: 常は出力されない検索結果を出力します.
 4589: 
 4590: @item --wholename
 4591: @itemx -w
 4592: @c The specified pattern is matched against the whole name of the file in
 4593: @c the locate database.  If the pattern contains metacharacters, it must
 4594: @c match exactly.  If not, it must match part of the whole file name.
 4595: @c This is the default behaviour.
 4596: @c 
 4597: 指定されたパターンはを,@command{locate}データベースのファイル名全体に
 4598: 対してマッチさせます.パターンにメタ文字が含まれている場合,正確にマッ
 4599: チする必要があります.そうでない場合,ファイル名全体にマッチする必要が
 4600: あります.これはデフォルトの動作です.
 4601: 
 4602: @item --regex
 4603: @itemx -r
 4604: @c Instead of using substring or shell glob matching, the pattern
 4605: @c specified on the command line is understood to be a POSIX extended
 4606: @c regular expression.  Filenames from the locate database which match
 4607: @c the specified regular expression are printed (or counted).  If the
 4608: @c @samp{-i} flag is also given, matching is case-insensitive.  Matches
 4609: @c are performed against the whole path name, and so by default a
 4610: @c pathname will be matched if any part of it matches the specified
 4611: @c regular expression.  The regular expression may use @samp{^} or
 4612: @c @samp{$} to anchor a match at the beginning or end of a pathname.
 4613: @c 
 4614: 部分文字列やシェルのglobマッチを使用する代わりに,コマンドラインで指定
 4615: されているパターンをPOSIXの拡張正規表現として解釈します.指定されている
 4616: 正規表現にマッチする@command{locate}データベースのファイル名が出力(また
 4617: はカウント)されます.@samp{-i}フラグも与えられている場合,大文字小文字
 4618: を区別しません.マッチは,パス名全体に対して実行され,デフォルトではパ
 4619: ス名は指定されている正規表現のマッチする部分にマッチします.正規表現で
 4620: は@samp{^}や@samp{$}を,パス名の最初や最後にマッチするものとして使用し
 4621: ても構いません.
 4622: 
 4623: @item --stdio
 4624: @itemx -s
 4625: @c Accepted but does nothing.  The option is supported only to provide
 4626: @c compatibility with BSD's @code{locate}.
 4627: @c 
 4628: 受け入れられますが何もしません.このオプションは,BSDの@code{locate}と
 4629: の互換性を提供するためだけにサポートされています.
 4630: 
 4631: @item --statistics
 4632: @itemx -S
 4633: @c Print some summary information for each locate database.  No search is
 4634: @c performed unless non-option arguments are given.
 4635: @c 
 4636: それぞれの@command{locate}データベースの概要情報を出力しません.オプショ
 4637: ン以外の引数が与えられていない限り,検索は実行されません.
 4638: 
 4639: @item --help
 4640: @c Print a summary of the options to @code{locate} and exit.
 4641: @c 
 4642: @code{locate}へのオプションの概要を出力し,終了します.
 4643: 
 4644: @item --version
 4645: @c Print the version number of @code{locate} and exit.
 4646: @c 
 4647: @code{locate}のバージョンナンバーを出力し,終了します.
 4648: @end table
 4649: 
 4650: @node Invoking updatedb, Invoking xargs, Invoking locate, Reference
 4651: @c @section Invoking @code{updatedb}
 4652: @section @code{updatedb}の呼び出し
 4653: 
 4654: @example
 4655: updatedb @r{[}@var{option}@dots{}@r{]}
 4656: @end example
 4657: 
 4658: @table @code
 4659: @item --findoptions='@var{OPTION}@dots{}'
 4660: @c Global options to pass on to @code{find}.
 4661: @c The environment variable @code{FINDOPTIONS} also sets this value.
 4662: @c Default is none.
 4663: @c 
 4664: @code{find}渡す大域的なオプションです.環境変数@code{FINDOPTIONS}でもこ
 4665: の値を設定します.デフォルトはありません.
 4666: 
 4667: @item --localpaths='@var{path}@dots{}'
 4668: @c Non-network directories to put in the database.
 4669: @c Default is @file{/}.
 4670: @c 
 4671: データベースに書き込むネットワーク以外のディレクトリです.デフォルトは
 4672: @file{/}です.
 4673: 
 4674: @item --netpaths='@var{path}@dots{}'
 4675: @c Network (NFS, AFS, RFS, etc.) directories to put in the database.
 4676: @c The environment variable @code{NETPATHS} also sets this value.
 4677: @c Default is none.
 4678: @c 
 4679: データベースに書き込むネットワーク(NFS,AFS,RFS等)のディレクトリです.
 4680: 環境変数@code{NETPATHS}でもこの値を設定します.デフォルトはありません.
 4681: 
 4682: @item --prunepaths='@var{path}@dots{}'
 4683: @c Directories to omit from the database, which would otherwise be
 4684: @c included.  The environment variable @code{PRUNEPATHS} also sets this
 4685: @c value.  Default is @file{/tmp /usr/tmp /var/tmp /afs}.  The paths are
 4686: @c used as regular expressions (with @code{find ... -regex}, so you need
 4687: @c to specify these paths in the same way that @code{find} will encounter
 4688: @c them.  This means for example that the paths must not include trailing
 4689: @c slashes.
 4690: @c 
 4691: データベースに書き込まないディレクトリで,それ以外は書き込まれます.環
 4692: 境変数@code{PRUNEPATHS}でもこの値を設定します.デフォルトは,
 4693: @file{/tmp /usr/tmp /var/tmp /afs}です.パスは正規表現として
 4694: (@code{find ...  -regex}のように)使用されるので,これらのパスを
 4695: @code{find}で行うのと同じ方法で指定する必要があります.例えば,パスに最
 4696: 後のスラッシュを含めてはならないことを意味します.
 4697: 
 4698: @item --prunefs='@var{path}@dots{}'
 4699: @c File systems to omit from the database, which would otherwise be included.
 4700: @c Note that files are pruned when a file system is reached;
 4701: @c Any file system mounted under an undesired file system will be
 4702: @c ignored.
 4703: @c The environment variable @code{PRUNEFS} also sets this value.
 4704: @c Default is @file{nfs NFS proc}.
 4705: @c 
 4706: データベースに書き込まないファイルシステムで,それ以外は書き込まれます.
 4707: 当該ファイルシステム以下のファイルが除去されることに注意してください.
 4708: 期待されないファイルシステム以下にあるファイルシステムはすべて無視され
 4709: ます.環境変数@code{PRUNEFS}でもこの値を設定します.デフォルトは
 4710: @file{nfs NFS proc}です.
 4711: 
 4712: @item --output=@var{dbfile}
 4713: @c The database file to build.
 4714: @c Default is system-dependent, but typically @file{/usr/local/var/locatedb}.
 4715: @c 
 4716: 構築されるデータベースファイルです.デフォルトはシステムに依存しますが,
 4717: 通常は@file{/usr/local/var/locatedb}です.
 4718: 
 4719: @item --localuser=@var{user}
 4720: @c The user to search the non-network directories as, using @code{su}.
 4721: @c Default is to search the non-network directories as the current user.
 4722: @c You can also use the environment variable @code{LOCALUSER} to set this user.
 4723: @c 
 4724: @code{su}を使用して,ネットワーク以外のディレクトリを検索するユーザです.
 4725: デフォルトは,カレントユーザとしてネットワーク以外のディレクトリを検索
 4726: します.このユーザを設定するために,環境変数@code{LOCALUSER}を使用する
 4727: ことも可能です.
 4728: 
 4729: @item --netuser=@var{user}
 4730: @c The user to search network directories as, using @code{su}.
 4731: @c Default is @code{daemon}.
 4732: @c You can also use the environment variable @code{NETUSER} to set this user.
 4733: @c 
 4734: @code{su}を使用しながら,ネットワークディレクトリを検索するユーザです.
 4735: デフォルトは@code{daemon}です.このユーザを設定するために,環境変数
 4736: @code{NETUSER}を使用することも可能です.
 4737: 
 4738: @item --old-format
 4739: @c Generate a locate database in the old format, for compatibility with
 4740: @c versions of @code{locate} other than GNU @code{locate}.  Using this
 4741: @c option means that @code{locate} will not be able to properly handle
 4742: @c non-ASCII characters in filenames (that is, filenames containing
 4743: @c characters which have the eighth bit set, such as many of the
 4744: @c characters from the ISO-8859-1 character set).
 4745: @c 
 4746: GNU @code{locate}より古いバージョンの@code{locate}との互換性のため,
 4747: @command{locate}データベースを古い書式で出力します.このオプションを使
 4748: 用することは,ファイル名でASCII以外の文字を適切に処理することができなく
 4749: なる事を意味します(それは,ISO-8859-1文字集合の多くの文字のように,八番
 4750: 目のビットが設定されている文字を含むファイル名です).
 4751: 
 4752: @item --help
 4753: @c Print a summary of the command-line argument format and exit.
 4754: @c 
 4755: コマンドライン引数の書式の概要を出力して終了します.
 4756: 
 4757: @item --version
 4758: @c Print the version number of @code{updatedb} and exit.
 4759: @c 
 4760: @code{updatedb}のバージョン番号を出力して終了します.
 4761: @end table
 4762: 
 4763: @node Invoking xargs, ,  Invoking updatedb, Reference
 4764: @c @section Invoking @code{xargs}
 4765: @section @code{xargs}の呼び出し
 4766: 
 4767: @example
 4768: xargs @r{[}@var{option}@dots{}@r{]} @r{[}@var{command} @r{[}@var{initial-arguments}@r{]}@r{]}
 4769: @end example
 4770: 
 4771: @c @code{xargs} exits with the following status:
 4772: @c 
 4773: @code{xargs}は,以下のステータスで終了します.
 4774: 
 4775: @table @asis
 4776: @item 0
 4777: @c if it succeeds
 4778: @c 
 4779: 成功した場合.
 4780: @item 123
 4781: @c if any invocation of the command exited with status 1-125
 4782: @c 
 4783: 1-125のステータスで終了されたコマンドの呼出があった場合.
 4784: @item 124
 4785: @c if the command exited with status 255
 4786: @c 
 4787: コマンドが255のステータスで終了した場合.
 4788: @item 125
 4789: @c if the command is killed by a signal
 4790: @c 
 4791: コマンドがシグナルでキルされた場合.
 4792: @item 126
 4793: @c if the command cannot be run
 4794: @c 
 4795: コマンドが実行不可能な場合.
 4796: @item 127
 4797: @c if the command is not found
 4798: @c 
 4799: コマンドが見つからない場合.
 4800: @item 1
 4801: @c if some other error occurred.
 4802: @c 
 4803: その他のエラーが発生した場合.
 4804: @end table
 4805: 
 4806: @table @code
 4807: @item --arg-file@r{=@var{inputfile}}
 4808: @itemx -a @r{=@var{inputfile}}
 4809: @c Read names from the file @var{inputfile} instead of standard input.
 4810: @c 
 4811: 標準入力の代わりに,ファイル@var{inputfile}から名前を読み込みます.
 4812: 
 4813: @item --null
 4814: @itemx -0
 4815: @c Input filenames are terminated by a null character instead of by
 4816: @c whitespace, and the quotes and backslash are not special (every
 4817: @c character is taken literally).  Disables the end of file string, which
 4818: @c is treated like any other argument.
 4819: @c 
 4820: 入力ファイル名を空白の代わりにヌル文字で終端し,引用符とバックスラッシュ
 4821: は特別扱いされません(すべての文字は,文字通りに扱われます).引数として
 4822: 扱われるような,ファイル文字列の終端部分を使用不可能にします.
 4823: 
 4824: @item --eof@r{[}=@var{eof-str}@r{]}
 4825: @itemx -e@r{[}@var{eof-str}@r{]}
 4826: @c Set the end of file string to @var{eof-str}.  If the end of file string
 4827: @c occurs as a line of input, the rest of the input is ignored.  If
 4828: @c @var{eof-str} is omitted, there is no end of file string.  If this
 4829: @c option is not given, the end of file string defaults to @samp{_}.
 4830: @c 
 4831: ファイル文字列の終端を@var{eof-str}に設定します.ファイル文字列の終端が,
 4832: 入力行に現れた場合,残りの入力は無視されます.@var{eof-str}が省略されて
 4833: いる場合,ファイル文字列の終端はありません.このオプションが与えられて
 4834: いない場合,ファイル文字列の終端はデフォルトで@samp{_}になります.
 4835: 
 4836: @item --help
 4837: @c Print a summary of the options to @code{xargs} and exit.
 4838: @c 
 4839: @code{xargs}のオプションの概要を出力して,終了します.
 4840: 
 4841: @item --replace@r{[}=@var{replace-str}@r{]}
 4842: @itemx -i@r{[}@var{replace-str}@r{]}
 4843: @c Replace occurrences of @var{replace-str} in the initial arguments with
 4844: @c names read from standard input.  Also, unquoted blanks do not
 4845: @c terminate arguments; instead, the input is split at newlines only.
 4846: @c If @var{replace-str} is omitted, it defaults to @samp{@{@}}
 4847: @c (like for @samp{find -exec}).  Implies @samp{-x} and @samp{-l 1}.
 4848: @c 
 4849: 最初から存在する引数にある@var{replace-str}を,標準入力から読み込まれた
 4850: 名前に置換します.また,引用符で囲まれていない空白は,引数の終りになり
 4851: ません.代わりに,入力は改行のみで分割されます.@var{replace-str}が省略
 4852: されている場合,デフォルトは@samp{@{@}} になります(@samp{find -exec}に
 4853: 似ています).@samp{-x}と@samp{-l 1}を暗黙に指定します.
 4854: 
 4855: @item --max-lines@r{[}=@var{max-lines}@r{]}
 4856: @itemx -l@r{[}@var{max-lines}@r{]}
 4857: @c Use at most @var{max-lines} nonblank input lines per command line;
 4858: @c @var{max-lines} defaults to 1 if omitted.  Trailing blanks cause an
 4859: @c input line to be logically continued on the next input line, for the
 4860: @c purpose of counting the lines.  Implies @samp{-x}.
 4861: @c 
 4862: 最大@var{max-lines}の空白でない入力行を,コマンドラインごとに使用します.
 4863: 後置されている空白は,入力行を論理的に次の行に続かせ,それは行を数える
 4864: 目的のためです.@samp{-x}を暗黙に指定します.
 4865: 
 4866: @item --max-args=@var{max-args}
 4867: @itemx -n @var{max-args}
 4868: @c Use at most @var{max-args} arguments per command line.  Fewer than
 4869: @c @var{max-args} arguments will be used if the size (see the @samp{-s}
 4870: @c option) is exceeded, unless the @samp{-x} option is given, in which case
 4871: @c @code{xargs} will exit.
 4872: @c 
 4873: 最大@var{max-args}の引数を,コマンドラインごとに使用します.
 4874: @var{max-args}より引数が少ないときは,サイズ(@samp{-s}オプションを参照
 4875: して下さい)を越ていても,@samp{-x}オプションが与えられていない場合はそ
 4876: れが使用され,それ以外では@code{xargs}は終了します.
 4877: 
 4878: @item --interactive
 4879: @itemx -p
 4880: @c Prompt the user about whether to run each command line and read a line
 4881: @c from the terminal.  Only run the command line if the response starts
 4882: @c with @samp{y} or @samp{Y}.  Implies @samp{-t}.
 4883: @c 
 4884: それぞれのコマンドラインを実行するかどうか,ユーザにプロンプトを表示し,
 4885: 端末から一行読み込みます.応答が@samp{y}や@samp{Y}で始まっている場合の
 4886: み,コマンドラインを実行します.@samp{-t}を暗黙に指定します.
 4887: 
 4888: @item --no-run-if-empty
 4889: @itemx -r
 4890: @c If the standard input does not contain any nonblanks, do not run the
 4891: @c command.  By default, the command is run once even if there is no input.
 4892: @c 
 4893: 標準入力が全く空行を含まない場合,コマンドを実行しません.デフォルトで,
 4894: コマンドは入力が無い場合でも一度実行されます.
 4895: 
 4896: @item --max-chars=@var{max-chars}
 4897: @itemx -s @var{max-chars}
 4898: @c Use at most @var{max-chars} characters per command line, including the
 4899: @c command and initial arguments and the terminating nulls at the ends of
 4900: @c the argument strings.
 4901: @c 
 4902: コマンドと最初からある引数と引数文字列の最後の終端のヌルを含め,最大
 4903: @var{max-chars}文字をコマンドラインごとに使用します.
 4904: 
 4905: @item --verbose
 4906: @itemx -t
 4907: @c Print the command line on the standard error output before executing
 4908: @c it.
 4909: @c 
 4910: コマンドラインを実行前に標準エラー出力に出力します.
 4911: 
 4912: @item --version
 4913: @c Print the version number of @code{xargs} and exit.
 4914: @c 
 4915: @code{xargs}のバージョンナンバーを出力し,終了します.
 4916: 
 4917: @item --exit
 4918: @itemx -x
 4919: @c Exit if the size (see the @samp{-s} option) is exceeded.
 4920: @c 
 4921: サイズ(@samp{-s}オプションを参照して下さい)を越えた場合,終了します.
 4922: 
 4923: @item --max-procs=@var{max-procs}
 4924: @itemx -P @var{max-procs}
 4925: @c Run up to @var{max-procs} processes at a time; the default is 1.  If
 4926: @c @var{max-procs} is 0, @code{xargs} will run as many processes as
 4927: @c possible at a time.
 4928: @c 
 4929: 一度に@var{max-procs}プロセスまで実行します.デフォルトは1です.
 4930: @var{max-procs}が0の場合,@code{xargs}は一度に実行可能な最大数のプロセ
 4931: スを実行します.
 4932: @end table
 4933: 
 4934: @node Security Considerations, Error Messages, Reference, Top
 4935: @c @chapter Security Considerations
 4936: @chapter セキュリティの考慮
 4937: 
 4938: @c Security considerations are important if you are using @code{find} or
 4939: @c @code{xargs} to search for or process files that don't belong to you
 4940: @c or over which other people have control.  Security considerations
 4941: @c relating to @code{locate} may also apply if you have files which you
 4942: @c may not want others to see.   
 4943: @c 
 4944: @code{find}や@code{xargs}を,所有者ではない,または他の人の制御下にある
 4945: ファイルの検索や処理で使用している場合,セキュリティを考慮することは重
 4946: 要です.@code{locate}でも,他人に見られたくないファイルがある場合,関係
 4947: するセキュリティの考慮が適用されます.
 4948: 
 4949: @c In general, the most severe forms of security problems affecting
 4950: @c @code{find} and related programs are where third parties can bring
 4951: @c about a situation where those programs allow them to do something
 4952: @c they would normally not be able to do.  This is called @emph{privilege
 4953: @c elevation}.  This might include deleting files they would not normally
 4954: @c be able to delete.  It is also common for the system to periodically
 4955: @c invoke @code{find} for housekeeping purposes.  These invocations of
 4956: @c @code{find} are particularly problematic from a security point of view
 4957: @c as these are often invoked by the superuser and search the whole file
 4958: @c system hierarchy.  The severity of any associated problem depends on
 4959: @c what the system is going to do with the output of @code{find}.
 4960: @c 
 4961: 一般的に,@code{find}と関連プログラムに影響する最も厳しいセキュリティの
 4962: 問題の形態は,第三者がそれらのプログラムによって,通常は実行できない何
 4963: かを実行することが可能になる状況になりうることです.これは,@emph{特権
 4964: の昇格(privilege elevation)}と呼ばれています.これは,通常は削除不可能
 4965: なファイルの削除も含まれます.システムが定期的に,ごみ掃除の目的で
 4966: @code{find}を呼び出すのも一般的です.このような@code{find}の呼び出しは,
 4967: スーパーユーザから呼び出され,ファイルシステムの全階層を検索するので,
 4968: セキュリティの観点からは特に問題になります.関連する問題の重大さは,
 4969: @code{find}の出力を元にシステムが実施することに依存します.
 4970: 
 4971: @menu
 4972: * Levels of Risk::      What is your level of exposure to security problems?
 4973: * Security Considerations for find::  Security problems with find
 4974: * Security Considerations for xargs:: Security problems with xargs
 4975: * Security Considerations for locate:: Security problems with locate
 4976: * Security Summary:: That was all very complex, what does it boil down to?
 4977: @end menu
 4978: 
 4979: 
 4980: @node Levels of Risk
 4981: @c @section Levels of Risk
 4982: @section リスクのレベル
 4983: 
 4984: @c There are some security risks inherent in the use of @code{find},
 4985: @c @code{xargs} and (to a lesser extent) @code{locate}.  The severity of
 4986: @c these risks depends on what sort of system you are using:
 4987: @c 
 4988: @code{find},@code{xargs},そして(程度は小さい)@code{locate}の使用にお
 4989: いて,もともとセキュリティのリスクがあります.リスクの重大さは,使用し
 4990: ているシステムの種類に依存します.
 4991: 
 4992: @table @strong
 4993: @c @item High risk
 4994: @item 高いリスク
 4995: @c Multi-user systems where you do not control (or trust) the other
 4996: @c users, and on which you execute @code{find}, including areas where
 4997: @c those other users can manipulate the filesystem (for example beneath
 4998: @c @file{/home} or @file{/tmp}).
 4999: @c 
 5000: 他のユーザを制御(または信用)できない,他のユーザが操作可能なファイルシ
 5001: ステムの領域(例えば,@file{/home}や@file{/tmp}以下)を含めて@code{find}
 5002: を実行するマルチユーザシステム.
 5003: 
 5004: @c @item Medium Risk
 5005: @item 中程度のリスク
 5006: @c Systems where the actions of other users can create filenames chosen
 5007: @c by them, but to which they don't have access while @code{find} is
 5008: @c being run.  This access might include leaving programs running (shell
 5009: @c background jobs, @code{at} or @code{cron} tasks, for example).  On
 5010: @c these sorts of systems, carefully written commands (avoiding use of
 5011: @c @samp{-print} for example) should not expose you to a high degree of
 5012: @c risk.  Most systems fall into this category.
 5013: @c 
 5014: 他のユーザのアクションで任意のファイル名を作成することが可能で,
 5015: @code{find}の実行中アクセスできないシステム.このアクセスには,放置され
 5016: たプログラムの実行(例えば,バックグラウンドのジョブ,@code{at}や
 5017: @code{cron}のタスク)が含まれます.この種のシステムでは,注意して書かれ
 5018: たコマンド(例えば,@samp{-print}の使用を避ける)は,高度な危険にならない
 5019: でしょう.ほとんどのシステムはこのカテゴリに分類されます.
 5020: 
 5021: @c @item Low Risk
 5022: @item 低いリスク
 5023: @c Systems to which untrusted parties do not have access, cannot create
 5024: @c filenames of their own choice (even remotely) and which contain no
 5025: @c security flaws which might enable an untrusted third party to gain
 5026: @c access.  Most systems do not fall into this category because there are
 5027: @c many ways in which external parties can affect the names of files that
 5028: @c are created on your system.  The system on which I am writing this for
 5029: @c example automatically downloads software updates from the Internet;
 5030: @c the names of the files in which these updates exist are chosen by
 5031: @c third parties@footnote{Of course, I trust these parties to a large
 5032: @c extent anyway, because I install software provided by them; I choose
 5033: @c to trust them in this way, and that's a deliberate choice}.
 5034: @c 
 5035: 信用できない連中がアクセスしない,自分で選んだファイル名を(リモートで
 5036: も)作成できない,信用できない第三者のアクセスを増加させるようなセキュリ
 5037: ティの欠陥が無いシステム.ほとんどのシステムでは,外部の人がシステムに
 5038: 作成するファイルの名前に影響する方法がたくさんあるので,このカテゴリに
 5039: 分類されません.例えば,これを書いているシステム自動的にソフトウェアを
 5040: インターネットからダウンロードし,ソフトウェアを更新します.これらの更
 5041: 新されるファイルには名前は,第三者が選択したものが存在しています
 5042: @footnote{もちろん,インストールするソフトウェアを提供しているので,こ
 5043: れらの連中を信用しています.こうして信用するものを選択するしていて,ま
 5044: あ良く考えて選択しているということです}.
 5045: @end table
 5046: 
 5047: @c In the discussion above, ``risk'' denotes the likelihood that someone
 5048: @c can cause @code{find}, @code{xargs}, @code{locate} or some other
 5049: @c program which is controlled by them to do something you did not
 5050: @c intend.  The levels of risk suggested do not take any account of the
 5051: @c consequences of this sort of event.  That is, if you operate a ``low
 5052: @c risk'' type system, but the consequences of a security problem are
 5053: @c disastrous, then you should still give serious thought to all the
 5054: @c possible security problems, many of which of course will not be
 5055: @c discussed here -- this section of the manual is intended to be
 5056: @c informative but not comprehensive or exhaustive.   
 5057: @c 
 5058: 上記の``リスク''とは,@code{find},@code{xargs},@code{locate},または,
 5059: それらのプログラムから制御される,他のプログラムで,期待しないことが実
 5060: 行され得ることを意味します.提案したリスクのレベルは,事態の重大さを考
 5061: 慮したものではありません.つまり,``低リスク''のシステムで処理をしてい
 5062: ても,セキュリティの問題の重大さは悲惨なものとなり,ここで議論されてい
 5063: ないものもたくさんありますが,すべての可能性のあるセキュリティの問題を
 5064: 真面目に考えるべきです -- マニュアルのこのセクションの目的は情報提供で
 5065: すが,総合的でも徹底的でもありません.
 5066: 
 5067: @c If you are responsible for the operation of a system where the
 5068: @c consequences of a security problem could be very important, you should
 5069: @c do two things:-
 5070: @c 
 5071: セキュリティの問題が非常に重要なシステムでの操作に責任がある場合,二つ
 5072: のことを行うべきです.
 5073: 
 5074: @enumerate
 5075: @c @item Define a security policy which defines who is allowed to do what
 5076: @c on your system
 5077: @c 
 5078: @item
 5079: システム上で,誰が何を行っても良いかということを決定する,セキュリティ
 5080: ポリシーを定義してください.
 5081: 
 5082: @c @item Seek competent advice on how to enforce your policy, detect
 5083: @c breaches of that policy, and take account of any potential problems
 5084: @c that might fall outside the scope of your policy
 5085: @c 
 5086: @item
 5087: ポリシーの執行,ポリシーの侵害の検出,さらに,ポリシーのスコープ以外に
 5088: ついても可能性のある問題の考慮について,手法に関するアドバイスを十分に
 5089: 探してください.
 5090: @end enumerate
 5091: 
 5092: 
 5093: @node Security Considerations for find
 5094: @c @section Security Considerations for find
 5095: @section @command{find}のセキュリティの考慮
 5096: 
 5097: @c Some of the actions @code{find} might take have a direct effect;
 5098: @c these include @code{-exec} and @code{-delete}.  However, it is also
 5099: @c common to use @code{-print} explicitly or implicitly, and so if
 5100: @c @code{find} produces the wrong list of filenames, that can also be a
 5101: @c security problem; consider the case for example where @code{find} is
 5102: @c producing a list of files to be deleted.
 5103: @c 
 5104: @code{find}のアクションには,直接影響するものがあります.これには
 5105: @code{-exec}と@code{-delete}が含まれます.しかし,@code{-print}の明示的
 5106: または暗黙の使用も一般的で,@code{find}は間違ったファイル名のリストを生
 5107: 成し,セキュリティの問題になり得ます.例えば,ファイルを削除するために
 5108: @code{find}が生成したファイルのリストを考えてみてください.
 5109: 
 5110: @c We normally assume that the @code{find} command line expresses the
 5111: @c file selection criteria and actions that the user had in mind -- that
 5112: @c is, the command line is ``trusted'' data.  
 5113: @c 
 5114: 我々は通常,@code{find}のコマンドラインはファイルの選択の基準と,ユーザ
 5115: が考えているアクションを表現していると仮定します -- つまり,コマンドラ
 5116: インは``信用できる''データだということです.
 5117: 
 5118: @c From a security analysis point of view, the output of @code{find}
 5119: @c should be correct; that is, the output should contain only the names
 5120: @c of those files which meet the user's criteria specified on the command
 5121: @c line.  This applies for the @code{-exec} and @code{-delete} actions;
 5122: @c one can consider these to be part of the output.
 5123: @c 
 5124: セキュリティの分析の観点から,@code{find}の外部は正しくありません.つま
 5125: り,出力にはユーザがコマンドラインで指定した基準にマッチしたファイルの
 5126: 名前だけが含まれているべきです.これを,@code{-exec}と@code{-delete}ア
 5127: クションに適用します.これらも出力の一部だと考える人もいます.
 5128: 
 5129: @c On the other hand, the contents of the filesystem can be manipulated
 5130: @c by other people, and hence we regard this as ``untrusted'' data.  This
 5131: @c implies that the @code{find} command line is a filter which converts
 5132: @c the untrusted contents of the filesystem into a correct list of output
 5133: @c files.   
 5134: @c 
 5135: 一方,ファイルシステムの内容は他の人も操作可能なので,我々はこれを``信
 5136: 用できない''データだとみなします.つまり,@code{find}コマンドラインは,
 5137: 信用できないファイルシステムの内容を,出力ファイルの正しいリストに変換
 5138: するフィルタであることを暗示しています.
 5139: 
 5140: @c The filesystem will in general change while @code{find} is searching
 5141: @c it; in fact, most of the potential security problems with @code{find}
 5142: @c relate to this issue in some way.
 5143: @c 
 5144: ファイルシステムは,一般的に,@code{find}の検索中に変更されます.実際に,
 5145: @code{find}がセキュリティの問題となる可能性のほとんどは,この問題にある
 5146: 程度関連します.
 5147: 
 5148: @c Race conditions are a general class of security problem where the
 5149: @c relative ordering of actions taken by @code{find} (for example) and
 5150: @c something else are important@footnote{This is more or less the
 5151: @c definition of the term ``race condition''} .  
 5152: @c 
 5153: 競合状態は,(例えば) @code{find}に渡されるアクションの順番に関連するセ
 5154: キュリティの問題に分類され,それ以外が重要です@footnote{これは,用語
 5155: ``競合状態(race condition)''のだいたいの定義になります}.
 5156: 
 5157: @c Typically, an attacker might move or rename files or directories in
 5158: @c the hope that an action might be taken against a a file which was not
 5159: @c normally intended to be affected.  Alternatively, this sort of attack
 5160: @c might be intended to persuade @code{find} to search part of the
 5161: @c filesystem which would not normally be included in the search
 5162: @c (defeating the @code{-prune} action for example).  
 5163: @c 
 5164: 一般的に,普通は影響するはずがないファイルに対して,攻撃者が期待するア
 5165: クションでファイルやディレクトリの移動や削除を行います.また,このよう
 5166: なの攻撃は,@code{find}に,普通は検索されない(例えば,@code{-prune}アク
 5167: ションで抑止)ファイルシステムの一部を検索するようにしむけます.
 5168: 
 5169: @menu
 5170: * Changing the Current Working Directory::
 5171: * Race Conditions with -exec::
 5172: * Race Conditions with -print and -print0::
 5173: @end menu
 5174: 
 5175: 
 5176: @node Changing the Current Working Directory
 5177: @c @subsection Changing the Current Working Directory
 5178: @subsection 現在の作業ディレクトリの変更
 5179: 
 5180: @c As find searches the file system, it finds subdirectories and then
 5181: @c searches within them by changing its working directory.  First,
 5182: @c @code{find} notices a subdirectory.  It then decides if that
 5183: @c subdirectory meets the criteria for being searched; that is, any
 5184: @c @samp{-xdev} or @samp{-prune} expressions are taken into account.  The
 5185: @c @code{find} program will then change working directory and proceed to
 5186: @c search the directory.
 5187: @c 
 5188: @command{find}がファイルシステムを検索するとき,サブディレクトリを探し,
 5189: 作業ディレクトリを変更しながら検索します.最初に,@code{find}はサブディ
 5190: レクトリに注目します.サブディレクトリが検索する基準にあっている場合,
 5191: それが決定されます.つまり,@samp{-xdev}や@samp{-prune}式は考慮されます.
 5192: @code{find}プログラムは,作業ディレクトリを変更し,ディレクトリの検索を
 5193: 進めていきます.
 5194: 
 5195: @c A race condition attack might take the form that once the checks
 5196: @c relevant to @samp{-xdev} and @samp{-prune} have been done, an attacker
 5197: @c might rename the directory that was being considered, and put in its
 5198: @c place a symbolic link that actually points somewhere else.  
 5199: @c 
 5200: 競合状態の攻撃とは,@samp{-xdev}と@samp{-prune}に関連して一度調査された
 5201: 後,攻撃者は考えられるディレクトリの名前を変更し,その場所を別の場所を
 5202: 示しているシンボリックリンクを配置するといった形態になります.
 5203: 
 5204: @c The idea behind this attack is to fool @code{find} into going into the
 5205: @c wrong directory.  This would leave @code{find} with a working
 5206: @c directory chosen by an attacker, bypassing any protection apparently
 5207: @c provided by @samp{-xdev} and @samp{-prune}, and any protection
 5208: @c provided by being able to @emph{not} list particular directories on
 5209: @c the @code{find} command line.  This form of attack is particularly
 5210: @c problematic if the attacker can predict when the @code{find} command
 5211: @c will be run, as is the case with @code{cron} tasks for example.
 5212: @c 
 5213: この攻撃のは以後にある考えとは,@code{find}が間違ったディレクトリに行っ
 5214: てしまう程度に愚かであるということです.これは,攻撃者が選択した作業ディ
 5215: レクトリで@code{find}を続け,@samp{-xdev}と@samp{-prune}で明示的に提供
 5216: された保護機能と,@code{find}コマンドラインにリストアップされた特定のディ
 5217: レクトリ@emph{以外を}利用できなくすることで提供される保護機能をバイパス
 5218: するということです.この形態の攻撃は,攻撃者が@code{find}コマンドを実行
 5219: するときが予測可能な場合,例えば@code{cron}のタスク等で,特に問題になり
 5220: ます.
 5221: 
 5222: @c GNU @code{find} has specific safeguards to prevent this general class
 5223: @c of problem.  The exact form of these safeguards depends on the
 5224: @c properties of your system.  
 5225: @c 
 5226: GNU @code{find}には,この一般に分類される問題を避けるための,固有のセー
 5227: フガードがあります.これらのセーフガードの正確な形態は,システムの特性
 5228: に依存します.
 5229: 
 5230: @menu 
 5231: * O_NOFOLLOW::                     Safely changing directory using fchdir().
 5232: * Systems without O_NOFOLLOW::     Checking for symbolic links after chdir().
 5233: * Working with automounters::      These can look like race condition exploits
 5234: * Problems with dead NFS servers:: If you don't have O_NOFOLLOW, this is a problem.
 5235: @end menu
 5236: 
 5237: @node O_NOFOLLOW
 5238: @subsubsection O_NOFOLLOW 
 5239: 
 5240: @c If your system supports the O_NOFOLLOW flag @footnote{GNU/Linux
 5241: @c (kernel version 2.1.126 and later) and FreeBSD (3.0-CURRENT and later)
 5242: @c support this} to the @code{open(2)} system call, @code{find} uses it
 5243: @c when safely changing directory.  The target directory is first opened
 5244: @c and then @code{find} changes working directory with the
 5245: @c @code{fchdir()} system call.  This ensures that symbolic links are not
 5246: @c followed, preventing the sort of race condition attack in which use
 5247: @c is made of symbolic links.
 5248: @c 
 5249: システムが@code{open(2)}システムコールのO_NOFOLLOWフラグをサポートする
 5250: 場合@footnote{GNU/Linux (kernel version 2.1.126 以降)そしてFreeBSD
 5251: (3.0-CURRENT 以降)はこれをサポートします},@code{find}は安全にディレク
 5252: トリを変更するとき使用します.目的となるディレクトリは最初にオープンさ
 5253: れ,@code{find}は@code{fchdir()}システムコールで作業ディレクトリを変更
 5254: します.これで,シンボリックリンクは確実にたどられなくなり,シンボリッ
 5255: クリンクの作成を使用する競合状態の攻撃の類は避けられます.
 5256: 
 5257: @c If for any reason this approach does not work, @code{find} will fall
 5258: @c back on the method which is normally used if O_NOFOLLOW is not
 5259: @c supported.
 5260: @c 
 5261: なんらかの理由でこの手法が動作しない場合,@code{find}はO_NOFOLLOWがサポー
 5262: トされていない状況で一般的に使用される手法に戻ります.
 5263: 
 5264: @c You can tell if your system supports O_NOFOLLOW by running 
 5265: @c 
 5266: 以下を実行することで,システムがO_NOFOLLOWをサポートしてかどうか分かり
 5267: ます.
 5268: 
 5269: @example
 5270: find --version
 5271: @end example
 5272: 
 5273: @c This will tell you the version number and which features are enabled.
 5274: @c For example, if I run this on my system now, this gives:
 5275: @c 
 5276: これで,バージョン番号と利用可能な機能が表示されます.例えば,私のシス
 5277: テムでは以下のようになります.
 5278: @example
 5279: GNU find version 4.2.18-CVS
 5280: Features enabled: D_TYPE O_NOFOLLOW(enabled)
 5281: @end example
 5282: 
 5283: @c Here, you can see that I am running a version of find which was built
 5284: @c from the development (CVS) code prior to the release of
 5285: @c findutils-4.2.18, and that the D_TYPE and O_NOFOLLOW features are
 5286: @c present.  O_NOFOLLOW is qualified with ``enabled''.  This simply means
 5287: @c that the current system seems to support O_NOFOLLOW.  This check is
 5288: @c needed because it is possible to build find on a system that defines
 5289: @c O_NOFOLLOW and then run it on a system that ignores the O_NOFOLLOW
 5290: @c flag.  We try to detect such cases at startup by checking the
 5291: @c operating system and version number; when this happens you will see
 5292: @c ``O_NOFOLLOW(disabled)'' instead.
 5293: @c 
 5294: ここで,実行している@command{find}のバージョンがfindutils-4.2.18の前の
 5295: リリースの開発(CVS)コードからビルドされたことと,D_TYPEとO_NOFOLLOWの機
 5296: 能が存在することが分かります.O_NOFOLLOWは``enabled''であると分かります.
 5297: これは,現在のシステムでO_NOFOLLOWをサポートしているらしいことを,簡単
 5298: に示しています.システムでビルドされた@command{find}がO_NOFOLLOWを定義
 5299: していて,O_NOFOLLOWフラグを無視するシステムで実行されている可能性があ
 5300: るので,この調査は必要です.我々は,開始時にオペレーティングシステムと
 5301: バージョン番号を調査することで,そのような状況の検出を試みます.このよ
 5302: うな状況では,``O_NOFOLLOW(disabled)''を代わりに見ることになります.
 5303: 
 5304: 
 5305: @node Systems without O_NOFOLLOW
 5306: @c @subsubsection Systems without O_NOFOLLOW
 5307: @subsubsection O_NOFOLLOWが無いシステム
 5308: 
 5309: @c The strategy for preventing this type of problem on systems that lack
 5310: @c support for the O_NOFOLLOW flag is more complex.  Each time
 5311: @c @code{find} changes directory, it examines the directory it is about
 5312: @c to move to, issues the @code{chdir()} system call, and then checks
 5313: @c that it has ended up in the subdirectory it expected.  If not, an
 5314: @c error message is issued and @code{find} exits immediately.  This
 5315: @c method prevents filesystem manipulation attacks from persuading
 5316: @c @code{find} to search parts of the filesystem it did not intend.
 5317: @c However, we heve to take special steps in order not to unnecessarily
 5318: @c conclude that there is a problem with any ``automount'' mount points.
 5319: @c 
 5320: O_NOFOLLOWフラグのサポートがが無いシステムで,この形式の問題を避ける戦
 5321: 略はより複雑です.@code{find}がディレクトリを変更するたびに,移動先のディ
 5322: レクトリを調査し,@code{chdir()}システムコールを発行し,期待されている
 5323: サブディレクトリまで調査します.それ以外の場合,エラーメッセージを出力
 5324: し,@code{find}はただちに終了します.この手法は,@code{find}に意図しな
 5325: いファイルシステムの部分を検索させる,ファイルシステム操作の攻撃を妨げ
 5326: ます.しかし,``automount''のマウントポイントで問題となる無駄な断定を行
 5327: わないよう,特殊なステップが必要になります.
 5328: 
 5329: @node Working with automounters
 5330: @c @subsubsection Working with automounters
 5331: @subsubsection オートマウントでの作業
 5332: 
 5333: @c Where an automounter is in use it can be the case that the use of the
 5334: @c @code{chdir()} system call can itself cause a new filesystem to be
 5335: @c mounted at that point.  On systems that do not support O_NOFOLLOW,
 5336: @c this will cause @code{find}'s security check to fail.  
 5337: @c 
 5338: オートマウントを使用中は,@code{chdir()}システムコールの使用で,マウン
 5339: トポイントにマウントされた新しいファイルシステムに移動することが可能に
 5340: なる状況です.O_NOFOLLOWをサポートしていないシステムでは,@code{find}の
 5341: セキュリティ調査に失敗します.
 5342: 
 5343: @c However, this does not normally represent a security problem (since
 5344: @c the automounter configuration is normally set up by the system
 5345: @c administrator).  Therefore, if the @code{chdir()} sanity check fails,
 5346: @c @code{find} will check to see if a new filesystem has been mounted at
 5347: @c the current directory; if so, @code{find} will issue a warning message
 5348: @c and continue.
 5349: @c 
 5350: しかし,通常はセキュリティの問題にはなりません(通常はシステム管理者がオー
 5351: トマウントの構成を設定しているためです).そのため,@code{chdir()}の正統
 5352: 性の調査が失敗する場合,@code{find}は新しいファイルシステムが現在のディ
 5353: レクトリにマウントされているかどうかを調査します.その場合,
 5354: @code{find}は警告メッセージを出力し,動作を続けます.
 5355: 
 5356: @c To make this solution work, @code{find} reads the list of mounted
 5357: @c filesystems at startup, and again when the sanity check fails.  It
 5358: @c compares the two lists to find out if the directory it has moved into
 5359: @c has just been mounted.
 5360: @c 
 5361: この解決法を動作させるため,@code{find}はマウントされているファイルシス
 5362: テムのリストを,開始時と,正統性の調査に失敗したときに読み込みます.マ
 5363: ウントされたときからディレクトリが移動されているかどうかを調べるため,
 5364: 二つのリストを比較します.
 5365: 
 5366: @node Problems with dead NFS servers
 5367: @c @subsubsection Problems with dead NFS servers
 5368: @subsubsection NFSサーバが落ちている問題
 5369: 
 5370: @c Examining every mount point on the system has a downside too.  In
 5371: @c general, @code{find} will be used to search just part of the
 5372: @c filesystem.  However, @code{find} examines every mount point.  If the
 5373: @c system has a filesystem mounted on an unresponsive NFS server,
 5374: @c @code{find} will hang, waiting for the NFS server to respond.  Worse,
 5375: @c it does this even if the affected mount point is not within the
 5376: @c directory tree that find would have searched anyway.
 5377: @c 
 5378: システムのマウントポイントごとに調査することは,非常に悪い方向です.一
 5379: 般的に,@code{find}は,ファイルシステムの一部だけを検索します.しかし,
 5380: @code{find}はすべてのマウントポイントを調査します.システムに,信用でき
 5381: ないNFSサーバをマウントしたファイルシステムがある場合,@code{find}はハ
 5382: ングアップし,NFSサーバが応答するまで待ち続けます.更に悪いことに,マウ
 5383: ントポイントが,@code{find}が検索しないディレクトリツリーにあっても影響
 5384: します.
 5385: 
 5386: @c This is very unfortunate.  However, this problem only affects systems
 5387: @c that have no support for O_NOFOLLOW.  As far as I can tell, it is not
 5388: @c possible on such systems to fix all three problems (the race
 5389: @c condition, the false-alarm at automount mount points, and the hang at
 5390: @c startup if there is a dead NFS server) at once.  If you have some
 5391: @c ideas about how @code{find} could do this better, please send email to
 5392: @c the @email{bug-findutils@@gnu.org} mailing list.
 5393: @c 
 5394: これは非常に不幸です.しかし,この問題は,O_NOFOLLOWをサポートしていな
 5395: いシステムだけに影響します.私が知る限り,そのようなシステムで,これら
 5396: 三つのすべての問題を(競合状態,オートマウントの間違った警告,NFSサーバ
 5397: がダウンしていた場合のハングアップ)一度に修正することは不可能です.
 5398: @code{find}で可能なより良いアイデアがあれば,メーリングリスト
 5399: @email{bug-findutils@@gnu.org}に電子メールを送って下さい.
 5400: 
 5401: @node Race Conditions with -exec
 5402: @c @subsection Race Conditions with -exec
 5403: @subsection -execでの競合状態
 5404: 
 5405: @c The @samp{-exec} action causes another program to be run.  It is
 5406: @c passed the name of the file which is being considered at the time.
 5407: @c The invoked program will then - normally - perform some action on that
 5408: @c file.  Once again, there is a race condition which can be exploited
 5409: @c here.  We shall take as a specific example the command
 5410: @c 
 5411: @samp{-exec}アクションでは別のプログラムを実行します.その時にファイル
 5412: 名を渡します.そしてプログラムを呼び出します -通常- ファイルになんらか
 5413: のアクションを実施します.ここでも,利用可能な競合状態があります.我々
 5414: は,コマンド例を以下のように指定します.
 5415: 
 5416: @example 
 5417: find /tmp -path /tmp/umsp/passwd -exec /bin/rm
 5418: @end example
 5419: 
 5420: @c In this simple example, we are identifying just one file to be deleted
 5421: @c and invoking @code{/bin/rm} to delete it.  A problem exists because
 5422: @c there is a time gap between the point where @code{find} decides that
 5423: @c it needs to process the @samp{-exec} action and the point where the
 5424: @c @code{/bin/rm} command actually issues the @code{unlink()} system
 5425: @c call.  Within this time period, an attacker can rename the
 5426: @c @file{/tmp/umsp} directory, replacing it with a symbolic link to
 5427: @c @file{/etc}.   There is no way for @code{/bin/rm} to determine that it
 5428: @c is working on the same file that @code{find} had in mind.   Once the
 5429: @c symbolic link is in place, the attacker has persuaded @code{find} to
 5430: @c cause the deletion of the @file{/etc/passwd} file, which is not the
 5431: @c effect intended by the command which was actually invoked.  
 5432: @c 
 5433: この見本例では,我々は削除する一つのファイルを識別し,削除するために
 5434: @code{/bin/rm}を呼び出しています.@code{find}が@samp{-exec}アクションを
 5435: 処理する必要があることを決定する時点と,@code{/bin/rm}コマンドが実際に
 5436: @code{unlink()}システムコールを実施する時点に時間差があるので,問題が存
 5437: 在します.このとき,攻撃者は@file{/tmp/umsp}ディレクトリの名前を変更し,
 5438: @file{/etc}へのシンボリックリンクに置換することが可能です.@code{find}
 5439: が想定しているのと同じファイルで,@code{/bin/rm}を実施していることを調
 5440: 査する方法はありません.一度シンボリックリンクが配置されると,実際に呼
 5441: び出したコマンドが意図している効果ではなく,攻撃者は@code{find}に
 5442: @file{/etc/passwd}ファイルを削除させるようだますこともあります.
 5443: 
 5444: @c One possible defence against this type of attack is to modify the
 5445: @c behaviour of @samp{-exec} so that the @code{/bin/rm} command is run
 5446: @c with the argument @file{./passwd} and a suitable choice of working
 5447: @c directory.  This would allow the normal sanity check that @code{find}
 5448: @c performs to protect against this form of attack too.  Unfortunately,
 5449: @c this strategy cannot be used as the POSIX standard specifies that the
 5450: @c current working directory for commands invoked via @samp{-exec} must
 5451: @c be the same as the current working directory from which @code{find}
 5452: @c was invoked.   This means that the @samp{-exec} action is inherently
 5453: @c insecure and can't be fixed.   
 5454: @c 
 5455: この形態の攻撃から守る一つの可能性として,@samp{-exec}の動作を
 5456: @code{/bin/rm}コマンドを@file{./passwd}引数で,適切なワーキングディレク
 5457: トリで実行するようにする方法です.これは,この形式の攻撃から守るために
 5458: @code{find}が実行する,通常の健全性の調査でも可能です.残念ながら,この
 5459: 戦略はPOSIX標準で指定されている物では利用不可能で,そこでは
 5460: @samp{-exec}でコマンドが呼び出されたカレントワーキングディレクトリと,
 5461: @code{find}が呼び出されたカレントワーキングディレクトリは同じにする必要
 5462: があります.つまり,@samp{-exec}アクションは本質的にセキュリティが低く,
 5463: 修正不可能だということを意味します.
 5464: 
 5465: @c GNU @code{find} implements a more secure variant of the @samp{-exec}
 5466: @c action, @samp{-execdir}.  The @samp{-execdir} action
 5467: @c ensures that it is not necessary to dereference subdirectories to
 5468: @c process target files.  The current directory used to invoke programs
 5469: @c is the same as the directory in which the file to be processed exists
 5470: @c (@file{/tmp/umsp} in our example, and only the basename of the file to
 5471: @c be processed is passed to the invoked command, with a @samp{./}
 5472: @c prepended (giving @file{./passwd} in our example).
 5473: @c 
 5474: GNU @code{find}では,@samp{-exec}アクション等よりセキュリティが高い
 5475: @samp{-execdir}を実装しています.@samp{-execdir}アクションは,ターゲッ
 5476: トファイルを処理するため,サブディレクトリを参照しないようにする必要が
 5477: なくなるようにします.プログラムの呼び出しで使用されるカレントディレク
 5478: トリが,処理するファイルが存在するディレクトリと同じ(例では
 5479: @file{/tmp/umsp})になっていて,処理するファイルのベース名が呼び出しコマ
 5480: ンドに渡され,それには@samp{./}が(例では@file{./passwd})前置されます.
 5481: 
 5482: @c The @samp{-execdir} action refuses to do anything if the current
 5483: @c directory is included in the @var{$PATH} environment variable.  This
 5484: @c is necessary because @samp{-execdir} runs programs in the same
 5485: @c directory in which it finds files -- in general, such a directory
 5486: @c might be writable by untrusted users.  For similar reasons,
 5487: @c @samp{-execdir} does not allow @samp{@{@}} to appear in the name of
 5488: @c the command to be run.
 5489: @c 
 5490: @samp{-execdir}アクションは,カレントディレクトリが@var{$PATH}環境変数
 5491: に含まれている場合,すべての動作を拒否します.これは,@samp{-execdir}が
 5492: ファイルが見つかったディレクトリと同じディレクトリのプログラムを実行す
 5493: るので必要になります -- 一般的に,そのようなディレクトリは信用できない
 5494: ユーザは書き込みません.同じような理由で,@samp{-execdir}は実行するコマ
 5495: ンド名の@samp{@{@}}を許可しません.
 5496: 
 5497: @node Race Conditions with -print and -print0
 5498: @c @subsection Race Conditions with -print and -print0
 5499: @subsection -printと-print0の競合状態
 5500: 
 5501: @c The @samp{-print} and @samp{-print0} actions can be used to produce a
 5502: @c list of files matching some criteria, which can then be used with some
 5503: @c other command, perhaps with @code{xargs}.   Unfortunately, this means
 5504: @c that there is an unavoidable time gap between @code{find} deciding
 5505: @c that one or more files meet its criteria and the relevant command
 5506: @c being executed.  For this reason, the @samp{-print} and @samp{-print0}
 5507: @c actions are just as insecure as @samp{-exec}.
 5508: @c 
 5509: @samp{-print}と@samp{-print0}アクションは,幾つかの条件にマッチしたファ
 5510: イルリストを生成するために利用することが可能で,そのリストは他のコマン
 5511: ド,おそらく@code{xargs}で使用することが可能です.残念ながら,これには,
 5512: @code{find}が条件に合致した一つ以上のファイルを見つけたときと,関連する
 5513: コマンドが実行されるときの,やむおえない時間差が存在することを意味しま
 5514: す.このため,@samp{-print}と@samp{-print0}のアクションは,
 5515: @samp{-exec}同様にセキュリティが高くありません.
 5516: 
 5517: @c In fact, since the construction 
 5518: @c 
 5519: 実際に,以下を考えてみます.
 5520: 
 5521: @example
 5522: find ....   -print | xargs ....
 5523: @end example
 5524: 
 5525: @c does not cope correctly with newlines or other ``white space'' in
 5526: @c filenames, and copes poorly with filenames containing quotes, the
 5527: @c @samp{-print} action is less secure even than @samp{-print0}.
 5528: @c 
 5529: これは,改行やその他の``空白''がファイル名にある場合,正しく対処できま
 5530: せんし,引用符を含むファイル名への対応もいまいちですし,@samp{-print}ア
 5531: クションは,@samp{-print0}ほどセキュリティが高くありません.
 5532: 
 5533: @comment  node-name,  next,  previous,  up
 5534: @comment @node Security Considerations for xargs
 5535: @node Security Considerations for xargs
 5536: @c @section Security Considerations for @code{xargs}
 5537: @section @code{xargs}のセキュリティの検討
 5538: 
 5539: @c The description of the race conditions affecting the @samp{-print}
 5540: @c action of @code{find} shows that @code{xargs} cannot be secure if it
 5541: @c is possible for an attacker to modify a filesystem after @code{find}
 5542: @c has started but before @code{xargs} has completed all its actions.
 5543: @c 
 5544: @code{find}の@samp{-print}による競合状態の影響の記述は,@code{find}の開
 5545: 始後かつ@code{xargs}がすべてのアクションを完了する前に攻撃者がファイル
 5546: システムを変更する可能性がある場合,@code{xargs}でセキュリティを高くす
 5547: ることが不可能なことを示しています.
 5548: 
 5549: @c However, there are other security issues that exist even if it is not
 5550: @c possible for an attacker to have access to the filesystem in real
 5551: @c time.  Firstly, if it is possible for an attacker to create files with
 5552: @c names of their own choice on the filesystem, then @code{xargs} is
 5553: @c insecure unless the @samp{-0} option is used.  If a file with the name
 5554: @c @file{/home/someuser/foo/bar\n/etc/passwd} exists (assume that
 5555: @c @samp{\n} stands for a newline character), then @code{find ... -print}
 5556: @c can be persuaded to print three separate lines:
 5557: @c 
 5558: しかし,攻撃者がリアルタイムでファイルシステムにアクセスできない場合で
 5559: さえも,セキュリティの問題が他にも存在しています.第一に,攻撃者がファ
 5560: イルシステム上に,自分が選んだ名前でファイルを作成可能な場合,
 5561: @code{xargs}は@samp{-0}オプションを使用しない限りセキュリティが低くなり
 5562: ます.@file{/home/someuser/foo/bar\n/etc/passwd}というファイル名が存在
 5563: する場合(@samp{\n}が改行文字を意味すると仮定します),@code{find ...
 5564: -print}では,間違って三行に分割した行を出力するはずです.
 5565: 
 5566: @example
 5567: /home/someuser/foo/bar
 5568: 
 5569: /etc/passwd
 5570: @end example
 5571: 
 5572: @c If it finds a blank line in the input, @code{xargs} will ignore it.
 5573: @c Therefore, if some action is to be taken on the basis of this list of
 5574: @c files, the @file{/etc/passwd} file would be included even if this was
 5575: @c not the intent of the person running find.  There are circumstances in
 5576: @c which an attacker can use this to their advantage.  The same
 5577: @c consideration applies to filenames containing ordinary spaces rather
 5578: @c than newlines, except that of course the list of filenames will no
 5579: @c longer contain an ``extra'' newline.
 5580: @c 
 5581: 入力に改行がある場合,@code{xargs}はそれを無視します.このため,このファ
 5582: イルリストを元に実施されるアクションには,これが@command{find}を実行し
 5583: ている人が期待していない@file{/etc/passwd}ファイルが含まれます.攻撃者
 5584: がこの優位性を使用可能な状況も存在します.同じ状況は,ファイル名に改行
 5585: ではなく普通の空行が存在する場合も存在し,もちろん,ファイル名のリスト
 5586: には``余分な''改行は含まれていません.
 5587: 
 5588: @c This problem is an unavoidable consequence of the default behaviour of
 5589: @c the @code{xargs} command, which is specified by the POSIX standard.
 5590: @c The only ways to avoid this problem are either to avoid all use of
 5591: @c @code{xargs} in favour for example of @samp{find -exec} or (where
 5592: @c available) @samp{find -execdir}, or to use the @samp{-0} option, which
 5593: @c ensures that @code{xargs} considers filenames to be separated by ASCII
 5594: @c NUL characters rather than whitespace.  However, useful though this
 5595: @c option is, the POSIX standard does not make it mandatory.
 5596: @c 
 5597: この問題は,@code{xargs}コマンドのデフォルトの動作,つまりPOSIX標準で指
 5598: 定された動作の結果から回避することができません.この問題を避ける方法は,
 5599: @code{xargs}の使用を避け,より好ましい@samp{find -exec}や(利用可能であ
 5600: れば)@samp{find -execdir}を使用したり,@code{xargs}にファイル名が空白で
 5601: はなくASCIIのNUL文字で分離していると理解させる@samp{-0}オプションを使用
 5602: することだけです.しかし,このオプションは役に立ちますが,POSIXの標準で
 5603: は必須とされていません.
 5604: 
 5605: @comment  node-name,  next,  previous,  up
 5606: @node Security Considerations for locate
 5607: @c @section Security Considerations for @code{locate}
 5608: @section @code{locate}のセキュリティの検討
 5609: 
 5610: @c It is fairly unusual for the output of @code{locate} to be fed into
 5611: @c another command.  However, if this were to be done, this would raise
 5612: @c the same set of security issues as the use of @samp{find ... -print}.
 5613: @c Although the problems relating to whitespace in filenames can be
 5614: @c resolved by using @code{locate}'s @samp{-0} option, this still leaves
 5615: @c the race condition problems associated with @samp{find ... -print0}.
 5616: @c There is no way to avoid these problems in the case of @code{locate}.
 5617: @c 
 5618: @code{locate}の出力を他のコマンドに渡すことは滅多にありません.しかし,
 5619: そうする場合は@samp{find ... -print}の使用と同じようなセキュリティの問
 5620: 題が生じるでしょう.しかし,ファイル名の空白に依存する問題は,
 5621: @code{locate}の@samp{-0}オプションで解決することが可能ですが,これでも
 5622: @samp{find ... -print0}に関連する競合状態の問題は残ります.
 5623: @code{locate}では,これらの問題を避ける方法がありません.
 5624: 
 5625: @node Security Summary
 5626: @c @section Summary
 5627: @section 概要
 5628: 
 5629: @c Where untrusted parties can create files on the system, or affect the
 5630: @c names of files that are created, all uses for @code{find},
 5631: @c @code{locate} and @code{xargs} have known security problems except the
 5632: @c following:
 5633: @c 
 5634: 信用できない第三者が,システム上にファイルを作成できたり,作成したファ
 5635: イル名に化如することができる場合,@code{find},@code{locate},そして
 5636: @code{xargs}の使用時には,以下以外のセキュリティの問題を知っておいてく
 5637: ださい.
 5638: 
 5639: @table @asis
 5640: @item Informational use only
 5641: @c Uses where the programs are used to prepare lists of filenames upon which no further action will ever be taken.
 5642: @c 
 5643: プログラムが前もって準備されているファイル名のリストを使用し,それ以上
 5644: のアクションを実施しないように使用する.
 5645: 
 5646: @item -delete 
 5647: @c Use of the @samp{-delete} action to delete files which meet
 5648: @c specified criteria
 5649: @c 
 5650: 指定した条件に合致したファイルを削除する@samp{-delete}アクションを使用
 5651: する.
 5652: 
 5653: @item -execdir 
 5654: @c Use of the @samp{-execdir} action where the @env{PATH}
 5655: @c environment variable contains directories which contain only trusted
 5656: @c programs. 
 5657: @c 
 5658: @env{PATH}環境変数が,信用されたプログラムだけが含まれているディレクト
 5659: リとなっている状況で,@samp{-execdir}アクションを使用する.
 5660: @end table
 5661: 
 5662: @comment  node-name,  next,  previous,  up
 5663: @node Error Messages, Primary Index, Security Considerations, Top
 5664: @c @chapter Error Messages
 5665: @chapter エラーメッセージ
 5666: 
 5667: @c This section describes some of the error messages you might get from
 5668: @c @code{find}, @code{xargs}, or @code{locate}, explains them and in some
 5669: @c cases provides advice as to what you should do about this.
 5670: @c 
 5671: このセクションでは,@code{find},@code{xargs},または@code{locate}から
 5672: 得られるエラーメッセージの説明,為すべきことへのアドバイスを記述します.
 5673: 
 5674: @c This manual is written in English.  The GNU findutils software
 5675: @c features translated error messages for many languages.  For this
 5676: @c reason where possible we try to make the error messages produced by
 5677: @c the programs self-explanatory.  This approach avoids asking people to
 5678: @c figure out which English-language error message the test they actually
 5679: @c saw might correspond to. Error messages which are self-explanatory
 5680: @c will not normally be described or discussed in this document.  For
 5681: @c those messages which are discussed in this document, only the
 5682: @c English-language version of the message will be listed.
 5683: @c 
 5684: このマニュアルは英語で書かれています.GNU findutilsソフトウェアはエラー
 5685: メッセージを多くの言語に翻訳されています.このためできるだけ我々は,プ
 5686: ログラムに自明のことでエラーメッセージを生成させようと思います.この手
 5687: 法は,英語のエラーメッセージに対応する別のものを実際には見ることになる
 5688: 人々に,理解してもらうようお願いすることが難しくなります.通常,自明の
 5689: エラーメッセージは記述しませんし,このドキュメントでも議論しません.こ
 5690: のドキュメントで議論しているメッセージとして,英後のバージョンのメッセー
 5691: ジだけリストアップしています.
 5692: 
 5693: @menu
 5694: * Error Messages From find::
 5695: * Error Messages From xargs::
 5696: * Error Messages From locate::
 5697: * Error Messages From updatedb::
 5698: @end menu
 5699: 
 5700: @node Error Messages From find, Error Messages From xargs, , Error Messages
 5701: @c @section Error Messages From find
 5702: @section findのエラーメッセージ
 5703: 
 5704: @table @samp
 5705: @item invalid predicate `-foo'
 5706: @c This means that the @code{find} command line included something that
 5707: @c started with a dash or other special character.  The @code{find}
 5708: @c program tried to interpret this as a test, action or option, but
 5709: @c didn't recognise it.  If you intended it to be a test, check what you
 5710: @c specified against the documentation.  If, on the other hand, the
 5711: @c string is the name of a file which has been expanded from a wildcard
 5712: @c (for example because you have a @samp{*} on the command line),
 5713: @c consider using @samp{./*} or just @samp{.} instead.
 5714: @c 
 5715: これは,@code{find}のコマンドラインにダッシュやその他の特殊文字で開始さ
 5716: れるものが含まれていることを意味します.@code{find}プログラムはこれを,
 5717: テスト,アクション,またはオプションとして解釈しようとしますが,認識は
 5718: しません.テストを試みる場合,指定しているものについてドキュメントを調
 5719: 査して下さい.一方,文字列がワイルドカードを展開したファイル名の場合(例
 5720: えば,コマンドラインに@samp{*}がある場合),@samp{./*}や@samp{.}を代わり
 5721: に使用していると考慮します.
 5722: 
 5723: @item unexpected extra predicate
 5724: @c This usually happens if you have an extra bracket on the command line
 5725: @c (for example @samp{find . -print \)}).
 5726: @c 
 5727: コマンドラインに余分な括弧がある場合(例えば,@samp{find . -print \)}),
 5728: 通常はこうなります.
 5729: 
 5730: @item Warning: filesystem /path/foo has recently been mounted
 5731: @itemx Warning: filesystem /path/foo has recently been unmounted
 5732: @c These messages might appear when @code{find} moves into a directory
 5733: @c and finds that the device number and inode are different to what it
 5734: @c expected them to be.  If the directory @code{find} has moved into is
 5735: @c on an NFS filesystem, it will not issue this message, because
 5736: @c @code{automount} frequently mounts new filesystems on directories as
 5737: @c you move into them (that is how it knows you want to use the
 5738: @c filesystem).  So, if you do see this message, be wary --
 5739: @c @code{automount} may not have been responsible.  Consider the
 5740: @c possibility that someone else is manipulating the filesystem while
 5741: @c @code{find} is running.  Some people might do this in order to mislead
 5742: @c @code{find} or persuade it to look at one set of files when it thought
 5743: @c it was looking at another set.
 5744: @c 
 5745: これらのメッセージは,@code{find}がディレクトリに移動し,デバイス番号と
 5746: inodeが期待したものと異なるものが見つかったときに出力されます.
 5747: @code{find}が移動したディレクトリがNFSファイルシステムの場合,
 5748: @code{automount}は新しいファイルシステムを移動先のディレクトリにマウン
 5749: トすることが多いので(つまり,使用したいファイルシステムを知る方法です),
 5750: このメッセージは出力されません.そのため,このメッセージが出力される場
 5751: 合は油断しないでください -- @code{automount}が信用できない可能性があり
 5752: ます.他の誰かが@code{find}の実行中にファイルシステムを捜査している可能
 5753: 性を検討してください.@code{find}を迷わせたり,別のファイル集合を探して
 5754: いるときに,それもファイルの集合だとみせかけたい人もいます.
 5755: 
 5756: @item /path/foo changed during execution of find (old device number 12345, new device number 6789, filesystem type is <whatever>) [ref XXX]
 5757: @c This message is issued when @code{find} changes directory and ends up
 5758: @c somewhere it didn't expect to be.  This happens in one of two
 5759: @c circumstances.  Firstly this happens when ``automount'' does its thing
 5760: @c on a system where @code{find} doesn't know how to determine what the
 5761: @c current set of mounted filesystems is
 5762: @c 
 5763: このメッセージは,@code{find}がディレクトリを変更し,期待しない場所に移
 5764: 動したときに出力されます.これは二つの状況のいずれかになります.最初の
 5765: ものは,``オートマウント''で,@code{find}がマウントされているファイルシ
 5766: ステムの現在の場所を決定する方法を知らないときに生じます.
 5767: 
 5768: @c Secondly, this can happen when the device number of a directory
 5769: @c appears to change during a change of current directory, but
 5770: @c @code{find} is moving up the filesystem hierarchy rather than down it.
 5771: @c In order to prevent @code{find} wandering off into some unexpected
 5772: @c part of the filesystem, we stop it at this point.
 5773: @c 
 5774: 二番目は,@code{find}がファイルシステムの階層を降りるのではなく上がって
 5775: 行くときに,ディレクトリのデバイス番号がカレントディレクトリの変更中に
 5776: 変わるとき生じます.@code{find}がファイルシステムの期待しない部分に迷い
 5777: 込まないように,我々はこの時点で停止します.
 5778: 
 5779: @item Don't know how to use getmntent() to read `/etc/mtab'.  This is a bug.
 5780: @c This message is issued when a problem similar to the above occurs on a
 5781: @c system where @code{find} doesn't know how to figure out the current
 5782: @c list of mount points.  Ask for help on @email{bug-findutils@@gnu.org}.
 5783: @c 
 5784: このメッセージは,@code{find}が現在のマウントポイントのリストを知る方法
 5785: が分からないシステムで上記と同じように出力されます.
 5786: @email{bug-findutils@@gnu.org}でたずねてください.
 5787: 
 5788: @item /path/foo/bar changed during execution of find (old inode number 12345, new inode number 67893, filesystem type is <whatever>) [ref XXX]"),
 5789: @c This message is issued when @code{find} changes directory and
 5790: @c discovers that the inode number of that directory once it's got there
 5791: @c is different to the inode number that it obtained when it examined the
 5792: @c directory some time previously.  This normally means that while
 5793: @c @code{find} has been deep in a directory hierarchy doing something
 5794: @c time consuming, somebody has moved the one of the parent directories
 5795: @c to another location in the same filesystem.  This may have been done
 5796: @c maliciously, or may not.  In any case, @code{find} stops at this point
 5797: @c in order to avoid traversing parts of the filesystem that it wasn't
 5798: @c intended to.  You can use @code{ls -li} or @code{find /path -inum
 5799: @c 12345 -o -inum 67893} to find out more about what has happened.
 5800: @c 
 5801: このメッセージは,@code{find}がディレクトリを変更したとき,ディレクトリ
 5802: のinode番号が以前取得したinode番号と異なる場合に出力されます.これは通
 5803: 常,@code{find}がディレクトリ階層の深いところに長時間いて,他の人が親ディ
 5804: レクトリを同じファイルシステムの別の場所に移動したことを意味します.こ
 5805: れは,悪意があったり無かったりします.この状況では,思いがけないファイ
 5806: ルシステムの矛盾を避けるため,その時点で@code{find}は停止します.生じた
 5807: ことを理解するため,@code{ls -li}や@code{find /path -inum 12345 -o
 5808: -inum 67893}を実行することが可能です.
 5809: 
 5810: @item sanity check of the fnmatch() library function failed.
 5811: @c Please submit a bug report.  You may well be asked questions about
 5812: @c your system, and if you compiled the @code{findutils} code yourself,
 5813: @c you should keep your copy of the build tree around.  The likely
 5814: @c explanation is that your system has a buggy implementation of
 5815: @c @code{fnmatch} that looks enough like the GNU version to fool
 5816: @c @code{configure}, but which doesn't work properly.
 5817: @c 
 5818: バグの報告をしてください.@code{findutils}のコードを自分でコンパイルし
 5819: た場合,ビルドツリーのコピーを保持したまま,システムの問題を質問しても
 5820: かまいません.同様の解釈として,GNUバージョンの@code{configure}に問題が
 5821: あるように思われますが,システムの@code{fnmatch}にバグがあるということ
 5822: で,恐らく正しく動かないでしょう.
 5823: 
 5824: @item cannot fork
 5825: @c This normally happens if you use the @code{-exec} action or a
 5826: @c something similar (@code{-ok} and so forth) but the system has run out
 5827: @c of free process slots.  This is either because the system is very busy
 5828: @c and the system has reached its maximum process limit, or because you
 5829: @c have a resource limit in place and you've reached it.  Check the
 5830: @c system for runaway processes (if @code{ps} still works).  Some process
 5831: @c slots are normally reserved for use by @samp{root}.
 5832: @c 
 5833: @code{-exec}アクションや,似たようなもの(@code{-ok}など)を使用していて,
 5834: システムがフリーのプロセススロットを使いきった場合に,通常これが発生し
 5835: ます.また,システムが非常にビジーでシステムの最大プロセスの制限に到達
 5836: したり,リソースの制限に到達したことも考えられます.暴走したプロセスを
 5837: システムで調査してください(@code{ps}が動作すればですが).プロセススロッ
 5838: トには,@samp{root}の利用に予約されているものもあります.
 5839: 
 5840: @item some-program terminated by signal 99
 5841: @c Some program which was launched via @code{-exec} or similar was killed
 5842: @c with a fatal signal.  This is just an advisory message.
 5843: @c 
 5844: @code{-exec}やそれに似たもので起動されたプログラムは,異常終了のシグナ
 5845: ルでキルされるものもあります.これは,それを報告するだけのメッセージで
 5846: す.
 5847: @end table
 5848: 
 5849: @node Error Messages From xargs, Error Messages From locate, Error Messages From find, Error Messages
 5850: @c @section Error Messages From xargs
 5851: @section xargsのエラーメッセージ
 5852: 
 5853: @table @samp
 5854: @item environment is too large for exec
 5855: @c This message means that you have so many environment variables set
 5856: @c (or such large values for them) that there is no room within the
 5857: @c system-imposed limits on program command-line argument length to
 5858: @c invoke any program.  I'm sure you did this deliberately.  Please try
 5859: @c unsetting some environment variables, or exiting the current shell.
 5860: @c 
 5861: このメッセージは環境変数が設定されすぎて(または,大きな値になっていて)
 5862: プログラムを呼び出すプログラムのコマンドラインの引数の長さに関するシス
 5863: テムの制限によって,余裕が無いことを意味します.これを意識的に行ってい
 5864: るかどうかを確かめたいと思います.環境変数を未設定状態にしたり,現在の
 5865: シェルを終了したりしてみてください.
 5866: 
 5867: @item can not fit single argument within argument list size limit
 5868: @c You are using the @samp{-i} option and @code{xargs} doesn't have
 5869: @c enough space to build a command line because it has read in a really
 5870: @c large item and it doesn't fit.  You can probably work around this
 5871: @c problem with the @samp{-s} option, but the default size is pretty
 5872: @c large.  You must be trying pretty hard to break @code{xargs}.
 5873: @c 
 5874: @samp{-i}オプションを使用していて,@code{xargs}のコマンドラインが非常に
 5875: 大きな項目があり,適切に実施できないほどになっていて,コマンドラインを
 5876: 作成する空間が十分に無いことを意味します.この問題は@samp{-s}オプション
 5877: で回避できると思いますが,デフォルトのサイズは非常に大きいものです.
 5878: @code{xargs}を壊すぐらいに大きいものを試していることでしょう.
 5879: 
 5880: @item cannot fork
 5881: @c See the description of the similar message for @code{find}.
 5882: @c 
 5883: @code{find}の同様のメッセージの記述を参照してください.
 5884: 
 5885: @item <program>: exited with status 255; aborting
 5886: @c When a command run by @code{xargs} exits with status 255, @code{xargs}
 5887: @c is supposed to stop.  If this is not what you intended, wrap the
 5888: @c program you are trying to invoke in a shell script which doesn't
 5889: @c return status 255.
 5890: @c 
 5891: @code{xargs}が実行するコマンドが255のステータスで終了したとき,
 5892: @code{xargs}は停止することになっています.こうすることを期待しない場合,
 5893: プログラムをシェルスクリプトから呼び出して,255のステータスを返さないよ
 5894: うなラッパーにしてください.
 5895: 
 5896: @item <program>: terminated by signal 99
 5897: @c See the description of the similar message for @code{find}.
 5898: @c 
 5899: @code{find}の同様のメッセージの記述を参照してください.
 5900: @end table
 5901: 
 5902: @node Error Messages From locate, Error Messages From updatedb, Error Messages From xargs, Error Messages
 5903: @c @section Error Messages From locate
 5904: @section locateのエラーメッセージ
 5905: 
 5906: @table @samp
 5907: @item warning: database `/usr/local/var/locatedb' is more than 8 days old
 5908: @c The @code{locate} program relies on a database which is periodically
 5909: @c built by the @code{updatedb} program.  That hasn't happened in a long
 5910: @c time.  To fix this problem, run @code{updatedb} manually.  This can
 5911: @c often happen on systems that are generally not left on, so the periodic
 5912: @c ``cron'' task which normally does this doesn't get a chance to run.
 5913: @c 
 5914: @code{locate}プログラムは,@code{updatedb}によって前もって構築されたデー
 5915: タベースに依存します.しばらく実行しないとそうなります.この問題を修正
 5916: するために,@code{updatedb}を手動で実行してください.これは,システムか
 5917: らしばらく離れていたときに発生することが多く,それは,定期的な``cron''
 5918: タスクが実行されないためです.
 5919: 
 5920: @item locate database `/usr/local/var/locatedb' is corrupt or invalid
 5921: @c This should not happen.  Re-run @code{updatedb}.  If that works, but
 5922: @c @code{locate} still produces this error, run @code{locate --version}
 5923: @c and @code{updatedb --version}.  These should produce the same output.
 5924: @c If not, you are using a mixed toolset; check your @samp{$PATH}
 5925: @c environment variable and your shell aliases (if you have any).  If
 5926: @c both programs claim to be GNU versions, this is a bug; all versions of
 5927: @c these programs should interoperate without problem.  Ask for help on
 5928: @c @email{bug-findutils@@gnu.org}.
 5929: @c 
 5930: これは発生すべきではありません.@code{updatedb}を再実行してください.動
 5931: 作するが,@code{locate}がまだこのエラーを生成する場合,@code{locate
 5932: --version}と@code{updatedb --version}を実行してください.これらは同じ出
 5933: 力を生成すべきです.そうでない場合,道具をまぜて使用しています.
 5934: @samp{$PATH}環境変数と,シェルのaliase(もしあれば)を調べてください.両
 5935: 方のプログラムがGNUバージョンであれば,これはバグです.これらのプログラ
 5936: ムのすべてのバージョンは,問題なければ相互互換性があるべきです.
 5937: @email{bug-findutils@@gnu.org}でたずねてみてください.
 5938: @end table
 5939: 
 5940: @node Error Messages From updatedb, , Error Messages From locate, Error Messages
 5941: @c @section Error Messages From updatedb
 5942: @section updatedbのエラーメッセージ
 5943: 
 5944: @c The @code{updatedb} program (and the programs it invokes) do issue
 5945: @c error messages, but none of them seem to me to be candidates for
 5946: @c guidance.  If you are having a problem understanding one of these, ask
 5947: @c for help on @email{bug-findutils@@gnu.org}.
 5948: @c 
 5949: @code{updatedb}プログラム(と,それが呼び出すプログラム)はエラーメッセー
 5950: ジを出力しますが,ガイダンスを要求する人がいそうにありません問題があっ
 5951: て.これらを理解したい場合,@email{bug-findutils@@gnu.org}でたずねてみ
 5952: てください.
 5953: 
 5954: @node Primary Index, , Error Messages, Top
 5955: @c @unnumbered @code{find} Primary Index
 5956: @unnumbered @code{find}のプライマリの索引
 5957: 
 5958: @c This is a list of all of the primaries (tests, actions, and options)
 5959: @c that make up @code{find} expressions for selecting files.  @xref{find
 5960: @c Expressions}, for more information on expressions.
 5961: @c 
 5962: これは,ファイルを検索するために@code{find}の式を作り上げる,(テスト,
 5963: アクション,そしてオプション) すべてのプライマリのリストです.式の詳細
 5964: は,@xref{find Expressions}.
 5965: 
 5966: @printindex fn
 5967: 
 5968: @bye
 5969: 
 5970: @comment texi related words used by Emacs' spell checker ispell.el
 5971: 
 5972: @comment LocalWords: texinfo setfilename settitle setchapternewpage
 5973: @comment LocalWords: iftex finalout ifinfo DIR titlepage vskip pt
 5974: @comment LocalWords: filll dir samp dfn noindent xref pxref
 5975: @comment LocalWords: var deffn texi deffnx itemx emph asis
 5976: @comment LocalWords: findex smallexample subsubsection cindex
 5977: @comment LocalWords: dircategory direntry itemize
 5978: 
 5979: @comment other words used by Emacs' spell checker ispell.el
 5980: @comment LocalWords: README fred updatedb xargs Plett Rendell akefile
 5981: @comment LocalWords: args grep Filesystems fo foo fOo wildcards iname
 5982: @comment LocalWords: ipath regex iregex expr fubar regexps
 5983: @comment LocalWords: metacharacters macs sr sc inode lname ilname
 5984: @comment LocalWords: sysdep noleaf ls inum xdev filesystems usr atime
 5985: @comment LocalWords: ctime mtime amin cmin mmin al daystart Sladkey rm
 5986: @comment LocalWords: anewer cnewer bckw rf xtype uname gname uid gid
 5987: @comment LocalWords: nouser nogroup chown chgrp perm ch maxdepth
 5988: @comment LocalWords: mindepth cpio src CD AFS statted stat fstype ufs
 5989: @comment LocalWords: nfs tmp mfs printf fprint dils rw djm Nov lwall
 5990: @comment LocalWords: POSIXLY fls fprintf strftime locale's EDT GMT AP
 5991: @comment LocalWords: EST diff perl backquotes sprintf Falstad Oct cron
 5992: @comment LocalWords: eg vmunix mkdir afs allexec allwrite ARG bigram
 5993: @comment LocalWords: bigrams cd chmod comp crc CVS dbfile dum eof
 5994: @comment LocalWords: fileserver filesystem fn frcode Ghazi Hnewc iXX
 5995: @comment LocalWords: joeuser Kaveh localpaths localuser LOGNAME
 5996: @comment LocalWords: Meyering mv netpaths netuser nonblank nonblanks
 5997: @comment LocalWords: ois ok Pinard printindex proc procs prunefs
 5998: @comment LocalWords: prunepaths pwd RFS rmadillo rmdir rsh sbins str
 5999: @comment LocalWords: su Timar ubins ug unstripped vf VM Weitzel
 6000: @comment LocalWords: wildcard zlogout basename execdir wholename iwholename
 6001: @comment LocalWords: timestamp timestamps Solaris FreeBSD OpenBSD POSIX
 6002: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>