\input texinfo
@c %**start of header
@setfilename coreutils-ja.info
@settitle @sc{gnu} Coreutils

@c %**end of header

@c @documentlanguage ja

@include coreutils-v.texi
@include constants.texi

@c Define new indices.
@defcodeindex op
@defcodeindex fl

@c Put everything in one index (arbitrarily chosen to be the concept index).
@syncodeindex fl cp
@syncodeindex fn cp
@syncodeindex ky cp
@syncodeindex op cp
@syncodeindex pg cp
@syncodeindex vr cp

@dircategory Basics
@direntry
* Coreutils(ja): (coreutils-ja).       Core GNU (file, text, shell) utilities.
* Common options(ja): (coreutils-ja)Common options.      Common options.
* File permissions(ja): (coreutils-ja)File permissions.  Access modes.
* Date input formats(ja): (coreutils-ja)Date input formats.
@end direntry

@dircategory Individual utilities
@direntry
* basename(ja): (coreutils-ja)basename invocation.   Strip directory and suffix.
* cat(ja): (coreutils-ja)cat invocation.             Concatenate and write files.
* chgrp(ja): (coreutils-ja)chgrp invocation.         Change file groups.
* chmod(ja): (coreutils-ja)chmod invocation.         Change file permissions.
* chown(ja): (coreutils-ja)chown invocation.         Change file owners/groups.
* chroot(ja): (coreutils-ja)chroot invocation.       Specify the root directory.
* cksum(ja): (coreutils-ja)cksum invocation.         Print POSIX CRC checksum.
* comm(ja): (coreutils-ja)comm invocation.           Compare sorted files by line.
* cp(ja): (coreutils-ja)cp invocation.               Copy files.
* csplit(ja): (coreutils-ja)csplit invocation.       Split by context.
* cut(ja): (coreutils-ja)cut invocation.             Print selected parts of lines.
* date(ja): (coreutils-ja)date invocation.           Print/set system date and time.
* dd(ja): (coreutils-ja)dd invocation.               Copy and convert a file.
* df(ja): (coreutils-ja)df invocation.               Report filesystem disk usage.
* dir(ja): (coreutils-ja)dir invocation.             List directories briefly.
* dircolors(ja): (coreutils-ja)dircolors invocation. Color setup for ls.
* dirname(ja): (coreutils-ja)dirname invocation.       Strip non-directory suffix.
* du(ja): (coreutils-ja)du invocation.               Report on disk usage.
* echo(ja): (coreutils-ja)echo invocation.           Print a line of text.
* env(ja): (coreutils-ja)env invocation.             Modify the environment.
* expand(ja): (coreutils-ja)expand invocation.       Convert tabs to spaces.
* expr(ja): (coreutils-ja)expr invocation.           Evaluate expressions.
* factor(ja): (coreutils-ja)factor invocation.       Print prime factors
* false(ja): (coreutils-ja)false invocation.         Do nothing, unsuccessfully.
* fmt(ja): (coreutils-ja)fmt invocation.             Reformat paragraph text.
* fold(ja): (coreutils-ja)fold invocation.           Wrap long input lines.
* groups(ja): (coreutils-ja)groups invocation.       Print group names a user is in.
* head(ja): (coreutils-ja)head invocation.           Output the first part of files.
* hostid(ja): (coreutils-ja)hostid invocation.       Print numeric host identifier.
* hostname(ja): (coreutils-ja)hostname invocation.   Print or set system name.
* id(ja): (coreutils-ja)id invocation.               Print real/effective uid/gid.
* install(ja): (coreutils-ja)install invocation.     Copy and change attributes.
* join(ja): (coreutils-ja)join invocation.           Join lines on a common field.
* kill(ja): (coreutils-ja)kill invocation.           Send a signal to processes.
* link(ja): (coreutils-ja)link invocation.           Make hard links between files.
* ln(ja): (coreutils-ja)ln invocation.               Make links between files.
* logname(ja): (coreutils-ja)logname invocation.     Print current login name.
* ls(ja): (coreutils-ja)ls invocation.               List directory contents.
* md5sum(ja): (coreutils-ja)md5sum invocation.       Print or check message-digests.
* mkdir(ja): (coreutils-ja)mkdir invocation.         Create directories.
* mkfifo(ja): (coreutils-ja)mkfifo invocation.       Create FIFOs (named pipes).
* mknod(ja): (coreutils-ja)mknod invocation.         Create special files.
* mv(ja): (coreutils-ja)mv invocation.               Rename files.
* nice(ja): (coreutils-ja)nice invocation.           Modify scheduling priority.
* nl(ja): (coreutils-ja)nl invocation.               Number lines and write files.
* nohup(ja): (coreutils-ja)nohup invocation.         Immunize to hangups.
* od(ja): (coreutils-ja)od invocation.               Dump files in octal, etc.
* paste(ja): (coreutils-ja)paste invocation.         Merge lines of files.
* pathchk(ja): (coreutils-ja)pathchk invocation.     Check file name portability.
* pr(ja): (coreutils-ja)pr invocation.               Paginate or columnate files.
* printenv(ja): (coreutils-ja)printenv invocation.   Print environment variables.
* printf(ja): (coreutils-ja)printf invocation.       Format and print data.
* ptx(ja): (coreutils-ja)ptx invocation.             Produce permuted indexes.
* pwd(ja): (coreutils-ja)pwd invocation.             Print working directory.
* readlink(ja): (coreutils-ja)readlink invocation.   Print referent of a symlink.
* rm(ja): (coreutils-ja)rm invocation.               Remove files.
* rmdir(ja): (coreutils-ja)rmdir invocation.         Remove empty directories.
* seq(ja): (coreutils-ja)seq invocation.             Print numeric sequences
* shred(ja): (coreutils-ja)shred invocation.         Remove files more securely.
* sleep(ja): (coreutils-ja)sleep invocation.         Delay for a specified time.
* sort(ja): (coreutils-ja)sort invocation.           Sort text files.
* split(ja): (coreutils-ja)split invocation.         Split into fixed-size pieces.
* stat(ja): (coreutils-ja)stat invocation.           Report file(system) status.
* stty(ja): (coreutils-ja)stty invocation.           Print/change terminal settings.
* su(ja): (coreutils-ja)su invocation.               Modify user and group id.
* sum(ja): (coreutils-ja)sum invocation.             Print traditional checksum.
* sync(ja): (coreutils-ja)sync invocation.           Synchronize memory and disk.
* tac(ja): (coreutils-ja)tac invocation.             Reverse files.
* tail(ja): (coreutils-ja)tail invocation.           Output the last part of files.
* tee(ja): (coreutils-ja)tee invocation.             Redirect to multiple files.
* test(ja): (coreutils-ja)test invocation.           File/string tests.
* touch(ja): (coreutils-ja)touch invocation.         Change file timestamps.
* tr(ja): (coreutils-ja)tr invocation.               Translate characters.
* true(ja): (coreutils-ja)true invocation.           Do nothing, successfully.
* tsort(ja): (coreutils-ja)tsort invocation.         Topological sort.
* tty(ja): (coreutils-ja)tty invocation.             Print terminal name.
* uname(ja): (coreutils-ja)uname invocation.         Print system information.
* unexpand(ja): (coreutils-ja)unexpand invocation.   Convert spaces to tabs.
* uniq(ja): (coreutils-ja)uniq invocation.           Uniquify files.
* unlink(ja): (coreutils-ja)unlink invocation.       Removal via unlink(2).
* users(ja): (coreutils-ja)users invocation.         Print current user names.
* vdir(ja): (coreutils-ja)vdir invocation.           List directories verbosely.
* wc(ja): (coreutils-ja)wc invocation.               Line, word, and byte counts.
* who(ja): (coreutils-ja)who invocation.             Print who is logged in.
* whoami(ja): (coreutils-ja)whoami invocation.       Print effective user id.
* yes(ja): (coreutils-ja)yes invocation.             Print a string indefinitely.
@end direntry

@copying
This manual documents version @value{VERSION} of the @sc{gnu} core
utilities, including the standard programs for text and file manipulation.

Copyright @copyright{} 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts.  A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
@end quotation
@end copying

@titlepage
@title @sc{gnu} @code{Coreutils}
@subtitle Core GNU utilities
@subtitle for version @value{VERSION}, @value{UPDATED}
@author David MacKenzie et al.
@c 翻訳：西尾 太
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage


@ifnottex
@node Top
@top GNU Coreutils

@insertcopying
@end ifnottex

@cindex core utilities
@cindex text utilities
@cindex shell utilities
@cindex file utilities

@menu
* Introduction::                       Caveats, overview, and authors.
* Common options::                     Common options.
* Output of entire files::             cat tac nl od
* Formatting file contents::           fmt pr fold
* Output of parts of files::           head tail split csplit
* Summarizing files::                  wc sum cksum md5sum
* Operating on sorted files::          sort uniq comm ptx tsort
* Operating on fields within a line::  cut paste join
* Operating on characters::            tr expand unexpand
* Directory listing::                  ls dir vdir d v dircolors
* Basic operations::                   cp dd install mv rm shred
* Special file types::                 ln mkdir rmdir mkfifo mknod
* Changing file attributes::           chgrp chmod chown touch
* Disk usage::                         df du stat sync
* Printing text::                      echo printf yes
* Conditions::                         false true test expr
* Redirection::                        tee
* File name manipulation::             dirname basename pathchk
* Working context::                    pwd stty printenv tty
* User information::                   id logname whoami groups users who
* System context::                     date uname hostname
* Modified command invocation::        chroot env nice nohup su
* Process control::                    kill
* Delaying::                           sleep
* Numeric operations::                 factor seq
* File permissions::                   Access modes.
* Date input formats::                 Specifying date strings.
* Opening the software toolbox::       The software tools philosophy.
* GNU Free Documentation License::     The license for this documentation.
* Index::                              General index.

@detailmenu
@c  --- The Detailed Node Listing ---
@c 
 --- 詳細なノードリスト ---

@c Common Options
@c 
共通のオプション

* Exit status::                 Indicating program success or failure.
* Backup options::              Backup options
* Block size::                  Block size
* Target directory::            Target directory
* Trailing slashes::            Trailing slashes
* Traversing symlinks::         Traversing symlinks to directories
* Treating / specially::        Treating / specially
* Standards conformance::       Standards conformance

@c Output of entire files
@c 
ファイル全体を出力

* cat invocation::              Concatenate and write files.
* tac invocation::              Concatenate and write files in reverse.
* nl invocation::               Number lines and write files.
* od invocation::               Write files in octal or other formats.

@c Formatting file contents
@c 
ファイルの内容の書式化

* fmt invocation::              Reformat paragraph text.
* pr invocation::               Paginate or columnate files for printing.
* fold invocation::             Wrap input lines to fit in specified width.

@c Output of parts of files
@c 
ファイルの一部を出力

* head invocation::             Output the first part of files.
* tail invocation::             Output the last part of files.
* split invocation::            Split a file into fixed-size pieces.
* csplit invocation::           Split a file into context-determined pieces.

@c Summarizing files
@c 
ファイルの要約

* wc invocation::               Print newline, word, and byte counts.
* sum invocation::              Print checksum and block counts.
* cksum invocation::            Print CRC checksum and byte counts.
* md5sum invocation::           Print or check message-digests.

@c Operating on sorted files
@c 
ソートされたファイルの操作

* sort invocation::             Sort text files.
* uniq invocation::             Uniquify files.
* comm invocation::             Compare two sorted files line by line.
* ptx invocation::              Produce a permuted index of file contents.
* tsort invocation::            Topological sort.

@c @command{ptx}: Produce permuted indexes
@c 
@command{ptx}: 並べ替えた索引の生成

* General options in ptx::      Options which affect general program behavior.
* Charset selection in ptx::    Underlying character set considerations.
* Input processing in ptx::     Input fields, contexts, and keyword selection.
* Output formatting in ptx::    Types of output format, and sizing the fields.
* Compatibility in ptx::        The GNU extensions to @command{ptx}

@c Operating on fields within a line
@c 
行のフィールドの操作

* cut invocation::              Print selected parts of lines.
* paste invocation::            Merge lines of files.
* join invocation::             Join lines on a common field.

@c Operating on characters
@c 
文字の操作

* tr invocation::               Translate, squeeze, and/or delete characters.
* expand invocation::           Convert tabs to spaces.
* unexpand invocation::         Convert spaces to tabs.

@c @command{tr}: Translate, squeeze, and/or delete characters
@c 
@command{tr}: 文字を置換する，まとめる，そして/または削除する

* Character sets::              Specifying sets of characters.
* Translating::                 Changing one set of characters to another.
* Squeezing::                   Squeezing repeats and deleting.
* Warnings in tr::              Warning messages.

@c Directory listing
@c 
ディレクトリのリストアップ

* ls invocation::               List directory contents
* dir invocation::              Briefly list directory contents
* vdir invocation::             Verbosely list directory contents
* dircolors invocation::        Color setup for @command{ls}

@c @command{ls}:  List directory contents
@c 
@command{ls}: ディレクトリの内容をリストアップする

* Which files are listed::      Which files are listed
* What information is listed::  What information is listed
* Sorting the output::          Sorting the output
* More details about version sort::  More details about version sort
* General output formatting::   General output formatting
* Formatting the file names::   Formatting the file names

@c Basic operations
@c 
基本操作

* cp invocation::               Copy files and directories
* dd invocation::               Convert and copy a file
* install invocation::          Copy files and set attributes
* mv invocation::               Move (rename) files
* rm invocation::               Remove files or directories
* shred invocation::            Remove files more securely

@c Special file types
@c 
特殊なファイル形式

* link invocation::             Make a hard link via the link syscall
* ln invocation::               Make links between files
* mkdir invocation::            Make directories
* mkfifo invocation::           Make FIFOs (named pipes)
* mknod invocation::            Make block or character special files
* readlink invocation::         Print the referent of a symbolic link
* rmdir invocation::            Remove empty directories
* unlink invocation::           Remove files via unlink syscall

@c Changing file attributes
@c 
ファイルの属性を変更する

* chown invocation::            Change file owner and group
* chgrp invocation::            Change group ownership
* chmod invocation::            Change access permissions
* touch invocation::            Change file timestamps

@c Disk usage
@c 
ディスクの利用状況

* df invocation::               Report filesystem disk space usage
* du invocation::               Estimate file space usage
* stat invocation::             Report file or filesystem status
* sync invocation::             Synchronize data on disk with memory

@c Printing text
@c 
テキストの出力

* echo invocation::             Print a line of text
* printf invocation::           Format and print data
* yes invocation::              Print a string until interrupted

@c Conditions
@c 
条件文

* false invocation::              Do nothing, unsuccessfully
* true invocation::               Do nothing, successfully
* test invocation::               Check file types and compare values
* expr invocation::               Evaluate expressions

@c @command{test}: Check file types and compare values
@c 
@command{test}: ファイル形式の調査と値の比較

* File type tests::               File type tests
* Access permission tests::       Access permission tests
* File characteristic tests::     File characteristic tests
* String tests::                  String tests
* Numeric tests::                 Numeric tests

@c @command{expr}: Evaluate expression
@c 
@command{expr}: 式の評価

* String expressions::         + : match substr index length
* Numeric expressions::        + - * / %
* Relations for expr::         | & < <= = == != >= >
* Examples of expr::           Examples of using @command{expr}

@c Redirection
@c 
リダイレクト

* tee invocation::               Redirect output to multiple files

@c File name manipulation
@c 
ファイル名の操作

* basename invocation::          Strip directory and suffix from a file name
* dirname invocation::           Strip non-directory suffix from a file name
* pathchk invocation::           Check file name portability

@c Working context
@c 
作業中の状況

* pwd invocation::               Print working directory
* stty invocation::              Print or change terminal characteristics
* printenv invocation::          Print all or some environment variables
* tty invocation::               Print file name of terminal on standard input

@c @command{stty}: Print or change terminal characteristics
@c 
@command{stty}: 端末の特徴の出力や変更

* Control::                     Control settings
* Input::                       Input settings
* Output::                      Output settings
* Local::                       Local settings
* Combination::                 Combination settings
* Characters::                  Special characters
* Special::                     Special settings

@c User information
@c 
ユーザの情報

* id invocation::                Print real and effective uid and gid
* logname invocation::           Print current login name
* whoami invocation::            Print effective user id
* groups invocation::            Print group names a user is in
* users invocation::             Print login names of users currently logged in
* who invocation::               Print who is currently logged in

@c System context
@c 
システムの状況

* date invocation::              Print or set system date and time
* uname invocation::             Print system information
* hostname invocation::          Print or set system name
* hostid invocation::            Print numeric host identifier.

@c @command{date}: Print or set system date and time
@c 
@command{date}: システムの日時の出力と設定

* Time directives::              Time directives
* Date directives::              Date directives
* Literal directives::           Literal directives
* Padding::                      Padding
* Setting the time::             Setting the time
* Options for date::             Options for @command{date}
* Examples of date::             Examples of @command{date}

@c Modified command invocation
@c 
コマンドの呼び出しを修正

* chroot invocation::            Run a command with a different root directory
* env invocation::               Run a command in a modified environment
* nice invocation::              Run a command with modified scheduling priority
* nohup invocation::             Run a command immune to hangups
* su invocation::                Run a command with substitute user and group id

@c Process control
@c 
プロセス制御

* kill invocation::              Sending a signal to processes.

@c Delaying
@c 
遅延

* sleep invocation::             Delay for a specified time

@c Numeric operations
@c 
数学的操作

* factor invocation::            Print prime factors
* seq invocation::               Print numeric sequences

@c File permissions
@c 
ファイルの許可

* Mode Structure::               Structure of File Permissions
* Symbolic Modes::               Mnemonic permissions representation
* Numeric Modes::                Permissions as octal numbers

@c Date input formats
@c 
日付の入力書式

* General date syntax:           General date syntax
* Calendar date items:           Calendar date items
* Time of day items:             Time of day items
* Time zone items:               Time zone items
* Day of week items:             Day of week items
* Relative items in date strings:  Relative items in date strings
* Pure numbers in date strings:  Pure numbers in date strings
* Authors of getdate:            Authors of getdate

@c Opening the software toolbox
@c 
ソフトウェアツールボックスを開く

* Toolbox introduction::         Toolbox introduction
* I/O redirection::              I/O redirection
* The who command::              The @command{who} command
* The cut command::              The @command{cut} command
* The sort command::             The @command{sort} command
* The uniq command::             The @command{uniq} command
* Putting the tools together::   Putting the tools together

GNU Free Documentation License

* How to use this License for your documents::

@end detailmenu
@end menu


@node Introduction
@c @chapter Introduction
@chapter はじめに

@c This manual is a work in progress: many sections make no attempt to explain
@c basic concepts in a way suitable for novices.  Thus, if you are interested,
@c please get involved in improving this manual.  The entire @sc{gnu} community
@c will benefit.
@c 
このマニュアルは作業中です．初心者に適した方法で，基本的な概念を説明し
ようとしていないセクションもたくさんあります．そのため，興味があればこ
のマニュアルの改善に参加してください．@sc{gnu}コミュニティ全体が利益を
得るでしょう．

@cindex @acronym{POSIX}
@c The @sc{gnu} utilities documented here are mostly compatible with the
@c @acronym{POSIX} standard.
@c 
バグを@email{bug-coreutils@@gnu.org}に報告してください．
@cindex bugs, reporting
@c Please report bugs to @email{bug-coreutils@@gnu.org}.  Remember
@c to include the version number, machine architecture, input files, and
@c any other information needed to reproduce the bug: your input, what you
@c expected, what you got, and why it is wrong.  Diffs are welcome, but
@c please include a description of the problem as well, since this is
@c sometimes difficult to infer. @xref{Bugs, , , gcc, Using and Porting GNU CC}.
@c 
バージョンナンバー，マシンアーキテクチャ，入力ファイル，そしてバグの再
現に必要なその他のあらゆる情報含めることを忘れないでください．入力，期
待したもの，得たもの，そして間違っている理由です．差分は歓迎しますが，
推測が難しいときもあるので，問題の記述も含めてください．@xref{Bugs, ,
, gcc, Using and Porting GNU CC}.

@cindex Berry, K.
@cindex Paterson, R.
@cindex Stallman, R.
@cindex Pinard, F.
@cindex MacKenzie, D.
@cindex Meyering, J.
@cindex Youmans, B.
@c This manual was originally derived from the Unix man pages in the
@c distributions, which were written by David MacKenzie and updated by Jim
@c Meyering.  What you are reading now is the authoritative documentation
@c for these utilities; the man pages are no longer being maintained.  The
@c original @command{fmt} man page was written by Ross Paterson.  Fran@,{c}ois
@c Pinard did the initial conversion to Texinfo format.  Karl Berry did the
@c indexing, some reorganization, and editing of the results.  Brian
@c Youmans of the Free Software Foundation office staff combined the
@c manuals for textutils, fileutils, and sh-utils to produce the present
@c omnibus manual.  Richard Stallman contributed his usual invaluable
@c insights to the overall process.
@c 
このマニュアルは配布物のUNIX man pageを元にしていて，それは，元々David
MacKenzieによって書かれ，Jim Meyeringによって更新されました．現在読ん
でいるものは，これらのユーティリティの権威のあるドキュメントです．man
pageは，既に管理されていません．元となる@command{fmt}のman pageは，
Ross Patersonによって書かれました．Fran@,{c}ois Pinardは，Texinfo書式
への最初の変換を行いました．Karl Berryは索引の追加，いくつかの再編成，
そして結果の編集を行いました．Free Software Foundationの事務所のスタッ
フBrian Youmansは，現在のオムニバスのマニュアルを生成するため，
textutils，fileutils，そしてsh-utilsのマニュアルを統合しました．
Richard Stallmanは，全体的なプロセスに，彼のいつもの貴重な洞察を寄稿し
ました．

@node Common options
@c @chapter Common options
@chapter 共通のオプション

@macro optBackup
@item -b
@itemx @w{@kbd{--backup}[=@var{method}]}
@opindex -b
@opindex --backup
@vindex VERSION_CONTROL
@cindex backups, making
@xref{Backup options}.
@c Make a backup of each file that would otherwise be overwritten or removed.
@c 
上書きされたり削除されたりするそれぞれのファイルのバックアップを作成し
ます．
@end macro

@macro optBackupSuffix
@item -S @var{suffix}
@itemx --suffix=@var{suffix}
@opindex -S
@opindex --suffix
@c Append @var{suffix} to each backup file made with @option{-b}.
@c @xref{Backup options}.
@c 
@option{-b}で作成されるそれぞれのバックアップファイル名に，
@var{suffix}を追加します．@xref{Backup options}.
@end macro

@macro optTargetDirectory
@itemx @w{@kbd{--target-directory}=@var{directory}}
@opindex --target-directory
@cindex target directory
@cindex destination directory
@c Specify the destination @var{directory}.
@c @xref{Target directory}.
@c 
移動(コピー)先の@var{directory}を指定します．@xref{Target directory}.
@end macro

@macro optSi
@itemx --si
@opindex --si
@cindex SI output
@c Append an SI-style abbreviation to each size, such as @samp{MB} for
@c megabytes.  Powers of 1000 are used, not 1024; @samp{MB} stands for
@c 1,000,000 bytes.  This option is equivalent to
@c @option{--block-size=si}.  Use the @option{-h} or
@c @option{--human-readable} option if
@c you prefer powers of 1024.
@c 
メガバイトに対する@samp{MB}のような，SI形式のサイズの略語を追加します．
1024倍ではなく1000倍が使用されます．@samp{MB}は1,000,000バイトを意味し
ます．このオプションは，@option{--block-size=si}と等価です．1024倍を望
む場合，@option{-h}または@option{--human-readable}オプションを使用して
ください．
@end macro

@macro optHumanReadable
@item -h
@itemx --human-readable
@opindex -h
@opindex --human-readable
@cindex human-readable output
@c Append a size letter to each size, such as @samp{M} for mebibytes.
@c Powers of 1024 are used, not 1000; @samp{M} stands for 1,048,576 bytes.
@c Use the @option{--si} option if you prefer powers of 1000.
@c 
メビバイトに対する@samp{M}のような，サイズ文字を追加します．1000倍では
なく1024倍が使用されます．@samp{M}は1,048,576バイトを意味します．1000 
倍を望む場合，@option{--si}オプションを使用してください．
@end macro

@macro optStripTrailingSlashes
@itemx @w{@kbd{--strip-trailing-slashes}}
@opindex --strip-trailing-slashes
@cindex stripping trailing slashes
@c Remove any trailing slashes from each @var{source} argument.
@c @xref{Trailing slashes}.
@c 
それぞれの@var{source}引数から，後置されるスラッシュを削除します．
@xref{Trailing slashes}.
@end macro

@macro optVersionControl
@item -V @var{method}
@itemx --version-control=@var{method}
@opindex -V
@opindex --version-control
@c Change the type of backups made with @option{-b}.  The @var{method}
@c argument can be @samp{none} (or @samp{off}), @samp{numbered} (or
@c @samp{t}), @samp{existing} (or @samp{nil}), or @samp{never} (or
@c @samp{simple}).  @xref{Backup options}.
@c 
@option{-b}で作成するバックアップの形式を変更します．@var{method}引数
は，@samp{none} (または@samp{off})，@samp{numbered} (または@samp{t})，
@samp{existing} (または@samp{nil})，または@samp{never} (または
@samp{simple})が利用可能です．@xref{Backup options}.
@end macro

@cindex common options

@c Certain options are available in all of these programs.  Rather than
@c writing identical descriptions for each of the programs, they are
@c described here.  (In fact, every @sc{gnu} program accepts (or should accept)
@c these options.)
@c 
特定のオプションは，以下のすべてのプログラムで利用可能です．それぞれの
プログラムで同一の記述を書く代わりに以下で記述します．(実際，すべての
@sc{gnu}プログラムが，これらのオプションを受け入れる(あるいは受け入れ
るべき)です．)

@vindex POSIXLY_CORRECT
@c Normally options and operands can appear in any order, and programs act
@c as if all the options appear before any operands.  For example,
@c @samp{sort -r passwd -t :} acts like @samp{sort -r -t : passwd}, since
@c @samp{:} is an option-argument of @option{-t}.  However, if the
@c @env{POSIXLY_CORRECT} environment variable is set, options must appear
@c before operands, unless otherwise specified for a particular command.
@c 
通常，オプションとオペランドは任意の順序で書くことが可能で，プログラムは
すべてのオプションがあらゆるオペランドの前に書かれているかのように動作し
ます．例えば，@samp{sort -r passwd -t :}は@samp{sort -r -t : passwd}のよ
うに動作し，それは@samp{:}が@option{-t}のオプション引数であるためです．
しかし，@env{POSIXLY_CORRECT}環境変数が設定されている場合，特定のコマン
ドで指定ない場合，オプションをオペランドの前に書く必要があります．

@c Some of these programs recognize the @option{--help} and @option{--version}
@c options only when one of them is the sole command line argument.
@c 
これらのプログラムには，@option{--help}と@option{--version}が単一のコ
マンドライン引数のときだけ，それを認識するものもあります．

@table @samp

@item --help
@opindex --help
@cindex help, online
@c Print a usage message listing all available options, then exit successfully.
@c 
すべての利用可能なオプションをリストアップした使用方法のメッセージを出
力し，正しく終了します．

@item --version
@opindex --version
@cindex version number, finding
@c Print the version number, then exit successfully.
@c 
バージョンナンバーを出力して，正しく終了します．

@item --
@opindex --
@cindex option delimiter
@c Delimit the option list.  Later arguments, if any, are treated as
@c operands even if they begin with @samp{-}.  For example, @samp{sort --
@c -r} reads from the file named @file{-r}.
@c 
オプションリストを区切ります．それ以降の引数は何であろうと，たとえ
@samp{-}で始まる場合でもオペランドとして扱われます．例えば，@samp{sort
-- -r}は@file{-r}という名前のファイルから読み込みます．

@end table

@cindex standard input
@cindex standard output
@c A single @samp{-} is not really an option, though it looks like one.  It
@c stands for standard input, or for standard output if that is clear from
@c the context, and it can be used either as an operand or as an
@c option-argument.  For example, @samp{sort -o - -} outputs to standard
@c output and reads from standard input, and is equivalent to plain
@c @samp{sort}.  Unless otherwise specified, @samp{-} can appear in any
@c context that requires a file name.
@c 
単一の@samp{-}は，オプションのように見えても本当のオプションではありま
せん．状況から明らかな場合は，それは標準入力や標準出力を意味し，オペラ
ンドやオプション引数として使用可能です．例えば，@samp{sort -o - -}は標
準出力に書き出し，標準入力から読み込み，そしてそれは単なる
@command{sort}と等価です．他で指定されない限り，ファイル名が要求される
あらゆる状況で@samp{-}を書くことが可能です．

@menu
* Exit status::                 Indicating program success or failure.
* Backup options::              -b -S -V, in some programs.
* Block size::                  BLOCK_SIZE and --block-size, in some programs.
* Target directory::            --target-directory, in some programs.
* Trailing slashes::            --strip-trailing-slashes, in some programs.
* Traversing symlinks::         -H, -L, or -P, in some programs.
* Treating / specially::        --preserve-root and --no-preserve-root.
* Standards conformance::       Conformance to the @acronym{POSIX} standard.
@end menu


@node Exit status
@c @section Exit status
@section 終了ステータス

@macro exitstatus
@c An exit status of zero indicates success,
@c and a nonzero value indicates failure.
@c 
終了ステータスのゼロは成功を示し，ゼロ以外の値は失敗を示します．
@end macro

@c Nearly every command invocation yields an integral @dfn{exit status}
@c that can be used to change how other commands work.
@c For the vast majority of commands, an exit status of zero indicates
@c success.  Failure is indicated by a nonzero value---typically
@c @samp{1}, though it may differ on unusual platforms as @acronym{POSIX}
@c requires only that it be nonzero.
@c 
ほとんどすべてのコマンドの呼び出しは，他のコマンドの動作を変更するため
にしよう可能な，正規の@dfn{終了ステータス(exit status)}を生成します．
コマンドの大半は，ゼロの終了ステータスは成功を示します．失敗はゼロ以外
の値で示されます---通常は@samp{1}ですが，@acronym{POSIX}ではゼロ以外で
あることを要求しているだけなので，独特のプラットフォームでは違う可能性
があります．

@c However, some of the programs documented here do produce
@c other exit status values and a few associate different
@c meanings with the values @samp{0} and @samp{1}.
@c Here are some of the exceptions:
@c @command{chroot}, @command{env}, @command{expr},
@c @command{nice}, @command{nohup}, @command{printenv},
@c @command{sort}, @command{su}, @command{test}, @command{tty}.
@c 
しかし，以下で説明されているプログラムには，それ以外の終了ステータスの
値を生成するものや，@samp{0}と@samp{1}の値に別の意味を割り当てているも
のもあります．例外は以下の通りです．@command{chroot}, @command{env},
@command{expr}, @command{nice}, @command{nohup}, @command{printenv},
@command{sort}, @command{su}, @command{test}, @command{tty}.


@node Backup options
@c @section Backup options
@section バックアップオプション

@cindex backup options

@c Some @sc{gnu} programs (at least @command{cp}, @command{install},
@c @command{ln}, and @command{mv}) optionally make backups of files
@c before writing new versions.
@c These options control the details of these backups.  The options are also
@c briefly mentioned in the descriptions of the particular programs.
@c 
@sc{gnu}プログラムには(少なくとも，@command{cp}，@command{install}，
@command{ln}，そして@command{mv}には)オプションで，新しいバージョンの
ファイルを書き出す前に，ファイルのバックアップを作成するものもあります．
以下のオプションは，これらのバックアップを細かく制御します．オプション
は，特定のプログラムの説明でも簡単に記述します．

@table @samp

@item -b
@itemx @w{@kbd{--backup}[=@var{method}]}
@opindex -b
@opindex --backup
@vindex VERSION_CONTROL
@cindex backups, making
@c Make a backup of each file that would otherwise be overwritten or removed.
@c Without this option, the original versions are destroyed.
@c Use @var{method} to determine the type of backups to make.
@c When this option is used but @var{method} is not specified,
@c then the value of the @env{VERSION_CONTROL}
@c environment variable is used.  And if @env{VERSION_CONTROL} is not set,
@c the default backup type is @samp{existing}.
@c 
バックアップを作成しないと上書きされたり削除されたりするそれぞれのファ
イルのバックアップを作成します．このオプションを用いないと，オリジナル
のバージョンは破棄されます．作成するバックアップの形式を決定するために，
@var{method}を使用してください．このオプションが使用されていて，
@var{method}が指定されていないとき，@env{VERSION_CONTROL}環境変数の値
が使用されます．そして@env{VERSION_CONTROL}が設定されていない場合は，
デフォルトのバックアップ形式は@samp{existing}になります．

@c Note that the short form of this option, @option{-b} does not accept any
@c argument.  Using @option{-b} is equivalent to using @option{--backup=existing}.
@c 
このオプションの短い形式@option{-b}は，引数を全く受け入れないことに注
意してください．@option{-b}の使用は，@option{--backup=existing}の使用
と等価です．

@vindex version-control @r{Emacs variable}
@c This option corresponds to the Emacs variable @samp{version-control};
@c the values for @var{method} are the same as those used in Emacs.
@c This option also accepts more descriptive names.
@c The valid @var{method}s are (unique abbreviations are accepted):
@c 
このオプションは，Emacs変数の@samp{version-control}に対応します．
@var{method}に対する値は，Emacsで使用されるものと同じです．このオプショ
ンも，より記述的な名前を受け入れます．有効な@var{method}は以下の通りで
す(ユニークに識別できる省略も受け入れます)．

@table @samp
@item none
@itemx off
@opindex none @r{backup method}
@c Never make backups.
@c 
バックアップを作成しません．

@item numbered
@itemx t
@opindex numbered @r{backup method}
@c Always make numbered backups.
@c 
常に番号付のバックアップを作成します．

@item existing
@itemx nil
@opindex existing @r{backup method}
@c Make numbered backups of files that already have them, simple backups
@c of the others.
@c 
既に番号付のバックアップファイルがある場合，番号付のバックアップを作成
し，それ以外では単純にバックアップします．

@item simple
@itemx never
@opindex simple @r{backup method}
@c Always make simple backups.  Please note @samp{never} is not to be
@c confused with @samp{none}.
@c 
常に単純なバックアップを作成します．@samp{never}と@samp{none}を混同し
ないように注意してください．

@end table

@item -S @var{suffix}
@itemx --suffix=@var{suffix}
@opindex -S
@opindex --suffix
@cindex backup suffix
@vindex SIMPLE_BACKUP_SUFFIX
@c Append @var{suffix} to each backup file made with @option{-b}.  If this
@c option is not specified, the value of the @env{SIMPLE_BACKUP_SUFFIX}
@c environment variable is used.  And if @env{SIMPLE_BACKUP_SUFFIX} is not
@c set, the default is @samp{~}, just as in Emacs.
@c 
@option{-b}で作成されるそれぞれのバックアップファイルに@var{suffix}を
追加します．このオプションが指定されていない場合，
@env{SIMPLE_BACKUP_SUFFIX}環境変数の値が使用されます．そして
@env{SIMPLE_BACKUP_SUFFIX}が設定されていない場合，デフォルトで@samp{~}
となり，それはちょうどEmacsと同じです．

@itemx --version-control=@var{method}
@opindex --version-control
@c FIXME: remove this block one or two releases after the actual
@c removal from the code.
@c 
@c This option is obsolete and will be removed in a future release.
@c It has been replaced with @w{@kbd{--backup}}.
@c 
このオプションは時代遅れで，将来のリリースで削除されるでしょう．それは，
@w{@kbd{--backup}}で置き換えられました．

@end table

@node Block size
@c @section Block size
@section ブロックサイズ

@cindex block size

@c Some @sc{gnu} programs (at least @command{df}, @command{du}, and
@c @command{ls}) display sizes in ``blocks''.  You can adjust the block size
@c and method of display to make sizes easier to read.  The block size
@c used for display is independent of any filesystem block size.
@c Fractional block counts are rounded up to the nearest integer.
@c 
@sc{gnu}プログラム(少なくとも，@command{df}，@command{du}，そして
@command{ls})には，ファイルサイズを``ブロック''で表示するものもありま
す．ファイルサイズをより読みやすくするため，ブロックサイズを調整するこ
とが可能です．表示で使用するブロックサイズは，あらゆるファイルシステム
のブロックサイズから独立しています．分数のブロック数は最も近い整数に切
り上げられます．

@opindex --block-size=@var{size}
@vindex BLOCK_SIZE
@vindex DF_BLOCK_SIZE
@vindex DU_BLOCK_SIZE
@vindex LS_BLOCK_SIZE
@vindex POSIXLY_CORRECT@r{, and block size}

@c The default block size is chosen by examining the following environment
@c variables in turn; the first one that is set determines the block size.
@c 
デフォルトのブロックサイズは，以下の環境変数を順番に調べることで選択さ
れます．最初に設定されていたものでブロックサイズを決定します．

@table @code

@item DF_BLOCK_SIZE
@c This specifies the default block size for the @command{df} command.
@c Similarly, @env{DU_BLOCK_SIZE} specifies the default for @command{du} and
@c @env{LS_BLOCK_SIZE} for @command{ls}.
@c 
これは，@command{df}コマンドに対するデフォルトのブロックサイズを指定し
ます．同様に，@env{DU_BLOCK_SIZE}は@command{du}に対するデフォルト，そ
して@env{LS_BLOCK_SIZE}は@command{ls}に対するデフォルトを指定します．

@item BLOCK_SIZE
@c This specifies the default block size for all three commands, if the
@c above command-specific environment variables are not set.
@c 
上記のコマンド指定の環境変数が設定されていない場合，これは，三つのコマ
ンド全てに対するデフォルトのブロックサイズを指定します．

@item POSIXLY_CORRECT
@c If neither the @env{@var{command}_BLOCK_SIZE} nor the @env{BLOCK_SIZE}
@c variables are set, but this variable is set, the block size defaults to 512.
@c 
@env{@var{command}_BLOCK_SIZE}も@env{BLOCK_SIZE}変数も設定されておらず，
この変数が設定されている場合，ブロックサイズのデフォルトは512になりま
す．

@end table

@c If none of the above environment variables are set, the block size
@c currently defaults to 1024 bytes in most contexts, but this number may
@c change in the future.  For @command{ls} file sizes, the block size
@c defaults to 1 byte.
@c 
上記の環境変数がどれも設定されていない場合，ほとんどの状況でブロックサ
イズは現在のデフォルトの1024バイトですが，この数は将来変更されるかもし
れません．@command{ls}のファイルサイズに対して，ブロックサイズのデフォ
ルトは1バイトです．

@cindex human-readable output
@cindex SI output

@c A block size specification can be a positive integer specifying the number
@c of bytes per block, or it can be @code{human-readable} or @code{si} to
@c select a human-readable format.  Integers may be followed by suffixes
@c that are upward compatible with the
@c @uref{http://www.bipm.fr/enus/3_SI/si-prefixes.html, SI prefixes}
@c for decimal multiples and with the
@c @uref{http://physics.nist.gov/cuu/Units/binary.html, IEC 60027-2
@c prefixes for binary multiples}.
@c 
ブロックサイズの指定は，ブロックごとのバイト数の指定で正の整数にしたり，
人間が可読な書式を選択して@code{human-readable}や@code{si}にしたりする
ことが可能です．整数には，十進数の倍数となる
@uref{http://www.bipm.fr/enus/3_SI/si-prefixes.html, SI prefixes}の上
位互換の接尾子を続けたり，
@uref{http://physics.nist.gov/cuu/Units/binary.html, IEC 60027-2
prefixes for binary multiples}が続けてもかまいません．

@c With human-readable formats, output sizes are followed by a size letter
@c such as @samp{M} for megabytes.  @code{BLOCK_SIZE=human-readable} uses
@c powers of 1024; @samp{M} stands for 1,048,576 bytes.
@c @code{BLOCK_SIZE=si} is similar, but uses powers of 1000 and appends
@c @samp{B}; @samp{MB} stands for 1,000,000 bytes.
@c 
人間が可読な書式を用いると，出力サイズにはメガバイトに対する@samp{M}の
ような大きさを示す文字が続きます．@code{BLOCK_SIZE=human-readable}は
1024乗を使用します．@samp{M}は1,048,576バイトを意味します．
@code{BLOCK_SIZE=si}は似ていますが，それは1000乗を使用し@samp{B}が後置
されます．@samp{MB}は1,000,000を意味します．

@vindex LC_NUMERIC
@c A block size specification preceded by @samp{'} causes output sizes to
@c be displayed with thousands separators.  The @env{LC_NUMERIC} locale
@c specifies the thousands separator and grouping.  For example, in an
@c American English locale, @samp{--block-size="'1kB"} would cause a size
@c of 1234000 bytes to be displayed as @samp{1,234}.  In the default C
@c locale, there is no thousands separator so a leading @samp{'} has no
@c effect.
@c 
@samp{'}が前置されているブロックサイズの指定で，千単位で区切られた大き
さを表示するようになります．@env{LC_NUMERIC}ロカールは，千の分離子とグ
ループ分けを指定します．例えば，アメリカ英語のロカールでは，
@samp{--block-size="'1kB"}で1234000バイトの大きさを@samp{1,234}と表示
するようになるでしょう．デフォルトのCロカールでは，千単位の区切りが無
いので，@samp{'}には効果がありません．

@c An integer block size can be followed by a suffix to specify a
@c multiple of that size.  A bare size letter,
@c or one followed by @samp{iB}, specifies
@c a multiple using powers of 1024.  A size letter followed by @samp{B}
@c specifies powers of 1000 instead.  For example, @samp{1M} and
@c @samp{1MiB} are equivalent to @samp{1048576}, whereas @samp{1MB} is
@c equivalent to @samp{1000000}.
@c 
整数のブロックサイズは，そのサイズの倍数を指定する接尾子を続けることが
可能です．そのままの大きさを示す文字や@samp{iB}が続くものは，1024倍を
指定します．@samp{B}が続く大きさを示す文字は，代わりに1000倍を指定しま
す．例えば，@samp{1M}と@samp{1MiB}は@samp{1048576}と等価で，@samp{1MB}
は@samp{1000000}と等価です．

@c A plain suffix without a preceding integer acts as if @samp{1} were
@c prepended, except that it causes a size indication to be appended to
@c the output.  For example, @samp{--block-size="kB"} displays 3000 as
@c @samp{3kB}.
@c 
前置する整数が無い普通のサフィックスでは，@samp{1}が前置されているかの
ように動作しますが，大きさを示す文字が出力に後置されます．例えば，
@samp{--block-size="kB"}は3000を@samp{3kB}と表示します．

@c The following suffixes are defined.  Large sizes like @code{1Y}
@c may be rejected by your computer due to limitations of its arithmetic.
@c 
以下の大きさを示す文字が定義されています．@code{1Y}のような大きなサイ
ズは，その計算の限界のためコンピュータに拒絶されるかもしれません．

@table @samp
@item kB
@cindex kilobyte, definition of
@c kilobyte: @math{10^3 = 1000}.
@c 
キロバイト：@math{10^3 = 1000}．
@item k
@itemx K
@itemx KiB
@cindex kibibyte, definition of
@c kibibyte: @math{2^10 = 1024}.  @samp{K} is special: the SI prefix is
@c @samp{k} and the IEC 60027-2 prefix is @samp{Ki}, but tradition and
@c @acronym{POSIX} use @samp{k} to mean @samp{KiB}.
@c 
キビバイト：@math{2^10 = 1024}．@samp{K}は特殊です．SIの接頭辞は
@samp{k} で，IEC 60027-2の接頭辞は@samp{Ki}ですが，伝統的なものと
@acronym{POSIX}では，@samp{k}を@samp{KiB}の意味で使用します．
@item MB
@cindex megabyte, definition of
@c megabyte: @math{10^6 = 1,000,000}.
@c 
メガバイト：@math{10^6 = 1,000,000}．
@item M
@itemx MiB
@cindex mebibyte, definition of
@c mebibyte: @math{2^20 = 1,048,576}.
@c 
メビバイト：@math{2^20 = 1,048,576}．
@item GB
@cindex gigabyte, definition of
@c gigabyte: @math{10^9 = 1,000,000,000}.
@c 
ギガバイト：@math{10^9 = 1,000,000,000}．
@item G
@itemx GiB
@cindex gibibyte, definition of
@c gibibyte: @math{2^30 = 1,073,741,824}.
@c 
ギビバイト：@math{2^30 = 1,073,741,824}．
@item TB
@cindex terabyte, definition of
@c terabyte:  @math{10^12 = 1,000,000,000,000}.
@c 
テラバイト：@math{10^12 = 1,000,000,000,000}．
@item T
@itemx TiB
@cindex tebibyte, definition of
@c tebibyte: @math{2^40 = 1,099,511,627,776}.
@c 
テビバイト：@math{2^40 = 1,099,511,627,776}．
@item PB
@cindex petabyte, definition of
@c petabyte: @math{10^15 = 1,000,000,000,000,000}.
@c 
ペタバイト：@math{10^15 = 1,000,000,000,000,000}．
@item P
@itemx PiB
@cindex pebibyte, definition of
@c pebibyte: @math{2^50 = 1,125,899,906,842,624}.
@c 
ペビバイト：@math{2^50 = 1,125,899,906,842,624}．
@item EB
@cindex exabyte, definition of
@c exabyte: @math{10^18 = 1,000,000,000,000,000,000}.
@c 
エクサバイト：@math{10^18 = 1,000,000,000,000,000,000}．
@item E
@itemx EiB
@cindex exbibyte, definition of
@c exbibyte: @math{2^60 = 1,152,921,504,606,846,976}.
@c 
エクシビバイト：@math{2^60 = 1,152,921,504,606,846,976}．
@item ZB
@cindex zettabyte, definition of
@c zettabyte: @math{10^21 = 1,000,000,000,000,000,000,000}
@c 
ゼータバイト：@math{10^21 = 1,000,000,000,000,000,000,000}．
@item Z
@itemx ZiB
@c @math{2^70 = 1,180,591,620,717,411,303,424}.
@c (@samp{Zi} is a GNU extension to IEC 60027-2.)
@c 
@math{2^70 = 1,180,591,620,717,411,303,424}．(@samp{Zi}はIEC 60027-2へ
のGNUの拡張です．)
@item YB
@cindex yottabyte, definition of
@c yottabyte: @math{10^24 = 1,000,000,000,000,000,000,000,000}.
@c 
ヨッタバイト：@math{10^24 = 1,000,000,000,000,000,000,000,000}．
@item Y
@itemx YiB
@c @math{2^80 = 1,208,925,819,614,629,174,706,176}.
@c (@samp{Yi} is a GNU extension to IEC 60027-2.)
@c 
@math{2^80 = 1,208,925,819,614,629,174,706,176}．(@samp{Yi}はIEC
60027-2へのGNUの拡張です．)
@end table

@opindex -k
@opindex -h
@opindex --block-size
@opindex --human-readable
@opindex --si

@c Block size defaults can be overridden by an explicit
@c @option{--block-size=@var{size}} option.  The @option{-k}
@c option is equivalent to @option{--block-size=1K}, which
@c is the default unless the @env{POSIXLY_CORRECT} environment variable is
@c set.  The @option{-h} or @option{--human-readable} option is equivalent to
@c @option{--block-size=human-readable}.  The @option{--si} option is
@c equivalent to @option{--block-size=si}.
@c 
ブロックサイズのデフォルトは，@option{--block-size=@var{size}}オプショ
ンを明示することで優先することが可能です．@option{-k}オプションは，
@option{--block-size=1k}と等価で，それは@env{POSIXLY_CORRECT}環境変数
が指定されていない場合のデフォルトです．@option{-h}や
@option{--human-readable}オプションは，
@option{--block-size=human-readable}と等価です．@option{--si}オプショ
ンは，@option{--block-size=si}と等価です．

@node Target directory
@c @section Target directory
@section ターゲットディレクトリ

@cindex target directory

@c Some @sc{gnu} programs (at least @command{cp}, @command{install},
@c @command{ln}, and @command{mv}) allow you to specify the target directory
@c via this option:
@c 
@sc{gnu}プログラム(少なくとも@command{cp}，@command{install}，
@command{ln}，そして@command{mv})には，このオプションでターゲットディ
レクトリの指定を可能にするものもあります．

@table @samp

@itemx @w{@kbd{--target-directory}=@var{directory}}
@opindex --target-directory
@cindex target directory
@cindex destination directory
@c Specify the destination @var{directory}.
@c 
対象となる@var{directory}を指定します．

@c The interface for most programs is that after processing options and a
@c finite (possibly zero) number of fixed-position arguments, the remaining
@c argument list is either expected to be empty, or is a list of items
@c (usually files) that will all be handled identically.  The @command{xargs}
@c program is designed to work well with this convention.
@c 
ほとんどのプログラムのインターフェースは，オプションと有限数の(おそら
くゼロの)固定した位置の引数を処理した後，残りの引数リストは空である，
または同じように処理される(通常ファイルとなる)項目のリストになっている
ことが期待されています．@command{xargs}プログラムは，この慣習を用いて
より良く動作するように設計されています．

@c The commands in the @command{mv}-family are unusual in that they take
@c a variable number of arguments with a special case at the @emph{end}
@c (namely, the target directory).  This makes it nontrivial to perform some
@c operations, e.g., ``move all files from here to ../d/'', because
@c @code{mv * ../d/} might exhaust the argument space, and @code{ls | xargs ...}
@c doesn't have a clean way to specify an extra final argument for each
@c invocation of the subject command.  (It can be done by going through a
@c shell command, but that requires more human labor and brain power than
@c it should.)
@c 
様々な数の引数の@emph{最後}に特例(すなわち，ターゲットディレクトリ)が
あるため，@command{mv}の類のコマンドは普通のものとは言えません．例えば
``全てのファイルをここから@file{../d/}に移動する''ような処理を実行する
ために，@code{mv * ../d/}では引数の空間を使い果すかもしれませんし，
@code{ls | xargs ...}では，それぞれの従属コマンドの呼び出しへの特別な
最後の引数を指定する方法がないため，明確ではなくなります．(それは，シェ
ルコマンドで動作させることが可能ですが，人間の労働と能力が余分に必要と
なります．)

@c The @w{@kbd{--target-directory}} option allows the @command{cp},
@c @command{install}, @command{ln}, and @command{mv} programs to be used
@c conveniently with @command{xargs}.  For example, you can move the files
@c from the current directory to a sibling directory, @code{d} like this:
@c (However, this doesn't move files whose names begin with @samp{.}.)
@c 
@w{@kbd{--target-directory}}オプションによって，@command{cp}，
@command{install}，@command{ln}，そして@command{mv}プログラムで，
@command{xargs}を用いて便利に使用することが可能になります．例えば，現
在のディレクトリから同じ階層のディレクトリ，ここでは@code{d}に，ファイ
ルを移動することが可能です．(しかし，これは@samp{.}で始まる名前のファ
イルを移動しません．)

@smallexample
ls |xargs mv --target-directory=../d
@end smallexample

@c If you use the @sc{gnu} @command{find} program, you can move @emph{all}
@c files with this command:
@c 
@sc{gnu} @command{find}プログラムを使用している場合，以下のコマンドで
@emph{全ての}ファイルを移動することが可能です．
@example
find . -mindepth 1 -maxdepth 1 \
  | xargs mv --target-directory=../d
@end example

@c But that will fail if there are no files in the current directory
@c or if any file has a name containing a newline character.
@c The following example removes those limitations and requires both
@c @sc{gnu} @command{find} and @sc{gnu} @command{xargs}:
@c 
しかし，現在のディレクトリにファイルがない場合や，改行文字を含む名前の
ファイルがある場合，それは失敗するでしょう．以下の例は，これらの制限を
取り除きますが，@sc{gnu} @command{find}と@sc{gnu} @command{xargs}の両
方を必要とします．
@example
find . -mindepth 1 -maxdepth 1 -print0 \
  | xargs --null --no-run-if-empty \
      mv --target-directory=../d
@end example

@end table

@node Trailing slashes
@c @section Trailing slashes
@section 末尾のスラッシュ

@cindex trailing slashes

@c Some @sc{gnu} programs (at least @command{cp} and @command{mv}) allow you to
@c remove any trailing slashes from each @var{source} argument before
@c operating on it.  The @w{@kbd{--strip-trailing-slashes}} option enables
@c this behavior.
@c 
@sc{gnu}プログラム(少なくとも@command{cp}と@command{mv})には，それぞれ
の@var{source}引数を処理する前に末尾のスラッシュを取り除くことが可能な
ものもあります．@w{@kbd{--strip-trailing-slashes}}オプションはこの動作
を可能にします．

@c This is useful when a @var{source} argument may have a trailing slash and
@c 
@c FIXME: mv's behavior in this case is system-dependent
@c 
@c specify a symbolic link to a directory.  This scenario is in fact rather
@c common because some shells can automatically append a trailing slash when
@c performing file name completion on such symbolic links.  Without this
@c option, @command{mv}, for example, (via the system's rename function) must
@c interpret a trailing slash as a request to dereference the symbolic link
@c and so must rename the indirectly referenced @emph{directory} and not
@c the symbolic link.  Although it may seem surprising that such behavior
@c be the default, it is required by @acronym{POSIX} and is consistent with
@c other parts of that standard.
@c 
@var{source}引数の末尾にスラッシュがあり，ディレクトリへのシンボリック
リンクを指定しているとき，これは役に立ちます．シェルにはシンボリックリ
ンクのようなものに対してファイル名の補完を実行しているとき，末尾のスラッ
シュを自動的に追加することが可能なものもあるので，このシナリオは現実と
なります．このオプションがない場合，例えば(システムの名前変更機能のた
め)@command{mv}は，末尾のスラッシュをシンボリックリンク先を参照しない
ように要求するよう解釈する必要があり，そして，そのためシンボリックリン
クではなく，間接的に参照される@emph{ディレクトリ}の名前を変更するはず
です．そのような動作がデフォルトということにびっくりするかもしれません
が，それは@acronym{POSIX}で要求されていて，その標準のそれ以外の部分と
一貫しています．

@node Traversing symlinks
@c @section Traversing symlinks
@section シンボリックリンクをたどる

@cindex symbolic link to directory, controlling traversal of

@c The following options modify how @command{chown} and @command{chgrp}
@c traverse a hierarchy when the @option{--recursive} (@option{-R})
@c option is also specified.
@c 
以下のオプションは，@option{--recursive} (@option{-R})オプションも使用
されているときに，@command{chown}と@command{chgrp}が(ディレクトリ)階層
をたどる方法を変更します．
@c FIXME: note that `du' has these options, too, but they have slightly
@c different meaning.
@c 
@c If more than one of the following options is specified, only the final
@c one takes effect.
@c These options specify whether processing a symbolic link to a directory
@c entails operating on just the symbolic link or on all files in the
@c hierarchy rooted at that directory.
@c 
以下のオプションの一つ以上が指定されている場合，最後のものだけ効果があ
ります．これらのオプションは，ディレクトリ構造の処理を，シンボリックリ
ンクとして処理するか，そのディレクトリがルートになっている階層構造のす
べてのファイルを処理するかを指定します．

@c These options are independent of @option{--dereference} and
@c @option{--no-dereference} (@option{-h}), which control whether to modify
@c a symlink or its referent.
@c 
以下のオプションは，シンボリックリンクかその参照先のいずれを処理するか
を制御する@option{--dereference}と@option{--no-dereference}
(@option{-h})とは独立しています．

@table @samp

@macro choptH
@item -H
@opindex -H
@cindex symbolic link to directory, traverse each that is specified on the command line
@c If @option{--recursive} (@option{-R}) is specified and
@c a command line argument is a symbolic link to a directory, traverse it.
@c 
@option{--recursive} (@option{-R})が指定されていて，コマンドライン引数
がディレクトリへのシンボリックリンクの場合，それをたどっていきます．
@end macro
@choptH

@macro choptL
@item -L
@opindex -L
@cindex symbolic link to directory, traverse each that is encountered
@c In a recursive traversal, traverse every symbolic link to a directory
@c that is encountered.
@c 
再帰的にたどる状況で，ディレクトリへのシンボリックリンクを，見つかった
ものはすべてたどります．
@end macro
@choptL

@macro choptP
@item -P
@opindex -P
@cindex symbolic link to directory, never traverse
@c Do not traverse any symbolic links.
@c This is the default if none of @option{-H}, @option{-L},
@c or @option{-P} is specified.
@c 
シンボリックリンクをたどりません．これは@option{-H}，@option{-L}，また
は@option{-P}のいずれも指定されていない場合のデフォルトです．
@end macro
@choptP

@end table


@node Treating / specially
@c @section Treating / specially
@section / の特別な扱い方

@c Certain commands can operate destructively on entire hierarchies.
@c For example, if a user with appropriate privileges mistakenly runs
@c @samp{rm -rf / tmp/junk} or @samp{cd /bin; rm -rf ../}, that may remove
@c all files on the entire system.  Since there are so few
@c @footnote{If you know of one, please write to @email{bug-coreutils@@gnu.org}.}
@c legitimate uses for such a command,
@c @sc{gnu} @command{rm} provides the @option{--preserve-root} option
@c to make it so @command{rm} declines to operate on any directory
@c that resolves to @file{/}.  The default is still to allow
@c @samp{rm -rf /} to operate unimpeded.
@c Another new option, @option{--no-preserve-root}, cancels the
@c effect of any preceding @option{--preserve-root} option.
@c Note that the @option{--preserve-root} behavior may become the default
@c for @command{rm}.
@c 
コマンドには，階層構造全体を破壊するような処理が可能なものもあります．
例えば，適切な特権を持つユーザが間違って@samp{rm -rf / tmp/junk}や
@samp{cd /bin; rm -rf ../}を実行した場合，システム全体のすべてのファイ
ルが削除される可能性があります．そのようなコマンドが正当であるというこ
とは滅多に無いので@footnote{知っているものがあれば
@email{bug-coreutils@@gnu.org}にメールを書いて下さい．}，@sc{gnu}
@command{rm}は@option{--preserve-root}オプションを提供し，最終的に
@file{/}とされるようなディレクトリの処理を@command{rm}にさせないように
します．もう一つの新たなオプションである@option{--no-preserve-root}は，
前出の@option{--preserve-root}オプションの効果をなくします．
@option{--preserve-root}の動作が@command{rm}のデフォルトになる可能性が
あることに注意して下さい．

@c The commands @command{chgrp}, @command{chmod} and @command{chown}
@c can also operate destructively on entire hierarchies, so they too
@c support these options.  Although, unlike @command{rm}, they don't
@c actually unlink files, these commands are arguably more dangerous
@c when operating recursively on @file{/}, since they often work much
@c more quickly, and hence damage more files before an alert user can
@c interrupt them.
@c 
コマンド@command{chgrp}，@command{chmod}，そして@command{chown}も，階
層構造全体を破壊する処理が可能なので，これらのオプションをサポートして
います．しかし，@command{rm}とは異なり，ファイルを実際にアンリンクする
わけではないので，@file{/}で再帰的な処理をするときは，おそらくこれらの
コマンドはさらに危険で，その理由は処理時間が短いため，ユーザが停止させ
る前に多くのファイルに障害が発生するためです．


@node Standards conformance
@c @section Standards conformance
@section 標準への準拠

@vindex POSIXLY_CORRECT
@c In a few cases, the @sc{gnu} utilities' default behavior is
@c incompatible with the @acronym{POSIX} standard.  To suppress these
@c incompatibilities, define the @env{POSIXLY_CORRECT} environment
@c variable.  Unless you are checking for @acronym{POSIX} conformance, you
@c probably do not need to define @env{POSIXLY_CORRECT}.
@c 
状況によっては，@sc{gnu}のユーティリティのデフォルトの動作は
@acronym{POSIX}の標準と互換性がありません．これらの非互換性を抑制する
ため，@env{POSIXLY_CORRECT}環境変数を定義してください．@acronym{POSIX}
準拠を調査していない限り，@env{POSIXLY_CORRECT}を定義する必要はありま
せん．

@c Newer versions of @acronym{POSIX} are occasionally incompatible with older
@c versions.  For example, older versions of @acronym{POSIX} required the
@c command @samp{sort +1} to sort based on the second and succeeding
@c fields in each input line, but starting with @acronym{POSIX} 1003.1-2001
@c the same command is required to sort the file named @file{+1}, and you
@c must instead use the command @samp{sort -k 2} to get the field-based
@c sort.
@c 
新しいバージョンの@acronym{POSIX}には，古いバージョンのものと互換性が
無いものもあります．例えば，古いバージョンの@acronym{POSIX}では，それ
ぞれの入力ファイルの二番目とそれ以降のフィールドをもとにソートするコマ
ンド@samp{sort +1}を要求していますが，@acronym{POSIX} 1003.1-2001から
は同じコマンドで@file{+1}という名前のファイルをソートすることを要求し
ていて，フィールドをもとにしたソートを行なうため，コマンド@samp{sort
-k 2}を代わりに使用する必要があります．

@vindex _POSIX2_VERSION
@c The @sc{gnu} utilities normally conform to the version of @acronym{POSIX}
@c that is standard for your system.  To cause them to conform to a
@c different version of @acronym{POSIX}, define the @env{_POSIX2_VERSION}
@c environment variable to a value of the form @var{yyyymm} specifying
@c the year and month the standard was adopted.  Two values are currently
@c supported for @env{_POSIX2_VERSION}: @samp{199209} stands for
@c @acronym{POSIX} 1003.2-1992, and @samp{200112} stands for @acronym{POSIX}
@c 1003.1-2001.  For example, if you are running older software that
@c assumes an older version of @acronym{POSIX} and uses @samp{sort +1},
@c @samp{head -1}, or @samp{tail +1}, you
@c can work around the compatibility problems by setting
@c @samp{_POSIX2_VERSION=199209} in your environment.
@c 
@sc{gnu}のユーティリティは通常，システム標準の@acronym{POSIX}のバージョ
ンに準拠しています．異なる@acronym{POSIX}のバージョンに準拠させるため，
適用させる標準の年月を指定する@var{yyyymm}の形式の値に
@env{_POSIX2_VERSION}環境変数を設定してください．現在，
@env{_POSIX2_VERSION}に対して二つの値がサポートされています．
@samp{199209}は@acronym{POSIX} 1003.2-1992を意味し，@samp{200112}は
@acronym{POSIX} 1003.1-2001を意味します．例えば，古いバージョンの
@acronym{POSIX}を仮定する古いソフトウェアを実行し，@samp{sort +1}，
@samp{head -1}，または@samp{tail +1}を使用している場合，環境変数で
@samp{_POSIX2_VERSION=199209}を設定することで，互換性の問題を回避する
ことが可能です．

@node Output of entire files
@c @chapter Output of entire files
@chapter ファイル全体の出力

@cindex output of entire files
@cindex entire files, output of

@c These commands read and write entire files, possibly transforming them
@c in some way.
@c 
以下のコマンドは，いくつかの方法で，おそらくファイルを変換しながら，ファ
イル全体を読み込み，そして書き出します．

@menu
* cat invocation::              Concatenate and write files.
* tac invocation::              Concatenate and write files in reverse.
* nl invocation::               Number lines and write files.
* od invocation::               Write files in octal or other formats.
@end menu

@node cat invocation
@c @section @command{cat}: Concatenate and write files
@section @command{cat}: ファイルを連結し書き込む

@pindex cat
@cindex concatenate and write files
@cindex copying files

@c @command{cat} copies each @var{file} (@samp{-} means standard input), or
@c standard input if none are given, to standard output.  Synopsis:
@c 
@command{cat}は，それぞれの@var{file}(@samp{-}は標準入力を意味します)
や，与えられない場合は標準入力を標準出力へコピーします．概要です．

@example
cat [@var{option}] [@var{file}]@dots{}
@end example

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -A
@itemx --show-all
@opindex -A
@opindex --show-all
@c Equivalent to @option{-vET}.
@c 
@option{-vET}と等価です．

@item -B
@itemx --binary
@opindex -B
@opindex --binary
@cindex binary and text I/O in cat
@c On MS-DOS and MS-Windows only, read and write the files in binary mode.
@c By default, @command{cat} on MS-DOS/MS-Windows uses binary mode only when
@c standard output is redirected to a file or a pipe; this option overrides
@c that.  Binary file I/O is used so that the files retain their format
@c (Unix text as opposed to DOS text and binary), because @command{cat} is
@c frequently used as a file-copying program.  Some options (see below)
@c cause @command{cat} to read and write files in text mode because in those
@c cases the original file contents aren't important (e.g., when lines are
@c numbered by @command{cat}, or when line endings should be marked).  This is
@c so these options work as DOS/Windows users would expect; for example,
@c DOS-style text files have their lines end with the CR-LF pair of
@c characters, which won't be processed as an empty line by @option{-b} unless
@c the file is read in text mode.
@c 
MS-DOSとMS-Windowsのみで，ファイルをバイナリモードで読み書きします．デ
フォルトで，MS-DOS/MS-Windowsでの@command{cat}は，標準出力がファイルや
パイプにリダイレクトされているときだけ，バイナリモードを使用します．こ
のオプションはそれに優先します．バイナリファイルのI/Oでは，
@command{cat}はファイルのコピープログラムとして使用されることが多いの
で，それらの書式(DOSテキストとバイナリに対するUnixテキスト)を保つため
に使われます．(以下の)オプションには，元ファイルの内容が重要でないとき
には，@command{cat}にテキストモードでファイルを読み書きさせるものもあ
ります(例えば，行が@command{cat}で番号付けされるときや行の終りに印を付
けるとき)．これは，これらのオプションをDOS/Windowsユーザが期待したよう
に動作させるためのものです．例えば，DOS形式のテキストファイルは，テキ
ストモードで読まれない場合，@option{-b}で空の行として扱われない，CR-LF 
というペアの文字が行末にあります．

@item -b
@itemx --number-nonblank
@opindex -b
@opindex --number-nonblank
@c Number all nonblank output lines, starting with 1.  On MS-DOS and
@c MS-Windows, this option causes @command{cat} to read and write files in
@c text mode.
@c 
空白でない全ての出力行に，1で始まる番号を付けます．MS-DOSとMS-Windows
では，このオプションで，@command{cat}はテキストモードでファイルを読み
書きします．

@item -e
@opindex -e
@c Equivalent to @option{-vE}.
@c 
@option{-vE}と等価です．

@item -E
@itemx --show-ends
@opindex -E
@opindex --show-ends
@c Display a @samp{$} after the end of each line.  On MS-DOS and
@c MS-Windows, this option causes @command{cat} to read and write files in
@c text mode.
@c 
それぞれの行末の後に@samp{$}を表示します．MS-DOSとMS-Windowsでは，
@command{cat}はこのオプションでテキストモードでファイルを読み書きしま
す．

@item -n
@itemx --number
@opindex -n
@opindex --number
@c Number all output lines, starting with 1.  On MS-DOS and MS-Windows,
@c this option causes @command{cat} to read and write files in text mode.
@c 
全ての出力行に，1で始まる番号を付けます．MS-DOSとMS-Windowsでは，
@command{cat}はこのオプションでテキストモードでファイルを読み書きしま
す．

@item -s
@itemx --squeeze-blank
@opindex -s
@opindex --squeeze-blank
@cindex squeezing blank lines
@c Replace multiple adjacent blank lines with a single blank line.  On
@c MS-DOS and MS-Windows, this option causes @command{cat} to read and write
@c files in text mode.
@c 
複数の隣接した空白行を，一行のブランク行に置換します．MS-DOSと
MS-Windowsでは，@command{cat}はこのオプションでテキストモードでファイ
ルを読み書きします．

@item -t
@opindex -t
@c Equivalent to @option{-vT}.
@c 
@option{-vT}と等価です．

@item -T
@itemx --show-tabs
@opindex -T
@opindex --show-tabs
@c Display TAB characters as @samp{^I}.
@c 
TAB文字を @samp{^I}として表示します．

@item -u
@opindex -u
@c Ignored; for Unix compatibility.
@c 
無視されます．Unix互換性のためです．

@item -v
@itemx --show-nonprinting
@opindex -v
@opindex --show-nonprinting
@c Display control characters except for LFD and TAB using
@c @samp{^} notation and precede characters that have the high bit set with
@c @samp{M-}.  On MS-DOS and MS-Windows, this option causes @command{cat} to
@c read files and standard input in DOS binary mode, so the CR
@c characters at the end of each line are also visible.
@c 
LFDとTAB以外のコントロール文字を，@samp{^}表記法を使用して表示し，
@samp{M-}を使用したハイビットセットがある文字に前置します．MS-DOSと
MS-Windowsでは，@command{cat}はこのオプションでDOSバイナリモードでファ
イルと標準入力を読み込むので，それぞれの行末のCR文字が表示されます．

@end table

@exitstatus


@node tac invocation
@c @section @command{tac}: Concatenate and write files in reverse
@section @command{tac}: 逆順にファイルを連結し書き込む

@pindex tac
@cindex reversing files

@c @command{tac} copies each @var{file} (@samp{-} means standard input), or
@c standard input if none are given, to standard output, reversing the
@c records (lines by default) in each separately.  Synopsis:
@c 
@command{tac}は，それぞれの@var{file}(@samp{-}は，標準入力を意味します) 
や，与えられない場合は標準入力を，個々に分割されたレコード(デフォルト
は行)を逆順にしながら，標準出力へコピーします．概要です．

@example
tac [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c @dfn{Records} are separated by instances of a string (newline by
@c default).  By default, this separator string is attached to the end of
@c the record that it follows in the file.
@c 
@dfn{レコード(record)}は，文字列のインスタンス(デフォルトは改行)で分け
られています．デフォルトで，このセパレータ文字列はファイルのレコードの
終りに続けて付加されます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -b
@itemx --before
@opindex -b
@opindex --before
@c The separator is attached to the beginning of the record that it
@c precedes in the file.
@c 
セパレータを，ファイルのレコードの最初に前置して付加します．

@item -r
@itemx --regex
@opindex -r
@opindex --regex
@c Treat the separator string as a regular expression.  Users of @command{tac}
@c on MS-DOS/MS-Windows should note that, since @command{tac} reads files in
@c binary mode, each line of a text file might end with a CR/LF pair
@c instead of the Unix-style LF.
@c 
セパレータ文字列を正規表現として扱います．MS-DOS/MS-Windowsでの
@command{tac}ユーザは，@command{tac}がファイルをバイナリモードで読むた
め，テキストファイルのそれぞれの行はUnixスタイルのLFの代わりにCR/LFの
ペアで終ることに注意すべきです．

@item -s @var{separator}
@itemx --separator=@var{separator}
@opindex -s
@opindex --separator
@c Use @var{separator} as the record separator, instead of newline.
@c 
@var{separator}を，改行の代わりにセパレータ文字列として用います．

@end table

@exitstatus


@node nl invocation
@c @section @command{nl}: Number lines and write files
@section @command{nl}: 行に番号を付けファイルに書き込む

@pindex nl
@cindex numbering lines
@cindex line numbering

@c @command{nl} writes each @var{file} (@samp{-} means standard input), or
@c standard input if none are given, to standard output, with line numbers
@c added to some or all of the lines.  Synopsis:
@c 
@command{nl}は，それぞれの@var{file}(@samp{-}は標準入力を意味します)や，
与えられない場合は標準入力を，いくつかの行または全ての行に行番号を加え
て標準出力へ書き出します．概要です．

@example
nl [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@cindex logical pages, numbering on
@c @command{nl} decomposes its input into (logical) pages; by default, the
@c line number is reset to 1 at the top of each logical page.  @command{nl}
@c treats all of the input files as a single document; it does not reset
@c line numbers or logical pages between files.
@c 
@command{nl}は，入力を(論理)ページに分解します．デフォルトで，それぞれ
の論理ページのトップで，行番号が1にリセットされます．@command{nl}は全
ての入力ファイルを単一のドキュメントとして扱います．行番号や論理ページ
をファイル間でリセットしません．

@cindex headers, numbering
@cindex body, numbering
@cindex footers, numbering
@c A logical page consists of three sections: header, body, and footer.
@c Any of the sections can be empty.  Each can be numbered in a different
@c style from the others.
@c 
論理ページは三つのセクションから成立ちます．ヘッダ，ボディ，そしてフッ
タです．任意のセクションを空にすることも可能です．それぞれ異なるスタイ
ルで番号を付けることが可能です．

@c The beginnings of the sections of logical pages are indicated in the
@c input file by a line containing exactly one of these delimiter strings:
@c 
論理ページのセクションの最初は，以下のデリミタ文字列の一つを入力ファイ
ルに単一行で含めることで示されます．

@table @samp
@item \:\:\:
@c start of header;
@c 
ヘッダの始まり．
@item \:\:
@c start of body;
@c 
ボディの始まり．
@item \:
@c start of footer.
@c 
フッタの始まり．
@end table

@c The two characters from which these strings are made can be changed from
@c @samp{\} and @samp{:} via options (see below), but the pattern and
@c length of each string cannot be changed.
@c 
これらの文字列を構成する二つの文字を，@samp{\}と@samp{:}から変更するこ
とはオプション(以下を参照)で可能ですが，パターンと文字列の長さの変更は
不可能です．

@c A section delimiter is replaced by an empty line on output.  Any text
@c that comes before the first section delimiter string in the input file
@c is considered to be part of a body section, so @command{nl} treats a
@c file that contains no section delimiters as a single body section.
@c 
セクションデリミタは，出力では空行に置換されます．入力ファイルの，最初
のセクションのデリミタ文字列より前のあらゆるテキストは，ボディセクショ
ンの一部と考えられるので，@command{nl}は，セクションデリミタが無いファ
イルを，一つのボディセクションとして扱います．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -b @var{style}
@itemx --body-numbering=@var{style}
@opindex -b
@opindex --body-numbering
@c Select the numbering style for lines in the body section of each
@c logical page.  When a line is not numbered, the current line number
@c is not incremented, but the line number separator character is still
@c prepended to the line.  The styles are:
@c 
それぞれの論理ページのボディセクションの行に対する番号付けのスタイルを
選択します．行が番号付けされないとき，現在の行番号は増加しませんが，行
番号と分離する文字列が行に前置されます．スタイルは以下のとおりです．

@table @samp
@item a
@c number all lines,
@c 
全ての行に番号を付けます．
@item t
@c number only nonempty lines (default for body),
@c 
(デフォルトでボディに対し)空でない行だけ，番号を付けます．
@item n
@c do not number lines (default for header and footer),
@c 
(デフォルトでヘッダやフッタに対し)番号を付けません．
@item p@var{bre}
@c number only lines that contain a match for the basic regular
@c expression @var{bre}.
@c @xref{Regular Expressions, , Regular Expressions, grep, The GNU Grep Manual}.
@c 
基本正規表現@var{bre}にマッチしたものを含む行だけ番号を付けます．
@xref{Regular Expressions, , Regular Expressions, grep, The GNU Grep
Manual}.
@end table

@item -d @var{cd}
@itemx --section-delimiter=@var{cd}
@opindex -d
@opindex --section-delimiter
@cindex section delimiters of pages
@c Set the section delimiter characters to @var{cd}; default is
@c @samp{\:}. If only @var{c} is given, the second remains @samp{:}.
@c (Remember to protect @samp{\} or other metacharacters from shell
@c expansion with quotes or extra backslashes.)
@c 
セクションを分離する文字を@var{cd}に設定します．デフォルトは@samp{\:} 
です．@var{c}のみ与えられた場合，二番目の@samp{:}はそのままです．(シェ
ルが展開する@samp{\}やその他のメタ文字を，引用符やバックスラッシュの追
加で保護することを忘れないでください．)

@item -f @var{style}
@itemx --footer-numbering=@var{style}
@opindex -f
@opindex --footer-numbering
@c Analogous to @option{--body-numbering}.
@c 
@option{--body-numbering}の同類です．

@item -h @var{style}
@itemx --header-numbering=@var{style}
@opindex -h
@opindex --header-numbering
@c Analogous to @option{--body-numbering}.
@c 
@option{--body-numbering}の同類です．

@item -i @var{number}
@itemx --page-increment=@var{number}
@opindex -i
@opindex --page-increment
@c Increment line numbers by @var{number} (default 1).
@c 
行番号を@var{number}ずつ(デフォルトは1)増加します．

@item -l @var{number}
@itemx --join-blank-lines=@var{number}
@opindex -l
@opindex --join-blank-lines
@cindex empty lines, numbering
@cindex blank lines, numbering
@c Consider @var{number} (default 1) consecutive empty lines to be one
@c logical line for numbering, and only number the last one.  Where fewer
@c than @var{number} consecutive empty lines occur, do not number them.
@c An empty line is one that contains no characters, not even spaces
@c or tabs.
@c 
@var{number}(デフォルトは1)連続した空行を，番号付としては一つの論理行
だと考え，最後のものだけに番号付けします．@var{number}より少ない行の連
続した空行があるところでは番号付けをしません．空行とは，文字を含まずス
ペースやタグも含まないものです．

@item -n @var{format}
@itemx --number-format=@var{format}
@opindex -n
@opindex --number-format
@c Select the line numbering format (default is @code{rn}):
@c 
行の番号付けの書式を選択します(デフォルトは@code{rn}です)．

@table @samp
@item ln
@opindex ln @r{format for @command{nl}}
@c left justified, no leading zeros;
@c 
左寄せで，先頭にゼロを書きません．
@item rn
@opindex rn @r{format for @command{nl}}
@c right justified, no leading zeros;
@c 
右寄せで，先頭にゼロを書きません．
@item rz
@opindex rz @r{format for @command{nl}}
@c right justified, leading zeros.
@c 
右寄せで，先頭にゼロを書きます．
@end table

@item -p
@itemx --no-renumber
@opindex -p
@opindex --no-renumber
@c Do not reset the line number at the start of a logical page.
@c 
論理ページの最初で，行番号をリセットしません．

@item -s @var{string}
@itemx --number-separator=@var{string}
@opindex -s
@opindex --number-separator
@c Separate the line number from the text line in the output with
@c @var{string} (default is the TAB character).
@c 
出力で，@var{string}を使って(デフォルトはTAB文字)テキスト行と行番号を
分離します．

@item -v @var{number}
@itemx --starting-line-number=@var{number}
@opindex -v
@opindex --starting-line-number
@c Set the initial line number on each logical page to @var{number} (default 1).
@c 
それぞれの論理ページの行番号の初期値を，@var{number}(デフォルトは1)に
設定します．

@item -w @var{number}
@itemx --number-width=@var{number}
@opindex -w
@opindex --number-width
@c Use @var{number} characters for line numbers (default 6).
@c 
行番号に，@var{number}文字使います(デフォルトは6)．

@end table

@exitstatus


@node od invocation
@c @section @command{od}: Write files in octal or other formats
@section @command{od}: 八進数やその他の書式でファイルを書き出す

@pindex od
@cindex octal dump of files
@cindex hex dump of files
@cindex ASCII dump of files
@cindex file contents, dumping unambiguously

@c @command{od} writes an unambiguous representation of each @var{file}
@c (@samp{-} means standard input), or standard input if none are given.
@c Synopses:
@c 
@command{od}は，それぞれの@var{file}(@samp{-}は標準入力を意味します)や，
与えられない場合は標準入力を明瞭な表現で書き出します．概要です．

@example
od [@var{option}]@dots{} [@var{file}]@dots{}
od --traditional [@var{file}] [[+]@var{offset} [[+]@var{label}]]
@end example

@c Each line of output consists of the offset in the input, followed by
@c groups of data from the file. By default, @command{od} prints the offset in
@c octal, and each group of file data is two bytes of input printed as a
@c single octal number.
@c 
それぞれの出力行は，入力オフセットとそれに続くファイルデータのグループ
から成り立ちます．デフォルトで，@command{od}は八進数でオフセットを出力
し，それぞれのファイルのデータグループは，一つの八進数として出力される
入力からの二バイトです．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -A @var{radix}
@itemx --address-radix=@var{radix}
@opindex -A
@opindex --address-radix
@cindex radix for file offsets
@cindex file offset radix
@c Select the base in which file offsets are printed.  @var{radix} can
@c be one of the following:
@c 
出力するファイルオフセットの基数を選択します．@var{radix}は，以下の一
つが使用可能です．

@table @samp
@item d
@c decimal;
@c 
十進数．
@item o
@c octal;
@c 
八進数．
@item x
@c hexadecimal;
@c 
16進数．
@item n
@c none (do not print offsets).
@c 
なし(出力オフセットを出力しません)．
@end table

@c The default is octal.
@c 
デフォルトは八進数です．

@item -j @var{bytes}
@itemx --skip-bytes=@var{bytes}
@opindex -j
@opindex --skip-bytes
@c Skip @var{bytes} input bytes before formatting and writing.  If
@c @var{bytes} begins with @samp{0x} or @samp{0X}, it is interpreted in
@c hexadecimal; otherwise, if it begins with @samp{0}, in octal; otherwise,
@c in decimal.  Appending @samp{b} multiplies @var{bytes} by 512, @samp{k}
@c by 1024, and @samp{m} by 1048576.
@c 
書式化と書き出しの前に，入力バイトの@var{bytes}スキップします．
@var{bytes}が@samp{0x}や@samp{0X}で始まる場合，16進数と解釈されます．
それ以外で@samp{0}で始まる場合は八進数．それ以外では十進数です．
@samp{b}の追加で@var{bytes}を512倍し，@samp{k}は1024倍，そして@samp{m} 
は1048576倍します．

@item -N @var{bytes}
@itemx --read-bytes=@var{bytes}
@opindex -N
@opindex --read-bytes
@c Output at most @var{bytes} bytes of the input.  Prefixes and suffixes on
@c @code{bytes} are interpreted as for the @option{-j} option.
@c 
入力の最大@var{bytes}バイトを出力します．@code{bytes}に対する接頭辞と
接尾子は，@option{-j}のものと同じように解釈されます．

@item -s @var{n}
@itemx --strings[=@var{n}]
@opindex -s
@opindex --strings
@cindex string constants, outputting
@c Instead of the normal output, output only @dfn{string constants}: at
@c least @var{n} consecutive @acronym{ASCII} graphic characters,
@c followed by a null (zero) byte.
@c 
通常の出力の代わりに，@dfn{文字列定数(string constants)}だけを出力しま
す．それは，少なくとも@var{n}個の連続した@acronym{ASCII}の印字可能な文
字で，それにはnull(ゼロ)バイトが続きます．

@c If @var{n} is omitted with @option{--strings}, the default is 3.  On
@c older systems, @sc{gnu} @command{od} instead supports an obsolete
@c option @option{-s[@var{n}]}, where @var{n} also defaults to 3.
@c @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) does not allow
@c @option{-s} without an argument; use @option{--strings} instead.
@c 
@option{--strings}で@var{n}が省略されている場合，デフォルトは3です．古
いシステムでは，@sc{gnu} @command{od}は時代遅れのオプション
@option{-s[@var{n}]}をサポートしていて，そこでの@var{n}のデフォルトも3 
です．@acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})では，
引数を用いない@option{-s}は許可されません．代わりに@option{--strings} 
を使用してください．

@item -t @var{type}
@itemx --format=@var{type}
@opindex -t
@opindex --format
@c Select the format in which to output the file data.  @var{type} is a
@c string of one or more of the below type indicator characters.  If you
@c include more than one type indicator character in a single @var{type}
@c string, or use this option more than once, @command{od} writes one copy
@c of each output line using each of the data types that you specified,
@c in the order that you specified.
@c 
ファイルデータの出力書式を選択します．@var{type}は，以下の形式を示す文
字の一つ以上の文字列です．単一の@var{type}文字列に，一つ以上の形式を示
す文字を含めたり，一回以上このオプションを使用した場合，@command{od}は，
それぞれの指定したデータ形式を用いて，それぞれの出力行のコピーを，指定
した順番で書き出します．

@c Adding a trailing ``z'' to any type specification appends a display
@c of the @acronym{ASCII} character representation of the printable characters
@c to the output line generated by the type specification.
@c 
あらゆる形式指定の終りに``z''を加えることで，形式指定で生成された出力
行に，印刷可能な文字に存在する@acronym{ASCII}文字の表示を加えます．

@table @samp
@item a
@c named character
@c 
指名された文字．
@item c
@c @acronym{ASCII} character or backslash escape,
@c 
@acronym{ASCII}文字，またはバックスラッシュエスケープ．
@item d
@c signed decimal
@c 
符号付き十進数．
@item f
@c floating point
@c 
浮動小数点．
@item o
@c octal
@c 
八進数．
@item u
@c unsigned decimal
@c 
符号無し十進数．
@item x
@c hexadecimal
@c 
16進数．
@end table

@c The type @code{a} outputs things like @samp{sp} for space, @samp{nl} for
@c newline, and @samp{nul} for a null (zero) byte.  Type @code{c} outputs
@c @samp{ }, @samp{\n}, and @code{\0}, respectively.
@c 
形式@code{a}は，スペースに対し@samp{sp}，改行に対し@samp{nl}，そして
null(ゼロ)バイトに対し@samp{nul}のようなものを出力します．形式@code{c} 
は，それぞれ@samp{ }，@samp{\n}，そして@code{\0}を出力します．

@cindex type size
@c Except for types @samp{a} and @samp{c}, you can specify the number
@c of bytes to use in interpreting each number in the given data type
@c by following the type indicator character with a decimal integer.
@c Alternately, you can specify the size of one of the C compiler's
@c built-in data types by following the type indicator character with
@c one of the following characters.  For integers (@samp{d}, @samp{o},
@c @samp{u}, @samp{x}):
@c 
@samp{a}と@samp{c}以外の形式に対し，それぞれの数字の解釈に使用するバイ
ト数を，以下の十進の整数を用いた形式を示す文字で与えられているデータ形
式で指定することができます．代わりに，以下の文字の一つを用いた形式を示
す文字で，Cコンパイラ組込みのデータ形式を指定することも可能です．整数
(@samp{d}，@samp{o}，@samp{u}，@samp{x})に対しては以下のようになります．

@table @samp
@item C
char
@item S
short
@item I
int
@item L
long
@end table

@c For floating point (@code{f}):
@c 
浮動小数点(@code{f})に対しては以下のようになります．
@table @asis
@item F
float
@item D
double
@item L
long double
@end table

@item -v
@itemx --output-duplicates
@opindex -v
@opindex --output-duplicates
@c Output consecutive lines that are identical.  By default, when two or
@c more consecutive output lines would be identical, @command{od} outputs only
@c the first line, and puts just an asterisk on the following line to
@c indicate the elision.
@c 
同一の連続した行を出力します．デフォルトで，二行以上連続した出力行が同
一のとき，@command{od}は最初の行のみ出力し，それ以下の行には省略を示す
ためアスタリスクだけを書きます．

@item -w @var{n}
@itemx --width[=@var{n}]
@opindex -w
@opindex --width
@c Dump @code{n} input bytes per output line.  This must be a multiple of
@c the least common multiple of the sizes associated with the specified
@c output types.
@c 
出力行ごとに，@code{n}入力バイトをダンプします．これは，出力形式で指定
したものに関連するサイズの最小公倍数の倍数にする必要があります．

@c If this option is not given at all, the default is 16.  If @var{n} is
@c omitted with @option{--width}, the default is 32.  On older systems,
@c @sc{gnu} @command{od} instead supports an obsolete option
@c @option{-w[@var{n}]}, where @var{n} also defaults to 32.  @acronym{POSIX}
@c 1003.1-2001 (@pxref{Standards conformance}) does not allow @option{-w}
@c without an argument; use @option{--width} instead.
@c 
このオプションが全く指定されていない場合，デフォルトは16です．
@option{--width}で@var{n}が省略されている場合，デフォルトは32です．古
いシステムでは，@sc{gnu} @command{od}は時代遅れのオプション
@option{-w[@var{n}]}を代わりにサポートしていて，そこでの@var{n}のデフォ
ルトも32です．@acronym{POSIX} 1003.1-2001 (@pxref{Standards
conformance})では，引数を用いない@option{-w}を許可していません．代わり
に@option{--width}を使用してください．

@end table

@c The next several options are shorthands for format specifications.
@c @sc{gnu} @command{od} accepts any combination of shorthands and format
@c specification options.  These options accumulate.
@c 
次のいくつかのオプションは，書式指定の短いものです．@sc{gnu}
@command{od}は，短いものと書式指定のオプションのあらゆる組み合わせを受
け入れます．これらのオプションは累積されます．

@table @samp

@item -a
@opindex -a
@c Output as named characters.  Equivalent to @option{-ta}.
@c 
指名された文字として出力します．@option{-ta}と等価です．

@item -b
@opindex -b
@c Output as octal bytes.  Equivalent to @option{-toC}.
@c 
八進数のバイトとして出力します．@option{-toC}と等価です．

@item -c
@opindex -c
@c Output as @acronym{ASCII} characters or backslash escapes.  Equivalent to
@c @option{-tc}.
@c 
@acronym{ASCII}文字やバックスラッシュエスケープとして出力します．
@option{-tc}と等価です．

@item -d
@opindex -d
@c Output as unsigned decimal shorts.  Equivalent to @option{-tu2}.
@c 
符号無しの十進数のshortとして出力します．@option{-tu2}と等価です．

@item -f
@opindex -f
@c Output as floats.  Equivalent to @option{-tfF}.
@c 
浮動小数点として出力します．@option{-tfF}と等価です．

@item -h
@opindex -h
@c Output as hexadecimal shorts.  Equivalent to @option{-tx2}.
@c 
16進数のshortとして出力します．@option{-tx2}と等価です．

@item -i
@opindex -i
@c Output as decimal shorts.  Equivalent to @option{-td2}.
@c 
十進数のshortとして出力します．@option{-td2}と等価です．

@item -l
@opindex -l
@c Output as decimal longs.  Equivalent to @option{-td4}.
@c 
十進数のlongとして出力します．@option{-td4}と等価です．

@item -o
@opindex -o
@c Output as octal shorts.  Equivalent to @option{-to2}.
@c 
八進数のshortとして出力します．@option{-to2}と等価です．

@item -x
@opindex -x
@c Output as hexadecimal shorts.  Equivalent to @option{-tx2}.
@c 
16進数のshortとして出力します．@option{-tx2}と等価です．

@item --traditional
@opindex --traditional
@c Recognize the non-option arguments that traditional @command{od}
@c accepted.  The following syntax:
@c 
伝統的な@command{od}が受け入れる，オプション引数が無いものとして認識し
ます．以下の構文です．

@smallexample
od --traditional [@var{file}] [[+]@var{offset}[.][b] [[+]@var{label}[.][b]]]
@end smallexample

@noindent
@c can be used to specify at most one file and optional arguments
@c specifying an offset and a pseudo-start address, @var{label}.  By
@c default, @var{offset} is interpreted as an octal number specifying how
@c many input bytes to skip before formatting and writing.  The optional
@c trailing decimal point forces the interpretation of @var{offset} as a
@c decimal number.  If no decimal is specified and the offset begins with
@c @samp{0x} or @samp{0X} it is interpreted as a hexadecimal number.  If
@c there is a trailing @samp{b}, the number of bytes skipped will be
@c @var{offset} multiplied by 512.  The @var{label} argument is interpreted
@c just like @var{offset}, but it specifies an initial pseudo-address.  The
@c pseudo-addresses are displayed in parentheses following any normal
@c address.
@c 
これは，最大一つのファイルと，オプション引数で指定しているオフセットと
疑似スタートアドレス，@var{label}を指定するために使用することが可能で
す．デフォルトで，@var{offset}は，書式化と書き出しの前にスキップする入
力バイトの量が八進数で指定されていると解釈されます．オプションで十進数
の位置を後置すると，@var{offset}の解釈は強制的に十進数とします．十進数
が指定されておらず，オフセットが@samp{0x}や@samp{0X}で始まる場合，それ
は16進数として解釈されます．@samp{b}の後置がある場合，スキップされるバ
イト数は@var{offset} の512倍になります．@var{label}引数は，
@var{offset}のように解釈されますが，それは初期の疑似アドレスを指定しま
す．疑似アドレスは，通常のアドレスに続くカッコ内に表示されます．

@end table

@exitstatus


@node Formatting file contents
@c @chapter Formatting file contents
@chapter ファイルの内容の書式化

@cindex formatting file contents

@c These commands reformat the contents of files.
@c 
以下のコマンドは，ファイルの内容を再書式化します．

@menu
* fmt invocation::              Reformat paragraph text.
* pr invocation::               Paginate or columnate files for printing.
* fold invocation::             Wrap input lines to fit in specified width.
@end menu


@node fmt invocation
@c @section @command{fmt}: Reformat paragraph text
@section @command{fmt}: 段落のテキストを再書式化する．

@pindex fmt
@cindex reformatting paragraph text
@cindex paragraphs, reformatting
@cindex text, reformatting

@c @command{fmt} fills and joins lines to produce output lines of (at most)
@c a given number of characters (75 by default).  Synopsis:
@c 
@command{fmt}は，与えられた(最大)文字数(デフォルトは75)の出力行を生成
するために行を補充し繋げます．概要です．

@example
fmt [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c @command{fmt} reads from the specified @var{file} arguments (or standard
@c input if none are given), and writes to standard output.
@c 
@command{fmt}は，指定された@var{file}引数(または，与えられない場合は標
準入力)からファイルを読み込み，標準出力に書き出します．

@c By default, blank lines, spaces between words, and indentation are
@c preserved in the output; successive input lines with different
@c indentation are not joined; tabs are expanded on input and introduced on
@c output.
@c 
デフォルトで，空白行，単語間のスペース，そして字下げは出力で維持されま
す．連続した入力行で字下げが異なるものは連結されません．入力のタブは展
開され，出力に書き込まれます．

@cindex line-breaking
@cindex sentences and line-breaking
@cindex Knuth, Donald E.
@cindex Plass, Michael F.
@c @command{fmt} prefers breaking lines at the end of a sentence, and tries to
@c avoid line breaks after the first word of a sentence or before the last
@c word of a sentence.  A @dfn{sentence break} is defined as either the end
@c of a paragraph or a word ending in any of @samp{.?!}, followed by two
@c spaces or end of line, ignoring any intervening parentheses or quotes.
@c Like @TeX{}, @command{fmt} reads entire ``paragraphs'' before choosing line
@c breaks; the algorithm is a variant of that in ``Breaking Paragraphs Into
@c Lines'' (Donald E. Knuth and Michael F. Plass, @cite{Software---Practice
@c and Experience}, 11 (1981), 1119--1184).
@c 
@command{fmt}は，文の終りで改行しようとし，文の最初の単語の後や文の最
後の単語の前での改行を避けようとします．@dfn{文の切れ目(sentence
break)}は段落の終り，または，@samp{.?!}で終るすべて単語に，二つのスペー
スまたは行末が続くものと定義されていて，カッコや引用符の内部は無視され
ます．@TeX{}のように，@command{fmt}は行の分割を選択する前に``段落''全
体を読み込みます．アルゴリズムは``Breaking Paragraphs Into Lines(段落
を行に区切る)''の変種です(Donald E. Knuth and Michael F. Plass,
@cite{Software---Practice and Experience}, 11 (1981), 1119--1184)．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -c
@itemx --crown-margin
@opindex -c
@opindex --crown-margin
@cindex crown margin
@c @dfn{Crown margin} mode: preserve the indentation of the first two
@c lines within a paragraph, and align the left margin of each subsequent
@c line with that of the second line.
@c 
@dfn{Crown margin}モード: 段落の最初の二行の字下げを保存し，それに続く
それぞれの行の左の余白を，二行目の余白に揃えます．

@item -t
@itemx --tagged-paragraph
@opindex -t
@opindex --tagged-paragraph
@cindex tagged paragraphs
@c @dfn{Tagged paragraph} mode: like crown margin mode, except that if
@c indentation of the first line of a paragraph is the same as the
@c indentation of the second, the first line is treated as a one-line
@c paragraph.
@c 
@dfn{Tagged paragraph}モード: crown marginモードに似ていますが，段落の
最初の行の字下が二行目の字下げと同じ場合，最初の行は一行の段落として扱
われます．

@item -s
@itemx --split-only
@opindex -s
@opindex --split-only
@c Split lines only.  Do not join short lines to form longer ones.  This
@c prevents sample lines of code, and other such ``formatted'' text from
@c being unduly combined.
@c 
行の分割のみです．短い行を長い形式に連結しません．これはコードのサンプ
ル行と，その他の``書式化された''テキストが醜く連結されることを妨げます．

@item -u
@itemx --uniform-spacing
@opindex -u
@opindex --uniform-spacing
@c Uniform spacing.  Reduce spacing between words to one space, and spacing
@c between sentences to two spaces.
@c 
スペースの付け方を統一します．単語の間のスペースを一つのスペースに，そ
して文の間のスペースを二つのスペースに減らします．

@item -@var{width}
@itemx -w @var{width}
@itemx --width=@var{width}
@opindex -@var{width}
@opindex -w
@opindex --width
@c Fill output lines up to @var{width} characters (default 75).  @command{fmt}
@c initially tries to make lines about 7% shorter than this, to give it
@c room to balance line lengths.
@c 
出力ファイルを@var{width}文字(デフォルトは75)まで補充します．
@command{fmt}は最初に，これより7%短い行にし，行の長さのバランスのため
の空間を与えようとします．

@item -p @var{prefix}
@itemx --prefix=@var{prefix}
@c Only lines beginning with @var{prefix} (possibly preceded by whitespace)
@c are subject to formatting. The prefix and any preceding whitespace are
@c stripped for the formatting and then re-attached to each formatted output
@c line.  One use is to format certain kinds of program comments, while
@c leaving the code unchanged.
@c 
@var{prefix}(空白で始めることも可能です)で始まる行のみ，書式化を適用し
ます．prefixと前置されたあらゆる空白は，書式化のため取り除かれ，それぞ
れの出力行に再び取り付けられます．一つの使用方法としては，ある種のプロ
グラムのコメントの書式化があげられ，そこではコードは変化しません．

@end table

@exitstatus


@node pr invocation
@c @section @command{pr}: Paginate or columnate files for printing
@section @command{pr}: 印刷のためのファイルのページ化とコラム化

@pindex pr
@cindex printing, preparing files for
@cindex multicolumn output, generating
@cindex merging files in parallel

@c @command{pr} writes each @var{file} (@samp{-} means standard input), or
@c standard input if none are given, to standard output, paginating and
@c optionally outputting in multicolumn format; optionally merges all
@c @var{file}s, printing all in parallel, one per column.  Synopsis:
@c 
@command{pr}は，それぞれの@var{file}(@samp{-}は標準入力を意味します)や，
与えられない場合は標準入力をページ化し，オプションで複数列の書式での出
力を標準出力に書き出します．オプションで，全ての@var{file}を結合し一列
ごとに並列に全てを出力します．概要です．

@example
pr [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@vindex LC_MESSAGES
@c By default, a 5-line header is printed at each page: two blank lines;
@c a line with the date, the filename, and the page count; and two more
@c blank lines.  A footer of five blank lines is also printed.
@c With the @option{-F}
@c option, a 3-line header is printed: the leading two blank lines are
@c omitted; no footer is used.  The default @var{page_length} in both cases is 66
@c lines.  The default number of text lines changes from 56 (without @option{-F})
@c to 63 (with @option{-F}).  The text line of the header takes the form
@c @samp{@var{date} @var{string} @var{page}}, with spaces inserted around
@c @var{string} so that the line takes up the full @var{page_width}.  Here,
@c @var{date} is the date (see the @option{-D} or @option{--date-format}
@c option for details), @var{string} is the centered header string, and
@c @var{page} identifies the page number.  The @env{LC_MESSAGES} locale
@c category affects the spelling of @var{page}; in the default C locale, it
@c is @samp{Page @var{number}} where @var{number} is the decimal page
@c number.
@c 
デフォルトで，五行のヘッダがそれぞれのページに出力されます．二行の空白
行．日付，ファイル名，そしてページ番号がある行．さらに二行は空白行です．
また，五行の空白行を持つフッタも出力します．@option{-F}オプションで，
三行のヘッダを出力します．最初の二行の空白行は削除されます．フッタは使
用されません．どちらの場合でもデフォルトの@var{page_length}は66行です．
テキスト行のデフォルト数は56(@option{-F}が無い場合)から63(@option{-F} 
がある場合)まで変化します．ヘッダのテキスト行は，@samp{@var{date}
@var{string} @var{page}}の形式で，行が@var{page_width}いっぱいになるよ
うに@var{string}の周りにスペースが挿入されます．ここで，@var{date}は日
付(詳細は，@option{-D}や@option{--date-format}オプションを参照してくだ
さい)，@var{string}はセンタリングされたヘッダ文字列，そして@var{page} 
はページ番号を示します．@env{LC_MESSAGES}ロカールカテゴリは@var{page} 
の綴りに影響します．デフォルトのCロカールでは@samp{Page @var{number}} 
になり，@var{number}は十進数のページ番号です．

@c Form feeds in the input cause page breaks in the output.  Multiple form
@c feeds produce empty pages.
@c 
入力のフォームフィードは，出力で改ページとなります．複数のフォームフィー
ドは空のページを生成します．

@c Columns are of equal width, separated by an optional string (default
@c is @samp{space}).  For multicolumn output, lines will always be truncated to
@c @var{page_width} (default 72), unless you use the @option{-J} option.
@c For single
@c column output no line truncation occurs by default.  Use @option{-W} option to
@c truncate lines in that case.
@c 
列は同じ幅で，オプションの文字列(デフォルトは@samp{space})で分けられて
います．複数列の出力では，@option{-J}オプションを使用していない場合，
行は常に@var{page_width}(デフォルトで72)で切り詰められます．単一列での
出力は，デフォルトでは切り詰められません．その場合，行を切り詰めるため
@option{-W}オプションを使用してください．

@c The following changes were made in version 1.22i and apply to later
@c versions of @command{pr}:
@c 
以下の変更は，version 1.22iでなされ，それ以降の@command{pr}のバージョ
ンに適用されています．
@c FIXME: this whole section here sounds very awkward to me. I
@c made a few small changes, but really it all needs to be redone. - Brian
@c OK, I fixed another sentence or two, but some of it I just don't understand.
@ - Brian
@itemize @bullet

@item
@c Some small @var{letter options} (@option{-s}, @option{-w}) have been
@c redefined for better @acronym{POSIX} compliance.  The output of some further
@c cases has been adapted to other Unix systems.  These changes are not
@c compatible with earlier versions of the program.
@c 
小文字の@var{letter options}(@option{-s}，@option{-w})には，より良い
@acronym{POSIX}準拠のもので再定義されているものもあります．それ以外の
場合での出力は，他のUnixに適合されたものもあります．これらの変更は，プ
ログラムの以前のバージョンと互換性がありません．

@item
@c Some @var{new capital letter} options (@option{-J}, @option{-S}, @option{-W})
@c have been introduced to turn off unexpected interferences of small letter
@c options.  The @option{-N} option and the second argument @var{last_page}
@c of @samp{+FIRST_PAGE} offer more flexibility.  The detailed handling of
@c form feeds set in the input files requires the @option{-T} option.
@c 
@var{new capital letter}オプション(@option{-J}，@option{-S}，
@option{-W})には，小文字のオプションでの予期せぬインターフェースを取り
消すために導入されたものもあります．@option{-N}オプションと二番目の引
数@samp{+FIRST_PAGE}の@var{last_page}で，より柔軟性が高くなります．入
力ファイルのフォームフィード設定を詳細に扱うため，@option{-T}オプショ
ンが必要になります．

@item
@c Capital letter options override small letter ones.
@c 
大文字のオプションは，小文字のものに優先します．

@item
@c Some of the option-arguments (compare @option{-s}, @option{-e},
@c @option{-i}, @option{-n}) cannot be specified as separate arguments from the
@c preceding option letter (already stated in the @acronym{POSIX} specification).
@c 
オプション引数には(@option{-s}，@option{-S}，@option{-e}，@option{-i}，
@option{-n}と比較して)，(@acronym{POSIX}仕様で既に述べられた)前置され
ているオプション文字と分離されている引数を指定することが不可能なものも
あります．
@end itemize

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item +@var{first_page}[:@var{last_page}]
@itemx --pages=@var{first_page}[:@var{last_page}]
@c The two following @opindex lines evoke warnings because they contain `:'
@c The `info' spec does not permit that.  If we use those lines, we end
@c up with truncated index entries that don't work.
@c @opindex +@var{first_page}[:@var{last_page}]
@c @opindex --pages=@var{first_page}[:@var{last_page}]
@opindex +@var{page_range}
@opindex --pages=@var{page_range}
@c Begin printing with page @var{first_page} and stop with @var{last_page}.
@c Missing @samp{:@var{last_page}} implies end of file.  While estimating
@c the number of skipped pages each form feed in the input file results
@c in a new page.  Page counting with and without @samp{+@var{first_page}}
@c is identical.  By default, counting starts with the first page of input
@c file (not first page printed).  Line numbering may be altered by @option{-N}
@c option.
@c 
ページ@var{first_page}から出力を開始し，@var{last_page}で停止します．
@samp{:@var{last_page}}が無い場合は，ファイルの終りを暗黙に指定します．
飛ばされたページ数を計算している間，入力ファイルのそれぞれのフォーム
フィードは，結果として新しいページになります．@samp{+@var{first_page}} 
がある場合と無い場合のページの数え方は同じです．デフォルトで，入力ファ
イルの最初のページでカウントを開始します(最初のページは出力されません)．
行の番号付けは，@option{-N}オプションで変更してもかまいません．

@item -@var{column}
@itemx --columns=@var{column}
@opindex -@var{column}
@opindex --columns
@cindex down columns
@c With each single @var{file}, produce @var{column} columns of output
@c (default is 1) and print columns down, unless @option{-a} is used.  The
@c column width is automatically decreased as @var{column} increases; unless
@c you use the @option{-W/-w} option to increase @var{page_width} as well.
@c This option might well cause some lines to be truncated.  The number of
@c lines in the columns on each page are balanced.  The options @option{-e}
@c and @option{-i} are on for multiple text-column output.  Together with
@c @option{-J} option column alignment and line truncation is turned off.
@c Lines of full length are joined in a free field format and @option{-S}
@c option may set field separators.  @option{-@var{column}} may not be used
@c with @option{-m} option.
@c 
それぞれ単一@var{file}を用いて，@option{-a}が使用されない場合は
@var{column}列(デフォルトで1)の出力を生成し列を下へ向かって出力します．
列の幅は，@var{column}が増加するに従い，自動的に減少します．
@var{page_width}を増加させるため，@option{-W/-w}を使用していない場合も
同様です．このオプションは，いくつかの行を切り詰める可能性があります．
それぞれのページの列の行数は平均化されます．オプション@option{-e}と
@option{-i}は，複数のテキスト列の出力のためにあります．@option{-J}をと
もに用いると，列の整列と行の切り詰めは停止します．十分な長さの行は，フ
リーフィールド書式に組み込まれ，@option{-S}オプションはフィールドを分
ける可能性があります．@option{-@var{column}}は@option{-m}オプションと
ともに使用してはいけません．

@item -a
@itemx --across
@opindex -a
@opindex --across
@cindex across columns
@c With each single @var{file}, print columns across rather than down.  The
@c @option{-@var{column}} option must be given with @var{column} greater than one.
@c If a line is too long to fit in a column, it is truncated.
@c 
それぞれ単一@var{file}を用い，列を下ではなく横に出力します．
@option{-@var{column}}オプションは，一列以上の@var{column}で与える必要
があります．列に適さないほど余りに長い場合，それは切り詰められます．

@item -c
@itemx --show-control-chars
@opindex -c
@opindex --show-control-chars
@c Print control characters using hat notation (e.g., @samp{^G}); print
@c other nonprinting characters in octal backslash notation.  By default,
@c nonprinting characters are not changed.
@c 
ハット表記で(例えば，@samp{^G})を使用して制御文字を出力します．八進数
のバックスラッシュ表記で，その他の印刷不可能な文字を表示します．デフォ
ルトで，印刷不可能な文字は変更されません．

@item -d
@itemx --double-space
@opindex -d
@opindex --double-space
@cindex double spacing
@c Double space the output.
@c 
ダブルスペースの出力です．

@item -D @var{format}
@itemx --date-format=@var{format}
@cindex time formats
@cindex formatting times
@c Format header dates using @var{format}, using the same conventions as
@c for the the command @samp{date +@var{format}}; @xref{date invocation}.
@c Except for directives, which start with
@c @samp{%}, characters in @var{format} are printed unchanged.  You can use
@c this option to specify an arbitrary string in place of the header date,
@c e.g., @option{--date-format="Monday morning"}.
@c 
@var{format}を使用してヘッダの日付を書式化し，それはコマンド@samp{date
+@var{format}}と同じ慣習を使用します．@xref{date invocation}.
@samp{%}で始まる指示語以外，@var{format}内の文字は変更されずに出力され
ます．ヘッダの日付の場所に，例えば@option{--date-format="Monday
morning"}のような，任意の文字列を指定するために，このオプションを使用
することが可能です．

@vindex POSIXLY_CORRECT
@vindex LC_TIME
@c If the @env{POSIXLY_CORRECT} environment variable is not set, the date
@c format defaults to @samp{%Y-%m-%d %H:%M} (for example, @samp{2001-12-04
@c 23:59}); otherwise, the format depends on the @env{LC_TIME} locale
@c category, with the default being @samp{%b %e %H:%M %Y} (for example,
@c @samp{Dec@ @ 4 23:59 2001}.
@c 
@env{POSIXLY_CORRECT}環境変数が設定されていない場合，日付の書式はデフォ
ルトで@samp{%Y-%m-%d %H:%M}です(例えば，@samp{2001-12-04 23:59})．それ
以外の場合，書式は@env{LC_TIME}ロカールカテゴリに依存し，デフォルトは
@samp{%b %e %H:%M %Y}(例えば，@samp{Dec@ @ 4 23:59 2001})になります．

@item -e[@var{in-tabchar}[@var{in-tabwidth}]]
@itemx --expand-tabs[=@var{in-tabchar}[@var{in-tabwidth}]]
@opindex -e
@opindex --expand-tabs
@cindex input tabs
@c Expand @var{tab}s to spaces on input.  Optional argument @var{in-tabchar} is
@c the input tab character (default is the TAB character).  Second optional
@c argument @var{in-tabwidth} is the input tab character's width (default
@c is 8).
@c 
入力の@var{tab}をスペースに展開します．オプションの引数
@var{in-tabchar}は，入力のタブ文字(デフォルトはTAB文字)です．二番目の
オプション引数@var{in-tabwidth}は，入力タブ文字の幅(デフォルトは8)です．

@item -f
@itemx -F
@itemx --form-feed
@opindex -F
@opindex -f
@opindex --form-feed
@c Use a form feed instead of newlines to separate output pages.  The default
@c page length of 66 lines is not altered.  But the number of lines of text
@c per page changes from default 56 to 63 lines.
@c 
出力ページを分けるため，改行の代わりにフォームフィードを使用します．デ
フォルトページの長さの66行は変更されません．しかし，ページごとのテキス
トの行数はデフォルトの56行から63行に変更されます．

@item -h @var{HEADER}
@itemx --header=@var{HEADER}
@opindex -h
@opindex --header
@c Replace the filename in the header with the centered string @var{header}.
@c When using the shell, @var{header} should be quoted and should be
@c separated from @option{-h} by a space.
@c 
ヘッダのファイル名を中央揃えされた文字列@var{header}で置換します．シェ
ルを使用しているとき，@var{header}を引用符で囲むべきで，@option{-h}と
はスペースで分離すべきです．

@item -i[@var{out-tabchar}[@var{out-tabwidth}]]
@itemx --output-tabs[=@var{out-tabchar}[@var{out-tabwidth}]]
@opindex -i
@opindex --output-tabs
@cindex output tabs
@c Replace spaces with @var{tab}s on output.  Optional argument @var{out-tabchar}
@c is the output tab character (default is the TAB character).  Second optional
@c argument @var{out-tabwidth} is the output tab character's width (default
@c is 8).
@c 
出力上でスペースを@var{tab}に置換します．オプション引数
@var{out-tabchar}は出力されるタブ文字です(デフォルトはTAB文字です)．二
番目のオプション引数@var{out-tabwidth}は出力されるタブ文字の幅(デフォ
ルトで8)です．

@item -J
@itemx --join-lines
@opindex -J
@opindex --join-lines
@c Merge lines of full length.  Used together with the column options
@c @option{-@var{column}}, @option{-a -@var{column}} or @option{-m}.  Turns off
@c @option{-W/-w} line truncation;
@c no column alignment used; may be used with
@c @option{--sep-string[=@var{string}]}.  @option{-J} has been introduced
@c (together with @option{-W} and @option{--sep-string})
@c to disentangle the old (@acronym{POSIX}-compliant) options @option{-w} and
@c @option{-s} along with the three column options.
@c 
十分な長さの行に統合します．列オプション@option{-@var{column}}，
@option{-a -@var{column}}，または@option{-m}とともに使用します．
@option{-W/-w}の行の切り詰めを停止します．列の整列は使用されません．
@samp{-S[@var{string}]}とともに使用してもかまいません．@option{-J}は
(@option{-W}と@option{-S}とともに)，三列オプションの古い
(@acronym{POSIX} 準拠の)オプション@option{-w}と@option{-s}を解決するた
めに導入されました．

@item -l @var{page_length}
@itemx --length=@var{page_length}
@opindex -l
@opindex --length
@c Set the page length to @var{page_length} (default 66) lines, including
@c the lines of the header [and the footer].  If @var{page_length} is less
@c than or equal to 10 (or <= 3 with @option{-F}), the header and footer are
@c omitted, and all form feeds set in input files are eliminated, as if
@c the @option{-T} option had been given.
@c 
ページの長さを，ヘッダ[とフッタ]の行を含めて，@var{page_length}行(デフォ
ルトで66)に設定します．@var{page_length}が10以下(または@option{-F}が3
以下)の場合，ヘッダとフッタは取り除かれ，入力ファイルの全てのフォーム
フィード設定は，@option{-T}オプションが指定されたかのように無視されま
す．

@item -m
@itemx --merge
@opindex -m
@opindex --merge
@c Merge and print all @var{file}s in parallel, one in each column.  If a
@c line is too long to fit in a column, it is truncated, unless the @option{-J}
@c option is used.  @option{--sep-string[=@var{string}]} may be used.
@c Empty pages in
@c some @var{file}s (form feeds set) produce empty columns, still marked
@c by @var{string}.  The result is a continuous line numbering and column
@c marking throughout the whole merged file.  Completely empty merged pages
@c show no separators or line numbers.  The default header becomes
@c @samp{@var{date} @var{page}} with spaces inserted in the middle; this
@c may be used with the @option{-h} or @option{--header} option to fill up
@c the middle blank part.
@c 
全ての@var{file}を並列に，それぞれの列に一つに統合して出力します．列に
適さないほど行が長すぎる場合，それは@option{-J}オプションが使用されて
いない限り切り詰められます．@option{--sep-string[=@var{string}]}を使用
してもかまいません．@var{file}の(フォームフィード設定の)空のページは空
の列を生成しますが，@var{string}で印は付いたままです．結果として，連続
した行の番号付けと，統合されたファイル全体を通じて印が付いた列になりま
す．統合されても完全に空のページになるものは，区切りも行番号もありませ
ん．デフォルトヘッダは@samp{@var{date} @var{page}}になり，真中にスペー
スが挿入されます．これで中間の空白部分を満たすため，@option{-h}や
@option{--header}オプションとともに使用してもかまいません．

@item -n[@var{number-separator}[@var{digits}]]
@itemx --number-lines[=@var{number-separator}[@var{digits}]]
@opindex -n
@opindex --number-lines
@c Provide @var{digits} digit line numbering (default for @var{digits} is
@c 5).  With multicolumn output the number occupies the first @var{digits}
@c column positions of each text column or only each line of @option{-m}
@c output.  With single column output the number precedes each line just as
@c @option{-m} does.  Default counting of the line numbers starts with the
@c first line of the input file (not the first line printed, compare the
@c @option{--page} option and @option{-N} option).
@c Optional argument @var{number-separator} is the character appended to
@c the line number to separate it from the text followed.  The default
@c separator is the TAB character.  In a strict sense a TAB is always
@c printed with single column output only.  The @var{TAB}-width varies
@c with the @var{TAB}-position, e.g. with the left @var{margin} specified
@c by @option{-o} option.  With multicolumn output priority is given to
@c @samp{equal width of output columns} (a @acronym{POSIX} specification).
@c The @var{TAB}-width is fixed to the value of the first column and does
@c not change with different values of left @var{margin}.  That means a
@c fixed number of spaces is always printed in the place of the
@c @var{number-separator tab}.  The tabification depends upon the output
@c position.
@c 
@var{digits}桁の行の番号付けを提供します(デフォルトの@var{digits}は5で
す)．複数列の出力では，番号はそれぞれのテキスト列の最初の@var{digits} 
列の位置や，@option{-m}出力のそれぞれの行だけに生成されます．単一列の
出力では，番号はそれぞれの行に@option{-m}が行うように生成します．デフォ
ルトの行カウントの開始は，入力ファイルの最初の行で始まります
(@option{--page}オプションと@option{-N}オプションとは異なり，最初に印
刷される行ではありません)．オプション引数@var{number-separator}は，以
下に続くテキストと分離するために行数に後置される文字です．デフォルトの
分離文字はTAB文字です．厳密な意味で，TABは常に単一の列の出力だけに出力
されます．@var{TAB}幅は@var{TAB}位置で変化し，例えば，左の@var{margin} 
が@option{-o}オプションで指定された場合は変化します．複数列出力のプロ
パティは，@samp{equal width of output columns} (@acronym{POSIX}指定) 
で与えられます．@var{TAB}幅は，最初の列の値で固定され，左の
@var{margin}の値の違いでは変更されません．それは，固定数のスペースが常
に@var{number-separator tab}の位置に出力されることを意味します．タブ機
能は出力位置に依存します．

@item -N @var{line_number}
@itemx --first-line-number=@var{line_number}
@opindex -N
@opindex --first-line-number
@c Start line counting with the number @var{line_number} at first line of
@c first page printed (in most cases not the first line of the input file).
@c 
最初のページに出力される最初の行(ほとんどの場合，入力ファイルの最初で
はありません)を，数字の@var{line_number}で行のカウントを開始します．

@item -o @var{margin}
@itemx --indent=@var{margin}
@opindex -o
@opindex --indent
@cindex indenting lines
@cindex left margin
@c Indent each line with a margin @var{margin} spaces wide (default is zero).
@c The total page width is the size of the margin plus the @var{page_width}
@c set with the @option{-W/-w} option.  A limited overflow may occur with
@c numbered single column output (compare @option{-n} option).
@c 
それぞれの行を@var{margin}スペースのマージン幅(デフォルトはゼロ)で字下
げします．ページ全体の幅はマージンに@option{-W/-w}オプションの
@var{page_width}設定を加えたものになります．数字付の単一列の出力では
(@option{-n}オプションとは異なり)制限されることによるオーバーフローが
発生するかもしれません．

@item -r
@itemx --no-file-warnings
@opindex -r
@opindex --no-file-warnings
@c Do not print a warning message when an argument @var{file} cannot be
@c opened.  (The exit status will still be nonzero, however.)
@c 
引数@var{file}が開けなかったとき，警告メッセージを出力しません．(しか
し，終了ステータスはゼロではありません．)

@item -s[@var{char}]
@itemx --separator[=@var{char}]
@opindex -s
@opindex --separator
@c Separate columns by a single character @var{char}.  The default for
@c @var{char} is the TAB character without @option{-w} and @samp{no
@c character} with @option{-w}.  Without @option{-s} the default separator
@c @samp{space} is set.  @option{-s[char]} turns off line truncation of all
@c three column options (@option{-COLUMN}|@option{-a -COLUMN}|@option{-m}) unless
@c @option{-w} is set.  This is a @acronym{POSIX}-compliant formulation.
@c 
単一文字@var{char}で列を分けます．@var{char}のデフォルトは，
@option{-w}を用いないとTAB文字で，@option{-w}を用いると@samp{no
character}になります．@option{-s}が無い場合のデフォルトの分離文字は
@samp{space}に設定されます．@option{-s[char]}は，@option{-w}が設定され
ていない場合，全ての三列オプション(@option{-COLUMN}|@samp{-a
-COLUMN}|@option{-m})の行の切り詰めを停止します．それは，
@acronym{POSIX}準拠の公式なものです．

@item -S @var{string}
@itemx --sep-string[=@var{string}]
@opindex -S
@opindex --sep-string
@c Use @var{string} to separate output columns.  The @option{-S} option doesn't
@c affect the @option{-W/-w} option, unlike the @option{-s} option which does.  It
@c does not affect line truncation or column alignment.
@c Without @option{-S}, and with @option{-J}, @command{pr} uses the default output
@c separator, TAB.
@c Without @option{-S} or @option{-J}, @command{pr} uses a @samp{space}
@c (same as @option{-S"@w{ }"}).  With @option{-S@var{string}},
@c @var{string} must be nonempty; @option{--sep-string} with no
@c @var{string} is equivalent to @option{--sep-string=""}.
@c 
出力の列を分離するため@var{string}を使用します．@option{-S}オプション
は@option{-s}オプションと異なり，@option{-W/-w}オプションに対し効果が
ありません．それは行の切り詰めや列の整列に効果がありません．
@option{-S} を用いず，@option{-J}を用いると，@command{pr}はデフォルト
の出力の分離文字のTABを使用します．@option{-S}や@option{-J}を用いない
と，@command{pr} は@samp{space}を使用します(@samp{-S" "}と同じです)．
@option{-S@var{string}}を用るとき，@var{string}を空にしてはいけません．
@var{string}が無い@option{--sep-string}は@option{--sep-string=""}と等
価です．

@c On older systems, @command{pr} instead supports an obsolete option
@c @option{-S[@var{string}]}, where @var{string} is optional.  @acronym{POSIX}
@c 1003.1-2001 (@pxref{Standards conformance}) does not allow this older
@c usage.  To specify an empty @var{string} portably, use
@c @option{--sep-string}.
@c 
古いシステムでは，@command{pr}は時代遅れのオプション
@option{-S[@var{string}]}を代わりにサポートし，@var{string}はオプショ
ンになります．@acronym{POSIX} 1003.1-2001 (@pxref{Standards
conformance})ではこの古い使用方法を許可していません．移植性がある空の
@var{string}を指定するため，@option{--sep-string}を使用してください．

@item -t
@itemx --omit-header
@opindex -t
@opindex --omit-header
@c Do not print the usual header [and footer] on each page, and do not fill
@c out the bottom of pages (with blank lines or a form feed).  No page
@c structure is produced, but form feeds set in the input files are retained.
@c The predefined pagination is not changed.  @option{-t} or @option{-T} may be
@c useful together with other options; e.g.: @option{-t -e4}, expand TAB characters
@c in the input file to 4 spaces but don't make any other changes.  Use of
@c @option{-t} overrides @option{-h}.
@c 
それぞれのページに，通常のヘッダ[とフッタ]を出力せず，ページの底まで補
充しません(空白行またはフォームフィードを用います)．ページ構造は生成さ
れませんが，入力ファイルで設定されているフォームフィードは維持されます．
前もって定義されたページ化は変更されません．@option{-t}や@option{-T}は，
他のオプションとともに使用すると便利かもしれません．例えば，@samp{-t
-e4}は，入力ファイルのTAB文字を四つのスペースに展開しますが，それ以外
の変更を行いません．@option{-t}の使用は@option{-h}に優先します．

@item -T
@itemx --omit-pagination
@opindex -T
@opindex --omit-pagination
@c Do not print header [and footer].  In addition eliminate all form feeds
@c set in the input files.
@c 
ヘッダ[とフッタ]を出力しません．更に，入力ファイルのフォームフィード設
定を全て削除します．

@item -v
@itemx --show-nonprinting
@opindex -v
@opindex --show-nonprinting
@c Print nonprinting characters in octal backslash notation.
@c 
出力できない文字を，八進数のバックスラッシュ表記で出力します．

@item -w @var{page_width}
@itemx --width=@var{page_width}
@opindex -w
@opindex --width
@c Set page width to @var{page_width} characters for multiple text-column
@c output only (default for @var{page_width} is 72).  @option{-s[CHAR]} turns
@c off the default page width and any line truncation and column alignment.
@c Lines of full length are merged, regardless of the column options
@c set.  No @var{page_width} setting is possible with single column output.
@c A @acronym{POSIX}-compliant formulation.
@c 
複数のテキスト列出力に対してのみ，ページ幅を@var{page_width}文字数に設
定します(@var{page_width}のデフォルトは72です)．@option{-s[CHAR]}は，
デフォルトページ幅を停止し，すべての行を切り詰め，列を整列します．十分
な長さの行は，列オプションの設定にかかわらずマージされます．
@var{page_width}設定が無い場合，おそらく単一列の出力になります．
@acronym{POSIX}準拠の公式なものです．

@item -W @var{page_width}
@itemx --page_width=@var{page_width}
@opindex -W
@opindex --page_width
@c Set the page width to @var{page_width} characters.  That's valid with and
@c without a column option.  Text lines are truncated, unless @option{-J}
@c is used.  Together with one of the three column options
@c (@option{-@var{column}}, @option{-a -@var{column}} or @option{-m}) column
@c alignment is always used.  The separator options @option{-S} or @option{-s}
@c don't affect the @option{-W} option.  Default is 72 characters.  Without
@c @option{-W @var{page_width}} and without any of the column options NO line
@c truncation is used (defined to keep downward compatibility and to meet
@c most frequent tasks).  That's equivalent to @option{-W 72 -J}.  The header
@c line is never truncated.
@c 
ページ幅を@var{page_width}文字に設定します．それは列オプションによらず
有効です．@option{-J}が使用されない場合，テキスト行は切り詰められます．
三列オプション(@option{-@var{column}}，@samp{-a -@var{column}}，または
@option{-m})の一つとともに用いた場合，列の整列は常に使用されます．セパ
レータオプションの@option{-S}や@option{-s}は，@option{-W}オプションに
効果がありません．デフォルトは72文字です．@samp{-W @var{page_width}}が
無く，あらゆる列オプションが無い場合，行の切り詰めは行われません(下位
互換を保つためと，よくある仕事に合わせるために定義されています)．それ
は，@samp{-W 72 -J}と等価です．ヘッダ行は常に切り詰められません．

@end table

@exitstatus


@node fold invocation
@c @section @command{fold}: Wrap input lines to fit in specified width
@section @command{fold}: 指定された幅に合わせるため，入力行を折り曲げる

@pindex fold
@cindex wrapping long input lines
@cindex folding long input lines

@c @command{fold} writes each @var{file} (@option{-} means standard input), or
@c standard input if none are given, to standard output, breaking long
@c lines.  Synopsis:
@c 
@command{fold}は，それぞれの@var{file}(@samp{-}は標準入力を意味します)
や，与えられない場合は標準入力を，長い行を改行しながら標準出力に書き出
します．概要です．

@example
fold [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c By default, @command{fold} breaks lines wider than 80 columns.  The output
@c is split into as many lines as necessary.
@c 
デフォルトで，@command{fold}は80列以上の幅の行を改行します．出力は必要
な行数に分けられます．

@cindex screen columns
@c @command{fold} counts screen columns by default; thus, a tab may count more
@c than one column, backspace decreases the column count, and carriage
@c return sets the column to zero.
@c 
@command{fold}はデフォルトで画面の列を数えます．このため，タブは一列以
上に数えられ，バックスペースは列のカウント数を減らし，そして，キャリッ
ジリターンは列をゼロに設定します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは，以下のオプションも受け入れます．@ref{Common options}も参
照してください．

@table @samp

@item -b
@itemx --bytes
@opindex -b
@opindex --bytes
@c Count bytes rather than columns, so that tabs, backspaces, and carriage
@c returns are each counted as taking up one column, just like other
@c characters.
@c 
列ではなくバイトを数え，そのため，タブ，バックスペースと，キャリッジリ
ターンは，他の文字同様にそれぞれ一列カウント数を上げます．

@item -s
@itemx --spaces
@opindex -s
@opindex --spaces
@c Break at word boundaries: the line is broken after the last blank before
@c the maximum line length.  If the line contains no such blanks, the line
@c is broken at the maximum line length as usual.
@c 
単語の境界で改行します．列は最後の空白の後で，最大の列の長さの前で改行
されます．そのような空白行が行に含まれていない場合，行は最大の行幅で通
常通り改行されます．

@item -w @var{width}
@itemx --width=@var{width}
@opindex -w
@opindex --width
@c Use a maximum line length of @var{width} columns instead of 80.
@c 
80の代わりに，@var{width}列の最大行幅を使用します．

@c On older systems, @command{fold} supports an obsolete option
@c @option{-@var{width}}.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards
@c conformance}) does not allow this; use @option{-w @var{width}}
@c instead.
@c 
古いシステムでは，@command{fold}は時代遅れのオプション
@option{-@var{width}}をサポートしています．@acronym{POSIX} 1003.1-2001
(@pxref{Standards conformance})では，これは許可されていません．代わり
に@option{-w @var{width}}を使用してください．

@end table

@exitstatus


@node Output of parts of files
@c @chapter Output of parts of files
@chapter ファイルの一部の出力

@cindex output of parts of files
@cindex parts of files, output of

@c These commands output pieces of the input.
@c 
以下のコマンドは，入力の一部を出力します．

@menu
* head invocation::             Output the first part of files.
* tail invocation::             Output the last part of files.
* split invocation::            Split a file into fixed-size pieces.
* csplit invocation::           Split a file into context-determined pieces.
@end menu

@node head invocation
@c @section @command{head}: Output the first part of files
@section @command{head}: ファイルの最初の部分を出力

@pindex head
@cindex initial part of files, outputting
@cindex first part of files, outputting

@c @command{head} prints the first part (10 lines by default) of each
@c @var{file}; it reads from standard input if no files are given or
@c when given a @var{file} of @option{-}.  Synopsis:
@c 
@command{head}は，それぞれの@var{file}の最初の部分(デフォルトで十行)出
力します．ファイルが与えられていない場合や，@samp{-}という@var{file}が
与えられているときは標準入力から読み込みます．概要です．

@example
head [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c If more than one @var{file} is specified, @command{head} prints a
@c one-line header consisting of
@c 
一つ以上の@var{file}が指定されている場合，@command{head}は以下から成り
立つ一行のヘッダを出力します．
@example
==> @var{file name} <==
@end example
@noindent
@c before the output for each @var{file}.
@c 
それぞれの@var{file}の前に出力されます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -c @var{n}
@itemx --bytes=@var{n}
@opindex -c
@opindex --bytes
@c Print the first @var{n} bytes, instead of initial lines.  Appending
@c @samp{b} multiplies @var{n} by 512, @samp{k} by 1024, and @samp{m}
@c by 1048576.
@c However, if @var{n} starts with a @samp{-},
@c print all but the last @var{n} bytes of each file.
@c 
最初の行の代わりに，最初の@var{n}バイトを出力します．後置される
@samp{b}は@var{n}の512倍，@samp{k}は1024倍，そして@samp{m}は1048576倍
になります．しかし，@var{n}が@samp{-}で始まる場合，それぞれのファイル
の最後の@var{n}を出力します．

@itemx -n @var{n}
@itemx --lines=@var{n}
@opindex -n
@opindex --lines
@c Output the first @var{n} lines.
@c However, if @var{n} starts with a @samp{-},
@c print all but the last @var{n} lines of each file.
@c 
最初の@var{n}行を出力します．しかし，@var{n}が@samp{-}で開始される場合，
それぞれのファイルの最後の@var{n}を出力します．

@item -q
@itemx --quiet
@itemx --silent
@opindex -q
@opindex --quiet
@opindex --silent
@c Never print file name headers.
@c 
ファイル名のヘッダを出力しません．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Always print file name headers.
@c 
常にファイル名のヘッダを出力します．

@end table

@c On older systems, @command{head} supports an obsolete option
@c @option{-@var{count}@var{options}}, which is recognized only if it is
@c specified first.  @var{count} is a decimal number optionally followed
@c by a size letter (@samp{b}, @samp{k}, @samp{m}) as in @option{-c}, or
@c @samp{l} to mean count by lines, or other option letters (@samp{cqv}).
@c @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) does not allow
@c this; use @option{-c @var{count}} or @option{-n @var{count}} instead.
@c 
古いシステムでは，@command{head}は時代遅れのオプション
@option{-@var{count}@var{options}}をサポートし，それは最初に指定されて
いる場合だけ認識されます．@var{count}は十進数の数値で，オプションで
@option{-c}でのサイズ指定文字(@samp{b}, @samp{k}, @samp{m})や，行数を
意味する@samp{l}，またはそれ以外のオプション文字(@samp{cqv})が続きます．
@acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})ではこれを
許可していません．代わりに@option{-c @var{count}}や@option{-n
@var{count}} を使用してください．

@exitstatus


@node tail invocation
@c @section @command{tail}: Output the last part of files
@section @command{tail}: ファイルの最後の部分を出力

@pindex tail
@cindex last part of files, outputting

@c @command{tail} prints the last part (10 lines by default) of each
@c @var{file}; it reads from standard input if no files are given or
@c when given a @var{file} of @samp{-}.  Synopsis:
@c 
@command{tail}は，それぞれの@var{file}の最後の部分(デフォルトで十行)出
力します．ファイルが与えられていない場合や，@samp{-}という@var{file}が
与えられているときは標準入力から読み込みます．概要です．

@example
tail [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c If more than one @var{file} is specified, @command{tail} prints a
@c one-line header consisting of
@c 
一つ以上の@var{file}が指定されている場合，@command{tail}は以下から成り
立つ一行のヘッダを出力します．
@example
==> @var{file name} <==
@end example
@noindent
@c before the output for each @var{file}.
@c 
それぞれの@var{file}の前に出力されます．

@cindex BSD @command{tail}
@c @sc{gnu} @command{tail} can output any amount of data (some other versions of
@c @command{tail} cannot).  It also has no @option{-r} option (print in
@c reverse), since reversing a file is really a different job from printing
@c the end of a file; BSD @command{tail} (which is the one with @option{-r}) can
@c only reverse files that are at most as large as its buffer, which is
@c typically 32 KiB.  A more reliable and versatile way to reverse files is
@c the @sc{gnu} @command{tac} command.
@c 
@sc{gnu} @command{tail}は，任意の量のデータを出力することが可能です
(@command{tail}の他のバージョンにはできないものもあります)．ファイルを
逆順にすることはファイルの終りを出力する作業とは全く異なるので，
@option{-r}オプション(逆順に出力)もありません．BSD @command{tail}
(@option{-r}があるものの一つ)は，最大でそのバッファの大きさまで，通常
32KiBのファイルを逆順にすることが可能なだけです．ファイルを逆順にする
より信頼性のある用途が広い方法は，@sc{gnu} @command{tac}コマンドです．

@c If any option-argument is a number @var{n} starting with a @samp{+},
@c @command{tail} begins printing with the @var{n}th item from the start of
@c each file, instead of from the end.
@c 
あらゆるオプション引数が，@samp{+}で始まる数字@var{n}の場合，
@command{tail}はファイルの終りの代わりに，それぞれのファイルの最初から
@var{n}番目の項目で出力を開始します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -c @var{bytes}
@itemx --bytes=@var{bytes}
@opindex -c
@opindex --bytes
@c Output the last @var{bytes} bytes, instead of final lines.  Appending
@c @samp{b} multiplies @var{bytes} by 512, @samp{k} by 1024, and @samp{m}
@c by 1048576.
@c 
最後の行の代わりに，最後の@var{bytes}バイトを出力します．後置される
@samp{b}は@var{bytes}の512倍，@samp{k}は1024倍，そして@samp{m}は
1048576倍になります．

@item -f
@itemx --follow[=@var{how}]
@opindex -f
@opindex --follow
@cindex growing files
@vindex name @r{follow option}
@vindex descriptor @r{follow option}
@c Loop forever trying to read more characters at the end of the file,
@c presumably because the file is growing.  This option is ignored when
@c reading from a pipe.
@c If more than one file is given, @command{tail} prints a header whenever it
@c gets output from a different file, to indicate which file that output is
@c from.
@c 
ファイルが増大している可能性があるため，ファイルの終りから，それ以降の
文字を読み込むことを永久に繰り返します．このオプションは，パイプから読
み込まれているとき無視されます．一つ以上のファイルが与えられている場合，
出力されてるファイルを示すため，異なるファイルから出力を得るときはいつ
でも，@command{tail}がヘッダを出力します．

@c There are two ways to specify how you'd like to track files with this option,
@c but that difference is noticeable only when a followed file is removed or
@c renamed.
@c If you'd like to continue to track the end of a growing file even after
@c it has been unlinked, use @option{--follow=descriptor}.  This is the default
@c behavior, but it is not useful if you're tracking a log file that may be
@c rotated (removed or renamed, then reopened).  In that case, use
@c @option{--follow=name} to track the named file by reopening it periodically
@c to see if it has been removed and recreated by some other program.
@c 
このオプションでは，ファイルを追跡する方法を指定する方法が二つあります
が，その違いは，追跡しているファイルが削除されたり名前を変更されたりし
たとき通知可能だということだけです．リンクが無くなった後でも，増え続け
るファイルの終りの追跡を続けたい場合は，@option{--follow=descriptor}を
使用してください．これはデフォルトの動作ですが，回転(rotate)される(削
除や名前の変更がなされ，再び開かれる)ログファイルを追跡しているときは
不便です．その場合，他のプログラムにより削除され再作成されたかどうかを
周期的に見て，再び開かれる指名されたファイルを追跡するため，
@option{--follow=name}を使用してください．

@c No matter which method you use, if the tracked file is determined to have
@c shrunk, @command{tail} prints a message saying the file has been truncated
@c and resumes tracking the end of the file from the newly-determined endpoint.
@c 
使用している方法にかかわらず，追跡しているファイルが縮まっていると決定
された場合，@command{tail}はファイルが切り詰められたことを告げるメッセー
ジを出力し，新たに決定された終端からファイルの終りを再追跡しはじめます．

@c When a file is removed, @command{tail}'s behavior depends on whether it is
@c following the name or the descriptor.  When following by name, tail can
@c detect that a file has been removed and gives a message to that effect,
@c and if @option{--retry} has been specified it will continue checking
@c periodically to see if the file reappears.
@c When following a descriptor, tail does not detect that the file has
@c been unlinked or renamed and issues no message;  even though the file
@c may no longer be accessible via its original name, it may still be
@c growing.
@c 
ファイルが削除されたとき，@command{tail}の動作は名前で続けるか記述子で
続けるかに依存します．名前で続けるとき，@command{tail}はファイルが削除
されたことを検出し，その影響のメッセージを与えることが可能で，
@option{--retry}が指定されている場合，ファイルが再び現れたかどうかを見
るため周期的な調査を続けるでしょう．記述子で続けるとき，@command{tail} 
はファイルのリンクが切れたり名前が変更されたことを検出せず，メッセージ
を出力しません．ファイルは既に元の名前でアクセスできませんが，まだ増加
しているかもしれません．

@c The option values @samp{descriptor} and @samp{name} may be specified only
@c with the long form of the option, not with @option{-f}.
@c 
オプション値の@samp{descriptor}と@samp{name}はオプションの長い形式での
み指定でき，@option{-f}では指定できません．

@item -F
@opindex -F
@c This option is the same as @option{--follow=name --retry}.  That is, tail
@c will attempt to reopen a file when it is removed.  Should this fail, tail
@c will keep trying until it becomes accessible again.
@c 
このオプションは@option{--follow=name --retry}と同じです．すなわち，
@command{tail}は削除されたときファイルを再び開こうとします．これが失敗
しても，@command{tail}は再びアクセス可能になるまで挑戦し続けます．

@itemx --retry
@opindex --retry
@c This option is meaningful only when following by name.
@c Without this option, when tail encounters a file that doesn't
@c exist or is otherwise inaccessible, it reports that fact and
@c never checks it again.
@c 
このオプションは，名前で続けるときだけ意味があります．このオプションが
無い場合，存在していないまたはアクセスできないファイルに@command{tail} 
が遭遇したとき，それはその事実を報告し再び調査しません．

@itemx --sleep-interval=@var{number}
@opindex --sleep-interval
@c Change the number of seconds to wait between iterations (the default is 1.0).
@c During one iteration, every specified file is checked to see if it has
@c changed size.
@c Historical implementations of @command{tail} have required that
@c @var{number} be an integer.  However, GNU @command{tail} accepts
@c an arbitrary floating point number (using a period before any
@c fractional digits).
@c 
繰り返しの間の待ち時間の秒数を変更します(デフォルトは1.0秒)．待ってい
る間，指定された全てのファイルの大きさが変ったかどうか調査します．
@command{tail}の歴史的な実装では，@var{number}を整数にする必要がありま
した．しかし，GNU @command{tail}は(小数部の前にピリオドを使用している)
任意の浮動小数点の数値を受け入れます．

@itemx --pid=@var{pid}
@opindex --pid
@c When following by name or by descriptor, you may specify the process ID,
@c @var{pid}, of the sole writer of all @var{file} arguments.  Then, shortly
@c after that process terminates, tail will also terminate.  This will
@c work properly only if the writer and the tailing process are running on
@c the same machine.  For example, to save the output of a build in a file
@c and to watch the file grow, if you invoke @command{make} and @command{tail}
@c like this then the tail process will stop when your build completes.
@c Without this option, you would have had to kill the @code{tail -f}
@c process yourself.
@c 
名前または記述子で続ける場合，全ての@var{file}引数に唯一書き込んでいる
プロセスID @var{pid}を指定してもかまいません．そして，プロセスが終了し
た少し後で@command{tail}も終了します．これは書き込んでいるものと
@command{tail}プロセスが同じマシンで動作している場合のみ正確に動作しま
す．例えば，ファイルにビルドの出力を保存したりファイルが大きくなるのを
見たりするため@command{make}と@command{tail}を以下のように呼び出し，ビ
ルドが完了したとき@command{tail}の処理は終了します．このオプションを用
いない場合，@code{tail -f}プロセスを自分で停止する必要があります．
@example
$ make >& makerr & tail --pid=$! -f makerr
@end example
@c If you specify a @var{pid} that is not in use or that does not correspond
@c to the process that is writing to the tailed files, then @command{tail}
@c may terminate long before any @var{file}s stop growing or it may not
@c terminate until long after the real writer has terminated.
@c Note that @option{--pid} cannot be supported on some systems; @command{tail}
@c will print a warning if this is the case.
@c 
使用中でない，または，@command{tail}されているファイルに書き込んでいる
プロセスに対応しない@var{pid}を指定した場合，@command{tail}はあらゆる
@var{file}の増加が終了するよりかなり前に終了したり，実際に書き込んでい
るものが終了してしばらくしても終了しないかもしれません．@option{--pid}
はシステムによってはサポートできないことに注意してください．その状況で
は，@command{tail}は警告を出力します．

@itemx --max-unchanged-stats=@var{n}
@opindex --max-unchanged-stats
@c When tailing a file by name, if there have been @var{n} (default
@c n=@value{DEFAULT_MAX_N_UNCHANGED_STATS_BETWEEN_OPENS}) consecutive
@c iterations for which the size has remained the same, then
@c @code{open}/@code{fstat} the file to determine if that file name is
@c still associated with the same device/inode-number pair as before.
@c When following a log file that is rotated, this is approximately the
@c number of seconds between when tail prints the last pre-rotation lines
@c and when it prints the lines that have accumulated in the new log file.
@c This option is meaningful only when following by name.
@c 
名前でファイルを@command{tail}しているとき，@var{n}(デフォルトで
n=@value{DEFAULT_MAX_N_UNCHANGED_STATS_BETWEEN_OPENS})回連続して大きさ
が同じ場合，ファイル名が以前と同じデバイス/inode番号の組に関連している
かどうかを決定するため，ファイルに対して@code{open}/@code{fstat}を実行
します．回転(rotate)されているログファイルを追跡しているとき，前回に回
転(rotate)した行を@command{tail}が出力するときと，新しいログファイルで
蓄積された行を出力するときの間は，おそらく数秒になります．このオプショ
ンは，名前で追跡しているときのみ意味があります．

@itemx -n @var{n}
@itemx --lines=@var{n}
@opindex -n
@opindex --lines
@c Output the last @var{n} lines.
@c 
最後の@var{n}行出力します．

@item -q
@itemx --quiet
@itemx --silent
@opindex -q
@opindex --quiet
@opindex --silent
@c Never print file name headers.
@c 
ファイル名のヘッダを出力しません．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Always print file name headers.
@c 
常にファイル名のヘッダを出力します．

@end table

@c On older systems, @command{tail} supports an obsolete option
@c @option{-@var{count}@var{options}}, which is recognized only if it is
@c specified first.  @var{count} is a decimal number optionally followed
@c by a size letter (@samp{b}, @samp{k}, @samp{m}) as in @option{-c}, or
@c @samp{l} to mean count by lines, or other option letters
@c (@samp{cfqv}).  Some older @command{tail} implementations also support
@c an obsolete option @option{+@var{count}} with the same meaning as
@c @option{-+@var{count}}.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards
@c conformance}) does not allow these options; use @option{-c
@c @var{count}} or @option{-n @var{count}} instead.
@c 
古いシステムでは，@command{tail}は時代遅れのオプション
@option{-@var{count}@var{options}}をサポートし，それは最初に指定されて
いる場合だけ認識されます．@var{count}は十進数の数値で，オプションで
@option{-c}でのサイズ指定文字(@samp{b}，@samp{k}，@samp{m})や，行数を
意味する@samp{l}，またはそれ以外のオプション文字(@samp{cfqv})が続きま
す．古いシステムには，@option{-+@var{count}}と同じ意味がある時代遅れの
オプション@option{+@var{count}}をサポートしているものもあります．
@acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})ではこれら
を許可していません．代わりに@option{-c @var{count}}や@option{-n
@var{count}}を使用してください．

@exitstatus


@node split invocation
@c @section @command{split}: Split a file into fixed-size pieces
@section @command{split}: ファイルを固定サイズの部分に分割

@pindex split
@cindex splitting a file into pieces
@cindex pieces, splitting a file into

@c @command{split} creates output files containing consecutive sections of
@c @var{input} (standard input if none is given or @var{input} is
@c @samp{-}).  Synopsis:
@c 
@command{split}は，@var{input}(何も与えられなかったり，@var{input}が
@samp{-}の場合は標準入力)の連続したセクションを含む出力ファイルを生成
します．概要です．

@example
split [@var{option}] [@var{input} [@var{prefix}]]
@end example

@c By default, @command{split} puts 1000 lines of @var{input} (or whatever is
@c left over for the last section), into each output file.
@c 
デフォルトで，@command{split}は@var{input}の1000行(または，最後のセク
ションでは残り)を，それぞれの出力ファイルに書き込みます．

@cindex output file name prefix
@c The output files' names consist of @var{prefix} (@samp{x} by default)
@c followed by a group of characters (@samp{aa}, @samp{ab}, @dots{} by
@c default), such that concatenating the output files in traditional
@c sorted order by file name produces
@c the original input file.  If the output file names are exhausted,
@c @command{split} reports an error without deleting the output files
@c that it did create.
@c 
出力ファイルの名前は@var{prefix} (デフォルトは@samp{x})にグループ文字
(デフォルトで@samp{aa}，@samp{ab}，@dots{})が続くものから成り立ってい
て，それで，伝統的なファイル名の順番で出力ファイルをソートし結合したも
のが，元の入力ファイルを生成するようになっています．出力ファイル名を使
い切った場合，@command{split}は作成された出力ファイルを削除せずにエラー
を報告します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
このプログラムは以下のオプションも受け入れます．@ref{Common options}も
参照してください．

@table @samp

@item -a @var{length}
@itemx --suffix-length=@var{length}
@opindex -a
@opindex --suffix-length
@c Use suffixes of length @var{length}.  The default @var{length} is 2.
@c 
長さ@var{length}の接尾子を使用します．デフォルトの@var{length}は2です．

@item -l @var{lines}
@itemx --lines=@var{lines}
@opindex -l
@opindex --lines
@c Put @var{lines} lines of @var{input} into each output file.
@c 
@var{input}の@var{lines}行をそれぞれの出力ファイルに書き込みます．

@c On older systems, @command{split} supports an obsolete option
@c @option{-@var{lines}}.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards
@c conformance}) does not allow this; use @option{-l @var{lines}}
@c instead.
@c 
古いシステムでは，@command{split}は時代遅れのオプション
@option{-@var{lines}}をサポートしています．@acronym{POSIX} 1003.1-2001
(@pxref{Standards conformance})ではこれを許可していません．代わりに
@option{-l @var{lines}}を使用してください．

@item -b @var{bytes}
@itemx --bytes=@var{bytes}
@opindex -b
@opindex --bytes
@c Put the first @var{bytes} bytes of @var{input} into each output file.
@c Appending @samp{b} multiplies @var{bytes} by 512, @samp{k} by 1024, and
@c @samp{m} by 1048576.
@c 
@var{input}の最初の@var{bytes}バイトを，それぞれの出力ファイルに書き込
みます．@samp{b}の後置は@var{bytes}の512倍，@samp{k}は1024倍，そして
@samp{m}は1048576倍です．

@item -C @var{bytes}
@itemx --line-bytes=@var{bytes}
@opindex -C
@opindex --line-bytes
@c Put into each output file as many complete lines of @var{input} as
@c possible without exceeding @var{bytes} bytes.  For lines longer than
@c @var{bytes} bytes, put @var{bytes} bytes into each output file until
@c less than @var{bytes} bytes of the line are left, then continue
@c normally.  @var{bytes} has the same format as for the @option{--bytes}
@c option.
@c 
@var{bytes}バイトを越えない@var{input}の完全な行を，できるだけ多くそれ
ぞれの出力ファイルに書き込みます．@var{bytes}バイトより長い行に対して
は，行の@var{bytes}バイトより少ない部分が残るまで，それぞれの出力ファ
イルに@var{bytes}バイト書き込み，それから通常通りに続けます．
@var{bytes}は@option{--bytes}オプションに対するものと同じ書式です．

@item -d
@itemx --numeric-suffixes
@opindex -d
@opindex --numeric-suffixes
@c Use digits in suffixes rather than lower-case letters.
@c 
小文字ではなく，数字の接尾子を使用します．

@itemx --verbose
@opindex --verbose
@c Write a diagnostic to standard error just before each output file is opened.
@c 
それぞれの出力ファイルが開かれる直前に，標準エラー出力に状態を書き込み
ます．

@end table

@exitstatus


@node csplit invocation
@c @section @command{csplit}: Split a file into context-determined pieces
@section @command{csplit}: ファイルを文脈で決定された部分に分割

@pindex csplit
@cindex context splitting
@cindex splitting a file into pieces by context

@c @command{csplit} creates zero or more output files containing sections of
@c @var{input} (standard input if @var{input} is @samp{-}).  Synopsis:
@c 
@command{csplit}は，@var{input}(@var{input}が@samp{-}の場合は標準入力) 
のセクションを含む，ゼロ以上の出力ファイルを作成します．概要です．

@example
csplit [@var{option}]@dots{} @var{input} @var{pattern}@dots{}
@end example

@c The contents of the output files are determined by the @var{pattern}
@c arguments, as detailed below.  An error occurs if a @var{pattern}
@c argument refers to a nonexistent line of the input file (e.g., if no
@c remaining line matches a given regular expression).  After every
@c @var{pattern} has been matched, any remaining input is copied into one
@c last output file.
@c 
出力ファイルの内容は，後で詳述する@var{pattern}引数で決定されます．
@var{pattern}引数が入力ファイルに存在しない行を参照する場合，エラーが
発生します(例えば，残っている行が与えられた正規表現にマッチしない場合)．
全ての@var{pattern}がマッチした後，残りの入力は一つの最後の出力ファイ
ルにコピーされます．

@c By default, @command{csplit} prints the number of bytes written to each
@c output file after it has been created.
@c 
デフォルトで，@command{csplit}は，それぞれの出力ファイルが作成された後，
バイト数をそのファイルに書き込みます．

@c The types of pattern arguments are:
@c 
@var{pattern}引数の形式は以下の通りです．

@table @samp

@item @var{n}
@c Create an output file containing the input up to but not including line
@c @var{n} (a positive integer).  If followed by a repeat count, also
@c create an output file containing the next @var{n} lines of the input
@c file once for each repeat.
@c 
@var{n}行までの入力を含む出力ファイルを作成しますが，@var{n}行は含みま
せん．繰り返し数が続く場合，それぞれの繰り返しに対し，入力ファイルの次
の@var{n}行を含む出力ファイルも作成します．

@item /@var{regexp}/[@var{offset}]
@c Create an output file containing the current line up to (but not
@c including) the next line of the input file that contains a match for
@c @var{regexp}.  The optional @var{offset} is an integer.
@c If it is given, the input up to (but not including) the
@c matching line plus or minus @var{offset} is put into the output file,
@c and the line after that begins the next section of input.
@c 
@var{regexp}にマッチするものを含む入力ファイルの次の行まで，現在の行
(ただし，マッチは含まれない)を含む出力ファイルを作成します．オプション
の@var{offset}は整数です．与えられた場合，マッチした行までの入力(ただ
し，マッチは含まれない)に，@var{offset}加えた，または引いた入力まで出
力ファイルに書き出され，その後の行は入力の次の部分になります．

@item %@var{regexp}%[@var{offset}]
@c Like the previous type, except that it does not create an output
@c file, so that section of the input file is effectively ignored.
@c 
前の形式に似ていますが，出力ファイルを作成しないので，入力ファイルの部
分は効率的に無視されます．

@item @{@var{repeat-count}@}
@c Repeat the previous pattern @var{repeat-count} additional
@c times. @var{repeat-count} can either be a positive integer or an
@c asterisk, meaning repeat as many times as necessary until the input is
@c exhausted.
@c 
前のパターンを@var{repeat-count}回余分に繰り返します．
@var{repeat-count}は正の整数，またはアスタリスクになり，それは入力が使
い果たされるのに必要なだけ繰り返すことを意味します．

@end table

@c The output files' names consist of a prefix (@samp{xx} by default)
@c followed by a suffix.  By default, the suffix is an ascending sequence
@c of two-digit decimal numbers from @samp{00} to @samp{99}.  In any case,
@c concatenating the output files in sorted order by filename produces the
@c original input file.
@c 
出力ファイル名は，前置(デフォルトで@samp{xx})とそれに続く接尾子から成
り立ちます．デフォルトで接尾子は二桁の十進数で，@samp{00}から@samp{99}
まで順番に上昇します．あらゆる状況で，ファイル名の順番でソートされた出
力ファイルを連結すると，元の入力ファイルを生成します．

@c By default, if @command{csplit} encounters an error or receives a hangup,
@c interrupt, quit, or terminate signal, it removes any output files
@c that it has created so far before it exits.
@c 
デフォルトで，@command{csplit}がエラーや，ハングアップ，中断，終了，ま
たは終端シグナルを検出した場合，それまでに存在する作成されたあらゆる出
力ファイルを削除します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -f @var{prefix}
@itemx --prefix=@var{prefix}
@opindex -f
@opindex --prefix
@cindex output file name prefix
@c Use @var{prefix} as the output file name prefix.
@c 
出力ファイルの接尾子として，@var{prefix}を使用します．

@item -b @var{suffix}
@itemx --suffix=@var{suffix}
@opindex -b
@opindex --suffix
@cindex output file name suffix
@c Use @var{suffix} as the output file name suffix.  When this option is
@c specified, the suffix string must include exactly one
@c @code{printf(3)}-style conversion specification, possibly including
@c format specification flags, a field width, a precision specifications,
@c or all of these kinds of modifiers.  The format letter must convert a
@c binary integer argument to readable form; thus, only @samp{d}, @samp{i},
@c @samp{u}, @samp{o}, @samp{x}, and @samp{X} conversions are allowed.  The
@c entire @var{suffix} is given (with the current output file number) to
@c @code{sprintf(3)} to form the file name suffixes for each of the
@c individual output files in turn.  If this option is used, the
@c @option{--digits} option is ignored.
@c 
出力ファイル名の接尾子として@var{suffix}を使用します．このオプションが
指定されている場合，接尾子の文字列は，一つだけの@code{printf(3)}形式の
変換での指定を含んでいる必要があり，おそらく，書式指定のフラグ，フィー
ルドの幅，精密さの指定，またはこれら全ての修飾語を含みます．フォーマッ
ト文字は，二進数の整数の引数を可読なものに変換する必要があります．この
ため，@samp{d}，@samp{i}，@samp{u}，@samp{o}，@samp{x}，そして@samp{X}
の変換は可能です．完全な@var{suffix}は，それぞれの個別な出力ファイルに
対し，ファイル名の接尾子を順番に形成するため(現在の出力ファイル数とと
もに) @code{sprintf(3)}に与えられます．このオプションを使用した場合，
@option{--digits}オプションは無視されます．

@item -n @var{digits}
@itemx --digits=@var{digits}
@opindex -n
@opindex --digits
@c Use output file names containing numbers that are @var{digits} digits
@c long instead of the default 2.
@c 
デフォルトの2の代わりに@var{digits}桁の長さの数字を含む出力ファイル名
を使用します．

@item -k
@itemx --keep-files
@opindex -k
@opindex --keep-files
@c Do not remove output files when errors are encountered.
@c 
エラーが検出された場合でも出力ファイルを削除しません．

@item -z
@itemx --elide-empty-files
@opindex -z
@opindex --elide-empty-files
@c Suppress the generation of zero-length output files.  (In cases where
@c the section delimiters of the input file are supposed to mark the first
@c lines of each of the sections, the first output file will generally be a
@c zero-length file unless you use this option.)  The output file sequence
@c numbers always run consecutively starting from 0, even when this option
@c is specified.
@c 
長さゼロの出力ファイルの生成を抑制します．(入力ファイルのセクションを
分離するものがそれぞれのセクションの最初の行に印を付ける状況では，この
オプションを使用しない限り，最初の出力ファイルは，通常長さゼロのファイ
ルになります．)出力ファイルの順番は，このオプションが指定されていると
きでさえ，0から始まる連続したものになります．

@item -s
@itemx -q
@itemx --silent
@itemx --quiet
@opindex -s
@opindex -q
@opindex --silent
@opindex --quiet
@c Do not print counts of output file sizes.
@c 
出力ファイルの大きさを出力しません．

@end table

@exitstatus


@node Summarizing files
@c @chapter Summarizing files
@chapter ファイルの要約

@cindex summarizing files

@c These commands generate just a few numbers representing entire
@c contents of files.
@c 
以下のコマンドは，ファイルの内容全体を表現するいくつかの数字を生成しま
す．

@menu
* wc invocation::               Print newline, word, and byte counts.
* sum invocation::              Print checksum and block counts.
* cksum invocation::            Print CRC checksum and byte counts.
* md5sum invocation::           Print or check message-digests.
@end menu


@node wc invocation
@c @section @command{wc}: Print newline, word, and byte counts
@section @command{wc}: 改行，単語，そしてバイト数を出力

@pindex wc
@cindex byte count
@cindex character count
@cindex word count
@cindex line count

@c @command{wc} counts the number of bytes, characters, whitespace-separated
@c words, and newlines in each given @var{file}, or standard input if none
@c are given or for a @var{file} of @samp{-}.  Synopsis:
@c 
@command{wc}は，それぞれの与えられた@var{file}や，与えられなかった場合
や@samp{-}の@var{file}に対し，バイト数，文字，空白で区切られた単語，そ
して改行を数えます．概要です．

@example
wc [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@cindex total counts
@c @command{wc} prints one line of counts for each file, and if the file was
@c given as an argument, it prints the file name following the counts.  If
@c more than one @var{file} is given, @command{wc} prints a final line
@c containing the cumulative counts, with the file name @file{total}.  The
@c counts are printed in this order: newlines, words, characters, bytes.
@c Each count is printed right-justified in a field with at least one
@c space between fields so that the numbers and file names normally line
@c up nicely in columns.  The width of the count fields varies depending
@c on the inputs, so you should not depend on a particular field width.
@c However, as a @acronym{GNU} extension, if only one count is printed,
@c it is guaranteed to be printed without leading spaces.
@c 
@command{wc}は，それぞれのファイルに対し，数えたものを一行出力し，ファ
イルが引数として与えられた場合，数に続けてファイル名を出力します．一つ
以上の@var{file}が与えられた場合，@command{wc}は，ファイル名
@file{total}と共に，累積された数を最終行に出力します．数は，以下の順序
で出力されます．改行，単語，文字，バイトです．それぞれの計数結果は，数
字とファイル名の行が列にうまく並ぶように，右寄せで，それぞれのフィール
ドの間に少なくとも一つのスペースを入れて出力します．計数結果のフィール
ドの幅は，入力に依存して変化するので，特定のフィールドの幅に依存すべき
ではありません．しかし，@acronym{GNU}の拡張として，一つの計数結果だけ
を出力する場合，前置されるスペースを用いずに出力されることが保証されま
す．

@c By default, @command{wc} prints three counts: the newline, words, and byte
@c counts.  Options can specify that only certain counts be printed.
@c Options do not undo others previously given, so
@c 
デフォルトで，@command{wc}は三つの数すべてを出力します．オプションで，
出力したい数のみを指定することができます．オプションは，前に与えられた
ものを元に戻すことはできません．そのため，以下のようにした場合を考えま
す．

@example
wc --bytes --words
@end example

@noindent
@c prints both the byte counts and the word counts.
@c 
これは，バイト数と単語の数の両方を出力します．

@c With the @option{--max-line-length} option, @command{wc} prints the length
@c of the longest line per file, and if there is more than one file it
@c prints the maximum (not the sum) of those lengths.
@c 
@option{--max-line-length}オプションを用いた場合，@command{wc}はファイ
ルごとの最長の行の長さを出力し，一つ以上のファイルがある場合，それらの
長さの(合計ではなく)最大を出力します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照し
てください．

@table @samp

@item -c
@itemx --bytes
@opindex -c
@opindex --bytes
@c Print only the byte counts.
@c 
バイト数のみ出力します．

@item -m
@itemx --chars
@opindex -m
@opindex --chars
@c Print only the character counts.
@c 
文字数のみ出力します．

@item -w
@itemx --words
@opindex -w
@opindex --words
@c Print only the word counts.
@c 
単語数のみ出力します．

@item -l
@itemx --lines
@opindex -l
@opindex --lines
@c Print only the newline counts.
@c 
改行数のみ出力します．

@item -L
@itemx --max-line-length
@opindex -L
@opindex --max-line-length
@c Print only the maximum line lengths.
@c 
最長行の長さのみ出力します．

@end table

@exitstatus


@node sum invocation
@c @section @command{sum}: Print checksum and block counts
@section @command{sum}: チェックサムとブロック数を出力

@pindex sum
@cindex 16-bit checksum
@cindex checksum, 16-bit

@c @command{sum} computes a 16-bit checksum for each given @var{file}, or
@c standard input if none are given or for a @var{file} of @samp{-}.  Synopsis:
@c 
@command{sum}は，与えられたそれぞれの@var{file}，または，与えられない
場合や@samp{-}のファイルが与えられた場合は標準入力の16ビットのチェック
サムを計算します．概要です．

@example
sum [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c @command{sum} prints the checksum for each @var{file} followed by the
@c number of blocks in the file (rounded up).  If more than one @var{file}
@c is given, file names are also printed (by default).  (With the
@c @option{--sysv} option, corresponding file names are printed when there is
@c at least one file argument.)
@c 
@command{sum}は，それぞれの@var{file}のチェックサムに続けて，ファイル
のブロック数を(切り上げで)出力します．一つ以上の@var{file}が与えられた
場合，ファイル名も出力します(デフォルト)．(@option{--sysv}オプションを
指定した場合，少なくとも一つのファイル引数があるときは，対応するファイ
ル名が出力されます．)

@c By default, @sc{gnu} @command{sum} computes checksums using an algorithm
@c compatible with BSD @command{sum} and prints file sizes in units of
@c 1024-byte blocks.
@c 
デフォルトで，@sc{gnu} @command{sum}は，BSD @command{sum}と互換性のあ
るアルゴリズムを用いて計算し，ファイルサイズを1024バイトブロックの単位
で出力します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -r
@opindex -r
@cindex BSD @command{sum}
@c Use the default (BSD compatible) algorithm.  This option is included for
@c compatibility with the System V @command{sum}.  Unless @option{-s} was also
@c given, it has no effect.
@c 
デフォルト(BSD互換)のアルゴリズムを使用します．このオプションは，
System V @command{sum}との互換性も含みます．@option{-s}を与えない限り，
効果はありません．

@item -s
@itemx --sysv
@opindex -s
@opindex --sysv
@cindex System V @command{sum}
@c Compute checksums using an algorithm compatible with System V
@c @command{sum}'s default, and print file sizes in units of 512-byte blocks.
@c 
System V @command{sum}のデフォルトと互換のアルゴリズムを使用して，チェッ
クサムを計算し，512バイトブロックの単位でファイルサイズを出力します．

@end table

@c @command{sum} is provided for compatibility; the @command{cksum} program (see
@c next section) is preferable in new applications.
@c 
@command{sum}は，互換性のために提供されています．新しいアプリケーショ
ンでは，@command{cksum}プログラム(次のセクションを参照)が望ましいでしょ
う．

@exitstatus


@node cksum invocation
@c @section @command{cksum}: Print CRC checksum and byte counts
@section @command{cksum}: CRCチェックサムとバイトカウントを出力

@pindex cksum
@cindex cyclic redundancy check
@cindex CRC checksum

@c @command{cksum} computes a cyclic redundancy check (CRC) checksum for each
@c given @var{file}, or standard input if none are given or for a
@c @var{file} of @samp{-}.  Synopsis:
@c 
@command{cksum}は，与えられたそれぞれの@var{file}，または，与えられな
い場合や@samp{-}のファイルが与えられた場合は標準入力の周期的な冗長性の
調査(CRC)のチェックサムを計算します．概要です．

@example
cksum [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c @command{cksum} prints the CRC checksum for each file along with the number
@c of bytes in the file, and the filename unless no arguments were given.
@c 
@command{cksum}は，ファイルのバイト数と一緒に，それぞれのファイルに対
し，CRCチェックサムと，引数が与えられていない場合以外はファイル名を出
力します．

@c @command{cksum} is typically used to ensure that files
@c transferred by unreliable means (e.g., netnews) have not been corrupted,
@c by comparing the @command{cksum} output for the received files with the
@c @command{cksum} output for the original files (typically given in the
@c distribution).
@c 
@command{cksum}は，通常，信用できない手段(例えば，ネットニュース)で転
送されたファイルが切り詰められていないか，受信したファイルの
@command{cksum}出力と元ファイルの@command{cksum}出力(通常は配布物で与
えられます)を比較することで確認するために使用します．

@c The CRC algorithm is specified by the @acronym{POSIX} standard.  It is not
@c compatible with the BSD or System V @command{sum} algorithms (see the
@c previous section); it is more robust.
@c 
CRCアルゴリズムは，@acronym{POSIX}標準で指定されました． BSDやSystem V
@command{sum}アルゴリズムとは互換性がありません(前のセクションを参照し
てください)．それはより強固です．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}だけです．@xref{Common
options}.

@exitstatus


@node md5sum invocation
@c @section @command{md5sum}: Print or check message-digests
@section @command{md5sum}: メッセージダイジェストの出力と調査

@pindex md5sum
@cindex 128-bit checksum
@cindex checksum, 128-bit
@cindex fingerprint, 128-bit
@cindex message-digest, 128-bit

@c @command{md5sum} computes a 128-bit checksum (or @dfn{fingerprint} or
@c @dfn{message-digest}) for each specified @var{file}.
@c If a @var{file} is specified as @samp{-} or if no files are given
@c @command{md5sum} computes the checksum for the standard input.
@c @command{md5sum} can also determine whether a file and checksum are
@c consistent. Synopses:
@c 
@command{md5sum}は，それぞれ指定された@var{file}に対し，128-bitチェッ
クサム(または@dfn{fingerprint}，または@dfn{message-digest})を計算しま
す．@var{file}が@samp{-}で指定されたり，ファイルが与えられていない場合
は，@command{md5sum}は標準入力のチェックサムを計算します．
@command{md5sum}は，ファイルとチェックサムが一貫しているかどうか決定す
ることも可能です．概要です．

@example
md5sum [@var{option}]@dots{} [@var{file}]@dots{}
md5sum [@var{option}]@dots{} --check [@var{file}]
@end example

@c For each @var{file}, @samp{md5sum} outputs the MD5 checksum, a flag
@c indicating a binary or text input file, and the filename.
@c If @var{file} is omitted or specified as @samp{-}, standard input is read.
@c 
それぞれの@var{file}に対し，@samp{md5sum}は，MD5チェックサム，入力ファ
イルがバイナリかテキストかを示すフラグ，そしてファイル名を出力します．
@var{file}が無い，または@samp{-}として指定されている場合，標準入力を読
み込みます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -b
@itemx --binary
@opindex -b
@opindex --binary
@cindex binary input files
@c Treat all input files as binary.  This option has no effect on Unix
@c systems, since they don't distinguish between binary and text files.
@c This option is useful on systems that have different internal and
@c external character representations.  On MS-DOS and MS-Windows, this is
@c the default.
@c 
全ての入力ファイルをバイナリとして扱います．このオプションは，Unixシス
テムではバイナリとテキストでファイルに差が無いので効果がありません．こ
のオプションは，内部と外部での文字表示が異なるシステムでは便利です．
MS-DOSとMS-Windowsでは，これはデフォルトです．

@item -c
@itemx --check
@c Read filenames and checksum information from the single @var{file}
@c (or from stdin if no @var{file} was specified) and report whether
@c each named file and the corresponding checksum data are consistent.
@c The input to this mode of @command{md5sum} is usually the output of
@c a prior, checksum-generating run of @samp{md5sum}.
@c Each valid line of input consists of an MD5 checksum, a binary/text
@c flag, and then a filename.
@c Binary files are marked with @samp{*}, text with @samp{ }.
@c For each such line, @command{md5sum} reads the named file and computes its
@c MD5 checksum.  Then, if the computed message digest does not match the
@c one on the line with the filename, the file is noted as having
@c failed the test.  Otherwise, the file passes the test.
@c By default, for each valid line, one line is written to standard
@c output indicating whether the named file passed the test.
@c After all checks have been performed, if there were any failures,
@c a warning is issued to standard error.
@c Use the @option{--status} option to inhibit that output.
@c If any listed file cannot be opened or read, if any valid line has
@c an MD5 checksum inconsistent with the associated file, or if no valid
@c line is found, @command{md5sum} exits with nonzero status.  Otherwise,
@c it exits successfully.
@c 
ファイル名とチェックサム情報を，単一の@var{file}(または，@var{file}が
指定されない場合は標準入力)から読み込み，それぞれの指定された名前のファ
イルと対応するチェックサムデータが対応しているかどうか報告します．
@command{md5sum}のこのモードでの入力は，通常，@samp{md5sum}を実行して
生成されたチェックサムで，それは以前の出力です．それぞれの入力の有効な
行は，MD5チェックサムから成り立ち，バイナリ/テキストフラグと，ファイル
名です．バイナリファイルは@samp{*}で，テキストは@samp{ }で印が付きます．
それぞれのそのような行に対し，@command{md5sum}は，指名されたファイルを
読み込み，そのMD5チェックサムを計算します．そして，計算されたメッセー
ジダイジェストが，ファイル名を持つ行の一つとマッチしない場合，ファイル
にはテストに失敗したというメモが付きます．それ以外の場合，ファイルは調
査をパスします．デフォルトで，それぞれの有効な行に対し，指名されたファ
イルが調査を通過したかどうかを示す一行を，標準出力に書き出します．全て
の調査の実行後，失敗があった場合，警告を標準エラーに出力します．出力を
抑制するために，@option{--status}オプションを使用してください．リスト
アップされたファイルに，開いたり読み込んだりすることが不可能なものがあ
る場合，有効な行が関連するファイルとMD5チェックサムに対応しない場合，
または，有効な行が見つからない場合，@command{md5sum}はゼロ以外のステー
タスで終了します．それ以外の場合は，正しく終了します．

@itemx --status
@opindex --status
@cindex verifying MD5 checksums
@c This option is useful only when verifying checksums.
@c When verifying checksums, don't generate the default one-line-per-file
@c diagnostic and don't output the warning summarizing any failures.
@c Failures to open or read a file still evoke individual diagnostics to
@c standard error.
@c If all listed files are readable and are consistent with the associated
@c MD5 checksums, exit successfully.  Otherwise exit with a status code
@c indicating there was a failure.
@c 
このオプションは，チェックサムの照合時のみ便利です．チェックサムを照合
するとき，デフォルトのファイルに対し一行の診断を生成せず，あらゆる失敗
を要約する警告を出力しません．ファイルを開くあるいは読み込む際の失敗は，
標準エラーに個別の診断結果を出力します．リストアップされたファイルがす
べて読み込み可能で，対応するMD5チェックサムと対応している場合，正しく
終了します．それ以外の場合，失敗があることを示すステータスコードで終了
します．

@item -t
@itemx --text
@opindex -t
@opindex --text
@cindex text input files
@c Treat all input files as text files.  This is the reverse of
@c @option{--binary}.
@c 
全ての入力ファイルを，テキストファイルとして扱います．このオプションは
@option{--binary}の反対です．

@item -w
@itemx --warn
@opindex -w
@opindex --warn
@cindex verifying MD5 checksums
@c When verifying checksums, warn about improperly formatted MD5 checksum lines.
@c This option is useful only if all but a few lines in the checked input
@c are valid.
@c 
チェックサムを照合するとき，不適切に書式化されたMD5チェックサム行につ
いて警告します．このオプションは，入力の調査で，全てではなくいくつかの
行が有効な場合のみ便利です．

@end table

@exitstatus


@node Operating on sorted files
@c @chapter Operating on sorted files
@chapter ソートされたファイルの処理

@cindex operating on sorted files
@cindex sorted files, operations on

@c These commands work with (or produce) sorted files.
@c 
以下のコマンドは，ソートされたファイルで動作する(あるいはそれを生成す
る)コマンドです．

@menu
* sort invocation::             Sort text files.
* uniq invocation::             Uniquify files.
* comm invocation::             Compare two sorted files line by line.
* ptx invocation::              Produce a permuted index of file contents.
* tsort invocation::            Topological sort.
* tsort background::            Where tsort came from.
@end menu


@node sort invocation
@c @section @command{sort}: Sort text files
@section @command{sort}: テキストファイルをソート

@pindex sort
@cindex sorting files

@c @command{sort} sorts, merges, or compares all the lines from the given
@c files, or standard input if none are given or for a @var{file} of
@c @samp{-}.  By default, @command{sort} writes the results to standard
@c output.  Synopsis:
@c 
@command{sort}は，与えられたファイル，または与えられない場合や，
@samp{-}の@var{file}の場合は標準入力からの全ての行を，ソート，統合，ま
たは比較します．デフォルトで，@command{sort}は結果を標準出力に書き出し
ます．概要です．

@example
sort [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c @command{sort} has three modes of operation: sort (the default), merge,
@c and check for sortedness.  The following options change the operation
@c mode:
@c 
@command{sort}は，処理時に三つのモードがあります．ソート(デフォルト)，
統合，そしてソートされてることの調査です．以下のオプションで処理モード
を変更します．

@table @samp

@item -c
@itemx --check
@opindex -c
@opindex --check
@cindex checking for sortedness
@c Check whether the given files are already sorted: if they are not all
@c sorted, print an error message and exit with a status of 1.
@c Otherwise, exit successfully.
@c 
与えられたファイルが，すでにソートされているかどうか調査します．全てが
ソートされていない場合，エラーメッセージを出力し，1のステータスで終了
します．それ以外の場合は正常に終了します．

@item -m
@itemx --merge
@opindex -m
@opindex --merge
@cindex merging sorted files
@c Merge the given files by sorting them as a group.  Each input file must
@c always be individually sorted.  It always works to sort instead of
@c merge; merging is provided because it is faster, in the case where it
@c works.
@c 
与えられたファイルを，グループ化してソートすることで，統合します．それ
ぞれの入力ファイルは，個別にソートされている必要があります．それは常に，
統合ではなくソートのために動作します．統合は，それが動作する状況ではよ
り高速なため提供されています．

@end table

@vindex LC_ALL
@vindex LC_COLLATE
@c A pair of lines is compared as follows: if any key fields have
@c been specified, @command{sort} compares each pair of fields, in the
@c order specified on the command line, according to the associated
@c ordering options, until a difference is found or no fields are left.
@c Unless otherwise specified, all comparisons use the character collating
@c sequence specified by the @env{LC_COLLATE} locale.  @footnote{If you
@c use a non-@acronym{POSIX} locale (e.g., by setting @env{LC_ALL}
@c to @samp{en_US}), then @command{sort} may produce output that is sorted
@c differently than you're accustomed to.  In that case, set the @env{LC_ALL}
@c environment variable to @samp{C}.  Note that setting only @env{LC_COLLATE}
@c has two problems.  First, it is ineffective if @env{LC_ALL} is also set.
@c Second, it has undefined behavior if @env{LC_CTYPE} (or @env{LANG}, if
@c @env{LC_CTYPE} is unset) is set to an incompatible value.  For example,
@c you get undefined behavior if @env{LC_CTYPE} is @code{ja_JP.PCK} but
@c @env{LC_COLLATE} is @code{en_US.UTF-8}. }
@c 
行の組は，以下のように比較されます．キーフィールドが指定された場合，
@command{sort}は，それぞれのフィールドの組を，コマンドラインで指定され
た順番で，関連する順序オプションで，差が見つかるまで，またはフィールド
の残りが無くなるまで比較します．指定されない場合は，すべて比較する際，
@env{LC_COLLATE}ロカールで指定された，文字の順番を使用します．
@footnote{@acronym{POSIX}ではないロカール(例えば@env{LC_ALL}を
@samp{en_US}に設定している)場合，@command{sort}はいつもとは異なるソー
トされた出力を生成する可能性があります．その状況では，@env{LC_ALL}環境
変数を@samp{C}に設定してください．@env{LC_COLLATE}だけを設定することに
は二つの問題があることに注意してください．最初は，@env{LC_ALL}が既に設
定されている場合，無効になることです．二番目は，@env{LC_CTYPE}(または
@env{LC_CTYPE}が設定されていない場合は@env{LANG})が互換性の無い値に設
定されている場合の動作が未定義であることです．例えば，@env{LC_CTYPE}が
@code{ja_JP.PCK}で，@env{LC_COLLATE}が@code{en_US.UTF-8}の場合，動作は
未定義です．}

@c If any of the global options @samp{bdfgiMnr} are given but no key fields
@c are specified, @command{sort} compares the entire lines according to the
@c global options.
@c 
大域的なオプション@samp{bdfgiMnr}が与えられて，キーフィールドが指定さ
れていない場合，@command{sort}は大域的なオプションに従い，行全体を比較
します．

@c Finally, as a last resort when all keys compare equal (or if no ordering
@c options were specified at all), @command{sort} compares the entire lines.
@c The last resort comparison honors the @option{--reverse} (@option{-r})
@c global option.  The @option{--stable} (@option{-s}) option disables this
@c last-resort comparison so that lines in which all fields compare equal
@c are left in their original relative order.  If no fields or global
@c options are specified, @option{--stable} (@option{-s}) has no effect.
@c 
最終的に，全てのキーが同じとき(または，順序オプションが全く指定されて
いない場合)，最後の手段として，@command{sort}は行全体を比較します．最
後の手段は，@option{--reverse}(@option{-r})の大域的なオプションを尊重
して比較します．@option{--stable}(@option{-s})オプションは，この最後の
手段では利用できず，それは，全てのフィールドの比較が同じになる行は，元
の相対的な順序のままにするためです．フィールドや大域的なオプションが指
定されない場合，@option{--stable}(@option{-s})は効果がありません．

@c @sc{gnu} @command{sort} (as specified for all @sc{gnu} utilities) has no
@c limit on input line length or restrictions on bytes allowed within lines.
@c In addition, if the final byte of an input file is not a newline, @sc{gnu}
@c @command{sort} silently supplies one.  A line's trailing newline is not
@c part of the line for comparison purposes.
@c 
@sc{gnu} @command{sort}は，(全ての@sc{gnu}ユーティリティで指定されるよ
うに)入力行の長さの制限や，行で許可されるバイト数の限界がありません．
更に，入力ファイルの最終バイトが改行でない場合，@sc{gnu}
@command{sort}は，黙ってそれを供給します．行の後ろの改行は，比較の目的
では行の一部です．

@cindex exit status of @command{sort}
@c Exit status:
@c 
終了ステータスは以下のようになります．
@display
@c 0 if no error occurred
@c 1 if invoked with @option{-c} and the input is not properly sorted
@c 2 if an error occurred
@c 
0 エラーがない場合
1 @option{-c}オプションとともに呼び出され，入力が適切にソートされていない場合
2 エラーが生じた場合
@end display

@vindex TMPDIR
@c If the environment variable @env{TMPDIR} is set, @command{sort} uses its
@c value as the directory for temporary files instead of @file{/tmp}.  The
@c @option{--temporary-directory} (@option{-T}) option in turn overrides
@c the environment variable.
@c 
環境変数@env{TMPDIR}が設定されている場合，@command{sort}は，一時ファイ
ルのディレクトリとして，@file{/tmp}の代わりにその変数をディレクトリと
して使用します．@option{--temporary-directory}(@option{-T})オプション
は，順序的に環境変数に優先します．

@c The following options affect the ordering of output lines.  They may be
@c specified globally or as part of a specific key field.  If no key
@c fields are specified, global options apply to comparison of entire
@c lines; otherwise the global options are inherited by key fields that do
@c not specify any special options of their own.  In pre-@acronym{POSIX}
@c versions of @command{sort}, global options affect only later key fields,
@c so portable shell scripts should specify global options first.
@c 
以下のオプションは，出力行の順序に影響します．それらは，大域的，または
キーフィールドの一部として指定してもかまいません．キーフィールドが指定
されていない場合，大域的なオプションは行全体の比較に対して適用されます．
それ以外では，大域的なオプションは，それ自身オプションが指定されていな
いキーフィールドに継承されます．以前の@acronym{POSIX}のバージョンの
@command{sort}では，大域的なオプションはキーフィールドだけに影響するの
で，移植性の高いシェルスクリプトでは大域的なオプションを最初に指定すべ
きです．

@table @samp

@item -b
@itemx --ignore-leading-blanks
@opindex -b
@opindex --ignore-leading-blanks
@cindex blanks, ignoring leading
@vindex LC_CTYPE
@c Ignore leading blanks when finding sort keys in each line.
@c The @env{LC_CTYPE} locale determines character types.
@c 
それぞれの行でソートするキーを探すとき，前の空白を無視します．
@env{LC_CTYPE}ロカールで文字形式を決定します．

@item -d
@itemx --dictionary-order
@opindex -d
@opindex --dictionary-order
@cindex dictionary order
@cindex phone directory order
@cindex telephone directory order
@vindex LC_CTYPE
@c Sort in @dfn{phone directory} order: ignore all characters except
@c letters, digits and blanks when sorting.
@c The @env{LC_CTYPE} locale determines character types.
@c 
@dfn{phone directory}の順序でソートします．ソート時に，文字，数字，そ
して空白以外の全ての文字は無視されます．@env{LC_CTYPE}ロカールで文字形
式を決定します．

@item -f
@itemx --ignore-case
@opindex -f
@opindex --ignore-case
@cindex ignoring case
@cindex case folding
@vindex LC_CTYPE
@c Fold lowercase characters into the equivalent uppercase characters when
@c comparing so that, for example, @samp{b} and @samp{B} sort as equal.
@c The @env{LC_CTYPE} locale determines character types.
@c 
比較時に，小文字を大文字と同じに扱い，例えば，@samp{b}と@samp{B}は同等
にソートされます．@env{LC_CTYPE}ロカールで文字形式を決定します．

@item -g
@itemx --general-numeric-sort
@opindex -g
@opindex --general-numeric-sort
@cindex general numeric sort
@vindex LC_NUMERIC
@c Sort numerically, using the standard C function @code{strtod} to convert
@c a prefix of each line to a double-precision floating point number.
@c This allows floating point numbers to be specified in scientific notation,
@c like @code{1.0e-34} and @code{10e100}.
@c The @env{LC_NUMERIC} locale determines the decimal-point character.
@c Do not report overflow, underflow, or conversion errors.
@c Use the following collating sequence:
@c 
それぞれの行のプレフィクスを倍精度浮動小数点の数に変換するため，標準C 
関数@code{strtod}を使用し，数値的なソートをします．これで，
@code{1.0e-34}と@code{10e100}のような浮動小数点の数を，科学的な表記方
で指定できます．@env{LC_NUMERIC}ロカールで小数点文字を決定します．オー
バーフローや，アンダーフロー，変換エラーは報告しません．以下の順番を使
用します．

@itemize @bullet
@item
@c Lines that do not start with numbers (all considered to be equal).
@c 
数字で始まらない行(全て同じと考えます)．
@item
@c NaNs (``Not a Number'' values, in IEEE floating point arithmetic)
@c in a consistent but machine-dependent order.
@c 
NaN(``Not a Number''値で，IEEEでの算術的な浮動小数点です)一貫している
がマシンに依存した順番．
@item
@c Minus infinity.
@c 
負の無限大．
@item
@c Finite numbers in ascending numeric order (with @math{-0} and @math{+0} equal).
@c 
数字の順番に並んだ有限数(@math{-0}と@math{+0}は等しい)．
@item
@c Plus infinity.
@c 
正の無限大．
@end itemize

@c Use this option only if there is no alternative; it is much slower than
@c @option{--numeric-sort} (@option{-n}) and it can lose information when
@c converting to floating point.
@c 
他に選択肢が無い場合のみ，このオプションを使用してください．
@option{--numeric-sort}(@option{-n})よりはるかに遅く，浮動小数点に変換
するとき，情報を失うはずです．

@item -i
@itemx --ignore-nonprinting
@opindex -i
@opindex --ignore-nonprinting
@cindex nonprinting characters, ignoring
@cindex unprintable characters, ignoring
@vindex LC_CTYPE
@c Ignore nonprinting characters.
@c The @env{LC_CTYPE} locale determines character types.
@c This option has no effect if the stronger @option{--dictionary-order}
@c (@option{-d}) option is also given.
@c 
印刷不可能な文字を無視します．@env{LC_CTYPE}ロカールで文字形式を決定し
ます．このオプションは，より強力な@option{--dictionary-order}
(@option{-d})オプションも与えられている場合，効果がありません．

@item -M
@itemx --month-sort
@opindex -M
@opindex --month-sort
@cindex months, sorting by
@vindex LC_TIME
@c An initial string, consisting of any amount of blanks, followed
@c by a month name abbreviation, is folded to UPPER case and
@c compared in the order @samp{JAN} < @samp{FEB} < @dots{} < @samp{DEC}.
@c Invalid names compare low to valid names.  The @env{LC_TIME} locale
@c category determines the month spellings.
@c 
任意の量の空白から成り立つ最初の文字列に月の名前の省略が続くものは，大
文字のまま保持され，@samp{JAN} < @samp{FEB} < @dots{} < @samp{DEC}の順
に比較されます．無効な名前は，有効な名前の下になります．@env{LC_TIME} 
ロカールで，月のつづりを決定します．

@item -n
@itemx --numeric-sort
@opindex -n
@opindex --numeric-sort
@cindex numeric sort
@vindex LC_NUMERIC
@c Sort numerically: the number begins each line; specifically, it consists
@c of optional blanks, an optional @samp{-} sign, and zero or more
@c digits possibly separated by thousands separators, optionally followed
@c by a decimal-point character and zero or more digits.  The @env{LC_NUMERIC}
@c locale specifies the decimal-point character and thousands separator.
@c 
数値的なソートです．数字でそれぞれの行を開始します．特に，オプションの
空白，オプションの@samp{-}記号，そして，1000で区切られたり，小数点文字
とゼロ以上の桁を続けることが可能な，ゼロ以上の桁から成り立ちます．
@env{LC_NUMERIC}ロカールで，小数点文字と1000の区切りを指定します．

@c Numeric sort uses what might be considered an unconventional method to
@c compare strings representing floating point numbers.  Rather than first
@c converting each string to the C @code{double} type and then comparing
@c those values, @command{sort} aligns the decimal-point characters in the
@c two strings and compares the strings a character at a time.  One benefit
@c of using this approach is its speed.  In practice this is much more
@c efficient than performing the two corresponding string-to-double (or
@c even string-to-integer) conversions and then comparing doubles.  In
@c addition, there is no corresponding loss of precision.  Converting each
@c string to @code{double} before comparison would limit precision to about
@c 16 digits on most systems.
@c 
数値的なソートは，浮動小数点の数値を表現する文字列を比較するため，慣習
的とは思われない手法を使用します．最初にそれぞれの文字列をCの
@code{double}形式に変換してそれらの値を比較するのではなく，
@command{sort}は，二つの文字列の小数点文字を一列に並べて，一度に文字の
列を比較します．このアプローチを使う一つの利益は速度です．実際には，二
つの対応する文字列を倍精度浮動小数点に(または，文字列を整数に)変換し，
倍精度浮動小数点を比較するより効率的です．更に，精度による損失はありま
せん．それぞれの文字列を比較前に@code{double}に変換すると，ほとんどの
システムで16桁程度に精度が制限されるでしょう．

@c Neither a leading @samp{+} nor exponential notation is recognized.
@c To compare such strings numerically, use the
@c @option{--general-numeric-sort} (@option{-g}) option.
@c 
前置される@samp{+}も，指数表記も認識されません．そのような文字列を数値
的に比較するために，@option{-g}オプションを使用してください．

@item -r
@itemx --reverse
@opindex -r
@opindex --reverse
@cindex reverse sorting
@c Reverse the result of comparison, so that lines with greater key values
@c appear earlier in the output instead of later.
@c 
比較の結果を逆順にし，より大きなキー値を持つ行が，出力では後方なるので
はなく，前方に現われるようになります．

@end table

@c Other options are:
@c 
その他のオプションは以下の通りです．

@table @samp

@item -o @var{output-file}
@itemx --output=@var{output-file}
@opindex -o
@opindex --output
@cindex overwriting of input, allowed
@c Write output to @var{output-file} instead of standard output.
@c If necessary, @command{sort} reads input before opening
@c @var{output-file}, so you can safely sort a file in place by using
@c commands like @code{sort -o F F} and @code{cat F | sort -o F}.
@c 
標準出力の代わりに，@var{output-file}に出力を書き出します．必要があれ
ば，@command{sort}は@var{output-file}を開く前に入力を読み込むので，
@code{sort -o F F}と@code{cat F | sort -o F}のようなコマンドを使用する
ことで，同じファイルを安全にソートすることが可能です．

@vindex POSIXLY_CORRECT
@c On newer systems, @option{-o} cannot appear after an input file if
@c @env{POSIXLY_CORRECT} is set, e.g., @samp{sort F -o F}.  Portable
@c scripts should specify @option{-o @var{output-file}} before any input
@c files.
@c 
より新しいシステムでは，@env{POSIXLY_CORRECT}が設定されている場合，
@option{-o}を入力ファイルの後に書くことができません．例えば，
@samp{sort F -o F}です．移植性の高いスクリプトでは，すべての入力ファイ
ルの前に@option{-o @var{output-file}}を指定すべきです．

@item -s
@itemx --stable
@opindex -s
@opindex --stable
@cindex sort stability
@cindex disabling sort's last-resort comparison

@c Make @command{sort} stable by disabling the last-resort
@c comparison that is performed in some cases.
@c By default, when lines compare equal based on command line options
@c that affect ordering, those lines are ordered using
@c a @dfn{last-resort comparison} that takes the entire
@c line as the key and acts as if no ordering options were specified.
@c But if @option{--reverse} (@option{-r}) was specified along with other
@c ordering options, then the last-resort comparison does use @option{--reverse}.
@c In any case, when no ordering option is specified or when only
@c @option{--reverse} is specified, the last-resort comparison is not performed
@c 
条件によっては実行される最後の手段の比較を利用不可能にし，
@command{sort}を安定させます．デフォルトで，コマンドラインオプションに
よって影響する順番として行の比較が同じになるとき，行全体をキーとして，
順序付けオプションが指定されていない状態で，@dfn{最後の手段の比較
(last-resort comparison)}を使用して，これらの行に順番を付けます．しか
し，順序指定として@option{--reverse} (@option{-r})が指定されている場合，
最後の手段の比較は@option{--reverse}を使用します．あらゆる状況で，順序
付けオプションが指定されていないときや，@option{--reverse}だけが指定さ
れているとき，最後の手段の比較は実行されません．

@item -S @var{size}
@itemx --buffer-size=@var{size}
@opindex -S
@opindex --buffer-size
@cindex size for main memory sorting
@c Use a main-memory sort buffer of the given @var{size}.  By default,
@c @var{size} is in units of 1024 bytes.  Appending @samp{%} causes
@c @var{size} to be interpreted as a percentage of physical memory.
@c Appending @samp{K} multiplies @var{size} by 1024 (the default),
@c @samp{M} by 1,048,576, @samp{G} by 1,073,741,824, and so on for
@c @samp{T}, @samp{P}, @samp{E}, @samp{Z}, and @samp{Y}.  Appending
@c @samp{b} causes @var{size} to be interpreted as a byte count, with no
@c multiplication.
@c 
与えられた@var{size}のメインメモリのソートバッファを使用します．デフォ
ルトで，@var{size}は1024バイト単位です．@samp{%}を追加すると，
@var{size}を物理メモリのパーセントとして解釈します．@samp{K}を追加する
と，@var{size}を1024倍(デフォルト)にし，@samp{M}は1,048,576倍，
@samp{G}は1,073,741,824倍などのようになり，以下@samp{T}，@samp{P}，
@samp{E}，@samp{Z}，そして@samp{Y}も同様です．@samp{b}を追加すると，
@var{size}は倍数表現ではなくバイト数として解釈されます．

@c This option can improve the performance of @command{sort} by causing it
@c to start with a larger or smaller sort buffer than the default.
@c However, this option affects only the initial buffer size.  The buffer
@c grows beyond @var{size} if @command{sort} encounters input lines larger
@c than @var{size}.
@c 
このオプションで，デフォルトより大きいまたは小さいソートバッファを用い
て開始させることで，@command{sort}のパフォーマンスの改善することが可能
です．しかし，このオプションは初期のバッファサイズだけに影響します．
@var{size}より大きな入力行を@command{sort}が見つけた場合，バッファは
@var{size}以上に大きくなります．

@item -t @var{separator}
@itemx --field-separator=@var{separator}
@opindex -t
@opindex --field-separator
@cindex field separator character
@c Use character @var{separator} as the field separator when finding the
@c sort keys in each line.  By default, fields are separated by the empty
@c string between a non-blank character and a blank character.
@c That is, given the input line @w{@samp{ foo bar}}, @command{sort} breaks it
@c into fields @w{@samp{ foo}} and @w{@samp{ bar}}.  The field separator is
@c not considered to be part of either the field preceding or the field
@c following.  But note that sort fields that extend to the end of the line,
@c as @option{-k 2}, or sort fields consisting of a range, as @option{-k 2,3},
@c retain the field separators present between the endpoints of the range.
@c 
それぞれの行からソートキーを検索するとき，フィールドセパレータとして，
文字@var{separator}を使用します．デフォルトで，フィールドは，空白でな
い文字と空白文字の間の空の文字列で分離されます．すなわち，入力行
@w{@samp{ foo bar}}が与えられた場合，@command{sort}はそれを，フィール
ド@w{@samp{ foo}}と@w{@samp{ bar}}に分離します．フィールドセパレータは，
フィールドの前やフィールドの後の部分とは考えられません．しかし，
@option{-k 2}のように行末まで展開されるソートフィールドや，@option{-k
2,3}のように範囲があるソートフィールドは，範囲の終点に存在するフィール
ドセパレータを保持します．

@c To specify a zero byte (@acronym{ASCII} @sc{nul} (Null) character) as
@c the field separator, use the two-character string @samp{\0}, e.g.,
@c @samp{sort -t '\0'}.
@c 
フィールド分離文字としてゼロバイト(@acronym{ASCII} @sc{nul} (Null)文字) 
を指定するために，二文字の文字列@samp{\0}，例えば@samp{sort -t '\0'}を
使用して下さい．

@item -T @var{tempdir}
@itemx --temporary-directory=@var{tempdir}
@opindex -T
@opindex --temporary-directory
@cindex temporary directory
@vindex TMPDIR
@c Use directory @var{tempdir} to store temporary files, overriding the
@c @env{TMPDIR} environment variable.  If this option is given more than
@c once, temporary files are stored in all the directories given.  If you
@c have a large sort or merge that is I/O-bound, you can often improve
@c performance by using this option to specify directories on different
@c disks and controllers.
@c 
一時ファイルを保存するためディレクトリ@var{tempdir}を使用し，それは
@env{TMPDIR}環境変数に優先します．このオプションが一回以上与えられた場
合，一時ファイルはすべて与えられたディレクトリに保存されます．入出力が
拘束されるほどの大量のソートやマージを行なう場合，異なるディスクやコン
トローラにあるディレクトリを指定するためにこのオプションを使用すること
で，パフォーマンスが改善するはずです．

@item -u
@itemx --unique
@opindex -u
@opindex --unique
@cindex uniquifying output

@c Normally, output only the first of a sequence of lines that compare
@c equal.  For the @option{--check} (@option{-c}) option,
@c check that no pair of consecutive lines compares equal.
@c 
通常，比較結果が等しい行の最初の行のみを出力します．
@option{--check}(@option{-c})オプションに対し，比較結果が等しい連続し
た行の対が無いことを調査します．

@item -k @var{pos1}[,@var{pos2}]
@itemx --key=@var{pos1}[,@var{pos2}]
@opindex -k
@opindex --key
@cindex sort field
@c Specify a sort field that consists of the part of the line between
@c @var{pos1} and @var{pos2} (or the end of the line, if @var{pos2} is
@c omitted), @emph{inclusive}.  Fields and character positions are numbered
@c starting with 1.  So to sort on the second field, you'd use
@c @option{--key=2,2} (@option{-k 2,2}).  See below for more examples.
@c 
@var{pos1}と@var{pos2}(または，@var{pos2}が省略された場合は行末)の間か
ら成り立つ，@var{pos2}は@emph{含まれます}，行の一部をソート時のフィー
ルドに指定します．フィールドと文字の位置は，1から番号付けされます．そ
のため，二番目のフィールドをソートするため，@option{--key=2,2}
(@samp{-k 2,2})を使用してください．以下により多くの例があります．

@item -z
@itemx --zero-terminated
@opindex -z
@opindex --zero-terminated
@cindex sort zero-terminated lines
@c Treat the input as a set of lines, each terminated by a zero byte
@c (@acronym{ASCII} @sc{nul} (Null) character) instead of an
@c @acronym{ASCII} @sc{lf} (Line Feed).
@c This option can be useful in conjunction with @samp{perl -0} or
@c @samp{find -print0} and @samp{xargs -0} which do the same in order to
@c reliably handle arbitrary pathnames (even those which contain Line Feed
@c characters.)
@c 
入力を行の集合として扱い，@acronym{ASCII} @sc{lf} (Line Feed)の代わり
にゼロバイト(@acronym{ASCII} @sc{nul} (Null)文字)で終端します．このオ
プションは，任意のパス名を(ラインフィード文字を含んでいても)確実に処理
するため，@samp{perl -0}や，@samp{find -print0}と@samp{xargs -0}と組み
合わせると便利です．

@end table

@c Historical (BSD and System V) implementations of @command{sort} have
@c differed in their interpretation of some options, particularly
@c @option{-b}, @option{-f}, and @option{-n}.  @sc{gnu} sort follows the @acronym{POSIX}
@c behavior, which is usually (but not always!) like the System V behavior.
@c According to @acronym{POSIX}, @option{-n} no longer implies @option{-b}.  For
@c consistency, @option{-M} has been changed in the same way.  This may
@c affect the meaning of character positions in field specifications in
@c obscure cases.  The only fix is to add an explicit @option{-b}.
@c 
歴史的な(BSDとSystem Vの)@command{sort}の実装は，解釈が異なるオプショ
ンがあり，特に，@option{-b}，@option{-f}と@option{-n}があげられます．
@sc{gnu} @command{sort}は，@acronym{POSIX}の動作に従い，それは通常(常
にではない!)System Vの動作に似ています．@acronym{POSIX}によると，
@option{-n}は，もはや@option{-b}を暗黙に指定しません．一貫性のため，
@option{-M}も同様に変更されました．これは，フィールドの指定が明確でな
い状況で，文字の位置の意味に影響するかもしれません．唯一の訂正方法は，
明示的に@option{-b}を加えることです．

@c A position in a sort field specified with the @option{-k}
@c option has the form @samp{@var{f}.@var{c}}, where @var{f} is the number
@c of the field to use and @var{c} is the number of the first character
@c from the beginning of the field.  In a start position, an omitted
@c @samp{.@var{c}} stands for the field's first character.  In an end
@c position, an omitted or zero @samp{.@var{c}} stands for the field's
@c last character.  If the
@c @option{-b} option was specified, the @samp{.@var{c}} part of a field
@c specification is counted from the first nonblank character of the field.
@c 
@option{-k}オプションを用いたソート時のフィールド指定の位置は，
@samp{@var{f}.@var{c}}形式となり，@var{f}は使用するフィールド数で，
@var{c}はフィールドのはじまりから数えた最初の文字までの数です．最初の
位置として，@samp{.@var{c}}が省略されているとフィールドの最初の文字を
用います．@option{-b}オプションが指定されている場合，指定したフィール
ドの@samp{.@var{c}} の部分は，フィールドの最初の空白ではない文字から数
えます．

@c A sort key position may also have any of the option letters @samp{Mbdfinr}
@c appended to it, in which case the global ordering options are not used
@c for that particular field.  The @option{-b} option may be independently
@c attached to either or both of the start and
@c end positions of a field specification, and if it is inherited
@c from the global options it will be attached to both.
@c Keys may span multiple fields.
@c 
ソートキーの位置は，オプション文字@samp{Mbdfinr}を加えてもかまわず，そ
の場合，大域的な順序オプションは，特定のフィールドに使用されません．
@option{-b}オプションは，指定した最初と最後のフィールドの一方または両
方に独立に適用され，大域的なオプションを継承する場合，両方に適用されま
す．キーは複数のフィールドに跨ってもかまいません．

@c On older systems, @command{sort} supports an obsolete origin-zero
@c syntax @samp{+@var{pos1} [-@var{pos2}]} for specifying sort keys.
@c @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) does not allow
@c this; use @option{-k} instead.
@c 
古いシステムでは，@command{sort}は時代遅れのソートキーを指定するゼロを
起点とした構文の@samp{+@var{pos1} [-@var{pos2}]}をサポートしています．
@acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})ではこれを
許可していません．代わりに@option{-k}を使用してください．

@c Here are some examples to illustrate various combinations of options.
@c 
様々なオプションの組合せを紹介する例は以下のようになります．

@itemize @bullet

@item
@c Sort in descending (reverse) numeric order.
@c 
下降的な(逆順の)数の順序でソートします．

@example
sort -nr
@end example

@item
@c Sort alphabetically, omitting the first and second fields.
@c This uses a single key composed of the characters beginning
@c at the start of field three and extending to the end of each line.
@c 
アルファベット順に，最初と二番目のフィールドを除いてソートします．これ
は，三つ目のフィールドから始まり，それぞれの行の終りまで続く文字で構成
された，単一のキーを使用します．

@example
sort -k 3
@end example

@item
@c Sort numerically on the second field and resolve ties by sorting
@c alphabetically on the third and fourth characters of field five.
@c Use @samp{:} as the field delimiter.
@c 
二番目のフィールドを数値的にソートし，五つ目のフィールドの三番目と四番
目の文字のアルファベットでソートすることで，その値が同じものを並べます．
フィールドの分離に@samp{:}を使用します．

@example
sort -t : -k 2,2n -k 5.3,5.4
@end example

@c Note that if you had written @option{-k 2} instead of @option{-k 2,2}
@c @command{sort} would have used all characters beginning in the second field
@c and extending to the end of the line as the primary @emph{numeric}
@c key.  For the large majority of applications, treating keys spanning
@c more than one field as numeric will not do what you expect.
@c 
@samp{-k 2,2}の代わりに@samp{-k 2}と書いた場合，@samp{sort}は二番目の
フィールドで始まり，行の終りまで続く全ての文字を，主要な@emph{数値}キー
として使用することに注意してください．アプリケーションのほとんど大多数
に対しては，数値として一つフィールド以上に跨って扱うキーは，期待したも
のではないでしょう．

@c Also note that the @samp{n} modifier was applied to the field-end
@c specifier for the first key.  It would have been equivalent to
@c specify @option{-k 2n,2} or @option{-k 2n,2n}.  All modifiers except
@c @samp{b} apply to the associated @emph{field}, regardless of whether
@c the modifier character is attached to the field-start and/or the
@c field-end part of the key specifier.
@c 
また，@samp{n}の修飾は，最初のキーに対し，フィールドの終りを指定するも
のに適用されることに注意してください．それは，@samp{-k 2n,2}や@samp{-k
2n,2n}を指定することと同じです．全ての修飾は，@samp{b}が関連する
@emph{フィールド}に適用されることを期待し，修飾文字がフィールドの最初
そして/または，キー指定のフィールドの終りに適用されるかどうかに依存し
ません．

@item
@c Sort the password file on the fifth field and ignore any
@c leading blanks.  Sort lines with equal values in field five
@c on the numeric user ID in field three.
@c 
五番目のフィールドでパスワードファイルをソートし，前置されるすべての空
白を無視します．五番目のフィールドが等しい値の行を，三番目のフィールド
のユーザIDでソートします．

@example
sort -t : -k 5b,5 -k 3,3n /etc/passwd
@end example

@c An alternative is to use the global numeric modifier @option{-n}.
@c 
代わりに，大域的な数値の修飾@option{-n}を使用します．

@example
sort -t : -n -k 5b,5 -k 3,3 /etc/passwd
@end example

@item
@c Generate a tags file in case-insensitive sorted order.
@c 
大文字小文字を識別するタグファイルを生成します．

@smallexample
find src -type f -print0 | sort -t / -z -f | xargs -0 etags --append
@end smallexample

@c The use of @option{-print0}, @option{-z}, and @option{-0} in this case means
@c that pathnames that contain Line Feed characters will not get broken up
@c by the sort operation.
@c 
この状況では，@option{-print0}，@option{-z}，そして@option{-0}の使用は，
Line Feed文字を含むパス名がソート処理で分割されないようにします．

@c Finally, to ignore both leading and trailing blanks, you
@c could have applied the @samp{b} modifier to the field-end specifier
@c for the first key,
@c 
最後に，前後の空白を無視するため，@samp{b}修飾を最初のキーに対しフィー
ルドの終りの指定に適用できます．

@example
sort -t : -n -k 5b,5b -k 3,3 /etc/passwd
@end example

@c or by using the global @option{-b} modifier instead of @option{-n}
@c and an explicit @samp{n} with the second key specifier.
@c 
または，大域的な@option{-b}修飾を@option{-n}の代わりに使用し，二番目の
キー指定に@samp{n}を明示します．

@example
sort -t : -b -k 5,5 -k 3,3n /etc/passwd
@end example

@c This example is a bit contrived and needs more explanation.
@c @item
@c Sort records separated by an arbitrary string by using a pipe to convert
@c each record delimiter string to @samp{\0}, then using sort's -z option,
@c and converting each @samp{\0} back to the original record delimiter.
@c
@c @example
@c printf 'c\n\nb\n\na\n'|perl -0pe 's/\n\n/\n\0/g'|sort -z|perl -0pe 's/\0/\n/g'
@c @end example

@end itemize


@node uniq invocation
@c @section @command{uniq}: Uniquify files
@section @command{uniq}: ファイルのユニーク化

@pindex uniq
@cindex uniquify files

@c @command{uniq} writes the unique lines in the given @file{input}, or
@c standard input if nothing is given or for an @var{input} name of
@c @samp{-}.  Synopsis:
@c 
@command{uniq}は与えられたファイル，または与えられない場合や@samp{-}の
@var{input}名に対し，ユニークな行を書き出します．概要です．

@example
uniq [@var{option}]@dots{} [@var{input} [@var{output}]]
@end example

@c By default, @command{uniq} prints its input lines, except that
@c it discards all but the first of adjacent repeated lines, so that
@c no output lines are repeated.  Optionally, it can instead discard
@c lines that are not repeated, or all repeated lines.
@c 
デフォルトで@command{uniq}はその入力行を出力し，そして，出力行が繰り返
さないように隣接した繰り返している行の最初のものだけを出力します．オプ
ションで，そうする代わりに，繰り返さない行を表示しない，さらに，すべて
の繰り返し行を表示することも可能です．

@c The input need not be sorted, but repeated input lines are detected
@c only if they are adjacent.  If you want to discard non-adjacent
@c duplicate lines, perhaps you want to use @code{sort -u}.
@c 
入力ファイルはソートされている必要はありませんが，繰り返している行は隣
接している場合のみ検出されます．隣接していないものを除去したい場合，お
そらく@code{sort -u}を使用したいと思うでしょう．

@vindex LC_COLLATE
@c Comparisons use the character collating sequence specified by the
@c @env{LC_COLLATE} locale category.
@c 
比較には，@env{LC_COLLATE}ロカールカテゴリで指定された文字の順番を使用
します．

@c If no @var{output} file is specified, @command{uniq} writes to standard
@c output.
@c 
@var{output}ファイルが無い場合，@command{uniq}は標準出力に書き出します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
このプログラムは，以下のオプションも受け入れます．@ref{Common options} 
も参照してください．

@table @samp

@item -f @var{n}
@itemx --skip-fields=@var{n}
@opindex -f
@opindex --skip-fields
@c Skip @var{n} fields on each line before checking for uniqueness.  Use
@c a null string for comparison if a line has fewer than @var{n} fields.  Fields
@c are sequences of non-space non-tab characters that are separated from
@c each other by at least one space or tab.
@c 
ユニークさを調査する前に，それぞれの行の@var{n}フィールドスキップしま
す．行が@var{n}フィールドより少ない場合，比較で空の文字列を使用します．
フィールドは，少なくとも一つ以上のスペースやタブで区切られた，非スペー
ス，非タブ文字の並びです．

@c On older systems, @command{uniq} supports an obsolete option
@c @option{-@var{n}}.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})
@c does not allow this; use @option{-f @var{n}} instead.
@c 
古いシステムでは，@command{uniq}は時代遅れのオプション
@option{-@var{n}}をサポートしています．@acronym{POSIX} 1003.1-2001
(@pxref{Standards conformance})ではこれを許可していません．代わりに
@option{-f @var{n}}を使用してください．

@item -s @var{n}
@itemx --skip-chars=@var{n}
@opindex -s
@opindex --skip-chars
@c Skip @var{n} characters before checking for uniqueness.  Use a null string
@c for comparison if a line has fewer than @var{n} characters.  If you use both
@c the field and character skipping options, fields are skipped over first.
@c 
ユニークさの調査の前に，@var{n}文字スキップします．行が@var{n}文字より
少ない場合，比較で空の文字列を使用します．フィールドと文字のスキップオ
プションを両方とも使用した場合，フィールドが最初にスキップされます．

@c On older systems, @command{uniq} supports an obsolete option
@c @option{+@var{n}}.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})
@c does not allow this; use @option{-s @var{n}} instead.
@c 
古いシステムでは，@command{uniq}は時代遅れのオプション
@option{+@var{n}}をサポートしています．@acronym{POSIX} 1003.1-2001
(@pxref{Standards conformance})ではこれを許可していません．代わりに
@option{-s @var{n}}を使用してください．

@item -c
@itemx --count
@opindex -c
@opindex --count
@c Print the number of times each line occurred along with the line.
@c 
それぞれの行で同じものが発生した回数を出力します．

@item -i
@itemx --ignore-case
@opindex -i
@opindex --ignore-case
@c Ignore differences in case when comparing lines.
@c 
行の比較時に大文字小文字の違いを無視します．

@item -d
@itemx --repeated
@opindex -d
@opindex --repeated
@cindex repeated lines, outputting
@c Discard lines that are not repeated.  When used by itself, this option
@c causes @command{uniq} to print the first copy of each repeated line,
@c and nothing else.
@c 
繰り返しではない行を除外します．単独で使用しているとき，このオプション
で@command{uniq}は繰り返している行の最初のものを出力し，それ以外は何も
出力しません．

@item -D
@itemx --all-repeated[=@var{delimit-method}]
@opindex -D
@opindex --all-repeated
@cindex all repeated lines, outputting
@c Do not discard the second and subsequent repeated input lines,
@c but discard lines that are not repeated.
@c This option is useful mainly in conjunction with other options e.g.,
@c to ignore case or to compare only selected fields.
@c The optional @var{delimit-method} tells how to delimit
@c groups of repeated lines, and must be one of the following:
@c 
繰り返している行の二番目とそれに続く行を除外しませんが，繰り返していな
い行は除外します．このオプションは，主に他のオプションと組み合わせると
便利で，例えば，大文字小文字を無視したり，選択したフィールドのみを比較
する場合です．追加の@var{delimit-method}で繰り返している行の組を分ける
方法を伝え、それは以下の一つにする必要があります．

@table @samp

@item none
@c Do not delimit groups of repeated lines.
@c This is equivalent to @option{--all-repeated} (@option{-D}).
@c 
繰り返している行の組を分離しません．これは@option{--all-repeated}
(@option{-D})と同じです．

@item prepend
@c Output a newline before each group of repeated lines.
@c 
それぞれの繰り返している行の組の前に改行を出力します．

@item separate
@c Separate groups of repeated lines with a single newline.
@c This is the same as using @samp{prepend}, except that
@c there is no newline before the first group, and hence
@c may be better suited for output direct to users.
@c 
繰り返している行の組を単一の改行で分離します．これは，最初の組の前に改
行が無いこと以外@samp{prepend}を使用することと同じで，ユーザに直接出力
するためにはより適しているでしょう．
@end table

@c Note that when groups are delimited and the input stream contains
@c two or more consecutive blank lines, then the output is ambiguous.
@c To avoid that, filter the input through @samp{tr -s '\n'} to replace
@c each sequence of consecutive newlines with a single newline.
@c 
組が分離されていて，入力に二つ以上の空白行があるとき，出力が不明瞭にな
ることに注意してください．それを避けるため，連続した改行を単一の改行に
置換するように，入力を@samp{tr -s '\n'}でフィルタリングしてください．

@c This is a @sc{gnu} extension.
@c 
これは，@sc{gnu}の拡張です．

@c FIXME: give an example showing *how* it's useful

@item -u
@itemx --unique
@opindex -u
@opindex --unique
@cindex unique lines, outputting
@c Discard the first repeated line.  When used by itself, this option
@c causes @command{uniq} to print unique lines, and nothing else.
@c 
最初に繰り返している行を除外します．単独で使用しているとき，このオプショ
ンで@command{uniq}はユニークな行を出力し，それ以外では何もしません．

@item -w @var{n}
@itemx --check-chars=@var{n}
@opindex -w
@opindex --check-chars
@c Compare at most @var{n} characters on each line (after skipping any specified
@c fields and characters).  By default the entire rest of the lines are
@c compared.
@c 
(指定されたすべてのフィールドと文字をスキップした後)それぞれの行の最大
@var{n}文字を比較します．デフォルトで，行の残り全体が比較されます．

@end table

@exitstatus


@node comm invocation
@c @section @command{comm}: Compare two sorted files line by line
@section @command{comm}: 二つのソートされた行と行の比較

@pindex comm
@cindex line-by-line comparison
@cindex comparing sorted files

@c @command{comm} writes to standard output lines that are common, and lines
@c that are unique, to two input files; a file name of @samp{-} means
@c standard input.  Synopsis:
@c 
@command{comm}は，二つの入力ファイルの共通の行とユニークな行を標準出力
に書き出します．@samp{-}のファイル名は標準入力を意味します．概要です．

@example
comm [@var{option}]@dots{} @var{file1} @var{file2}
@end example

@vindex LC_COLLATE
@c Before @command{comm} can be used, the input files must be sorted using the
@c collating sequence specified by the @env{LC_COLLATE} locale.
@c If an input file ends in a non-newline
@c character, a newline is silently appended.  The @command{sort} command with
@c no options always outputs a file that is suitable input to @command{comm}.
@c 
@command{comm}を使用する前に，@env{LC_COLLATE}ロカールで指定された順番
に入力ファイルをソートする必要があります．入力ファイルが改行文字で終ら
ない場合，改行は暗黙に付加されます．オプションを用いない@command{sort}
コマンドは，@command{comm}の入力に適したファイルを常に出力します．

@cindex differing lines
@cindex common lines
@c With no options, @command{comm} produces three-column output.  Column one
@c contains lines unique to @var{file1}, column two contains lines unique
@c to @var{file2}, and column three contains lines common to both files.
@c Columns are separated by a single TAB character.
@c 
オプションが無い場合，@command{comm}は三列の出力を生成します．一列目は
@var{file1}のユニークな行を含み，二列目は@var{file2}のユニークな行を含
み，三列目は両方のファイルに共通な列を含みます．列は単一のTAB文字で分
離されます．
@c FIXME: when there's an option to supply an alternative separator
@c string, append `by default' to the above sentence.

@opindex -1
@opindex -2
@opindex -3
@c The options @option{-1}, @option{-2}, and @option{-3} suppress printing of
@c the corresponding columns.  Also see @ref{Common options}.
@c 
オプションの@option{-1}，@option{-2}，そして@option{-3}は，対応する列
の出力を抑制します．@ref{Common options}も参照してください．

@c Unlike some other comparison utilities, @command{comm} has an exit
@c status that does not depend on the result of the comparison.
@c Upon normal completion @command{comm} produces an exit code of zero.
@c If there is an error it exits with nonzero status.
@c 
他の比較ユーティリティとは異なり，@command{comm}は比較の結果に依存しな
い終了ステータスがあります．上記の通常の比較では，@command{comm}はゼロ
のコードで終了します．エラーがあった場合，ゼロでないステータスで終了し
ます．

@node tsort invocation
@c @section @command{tsort}: Topological sort
@section @command{tsort}: 位相幾何学的なソート

@pindex tsort
@cindex topological sort

@c @command{tsort} performs a topological sort on the given @var{file}, or
@c standard input if no input file is given or for a @var{file} of
@c @samp{-}.  For more details and some history, see @ref{tsort background}.
@c Synopsis:
@c 
@command{tsort}は，位相幾何学的なソートを，与えられた@var{file}，また
は入力ファイルが与えられない場合や@samp{-}のファイルに対しては標準入力
で実行します．詳細とちょっとした歴史は@ref{tsort background}を参照して
ください．概要です．

@example
tsort [@var{option}] [@var{file}]
@end example

@c @command{tsort} reads its input as pairs of strings, separated by blanks,
@c indicating a partial ordering.  The output is a total ordering that
@c corresponds to the given partial ordering.
@c 
@command{tsort}は，その入力を文字列の組で，空白で分離されていて，不完
全な順序で示されているものとして読み込みます．出力は，与えられた不完全
な順序に対応する完全な順序になります．

@c For example
@c 
例えば以下のようにします．

@example
tsort <<EOF
a b c
d
e f
b c d e
EOF
@end example

@noindent
@c will produce the output
@c 
これは以下の出力を生成します．

@example
a
b
c
d
e
f
@end example

@c Consider a more realistic example.
@c You have a large set of functions all in one file, and they may all be
@c declared static except one.  Currently that one (say @code{main}) is the
@c first function defined in the file, and the ones it calls directly follow
@c it, followed by those they call, etc.  Let's say that you are determined
@c to take advantage of prototypes, so you have to choose between declaring
@c all of those functions (which means duplicating a lot of information from
@c the definitions) and rearranging the functions so that as many as possible
@c are defined before they are used.  One way to automate the latter process
@c is to get a list for each function of the functions it calls directly.
@c Many programs can generate such lists.  They describe a call graph.
@c Consider the following list, in which a given line indicates that the
@c function on the left calls the one on the right directly.
@c 
より現実的な例を考えてみましょう．一つのファイルに大きなすべての関数の
セットがあり，一つ以外のすべてがスタティックに宣言されていると仮定しま
す．現在，それ(いわゆる@code{main})はファイルの最初に定義されていて，
それから直接呼び出されるものが続き，それらが呼び出すものがそれに続いて
いる，といったようになっています．さて，プロトタイプの利点が決定すると，
それらの関数の宣言(定義からのたくさんの情報が重複していることを意味し
ます)の関係を選択し，それらが使用される前にできるだけ多くの関数の順番
を整理することになるでしょう，それ以降の処理を自動化する一つの方法とし
て，直接呼ばれるそれぞれの関数のリストを入手することがあげられます．そ
のようなリストを生成することが可能なプログラムはたくさんあります．それ
らはグラフと呼ばれる物を記述します．それぞれの行で，左の関数が右の関数
を直接呼び出すことを示している以下のリストを考えてみましょう．

@example
main parse_options
main tail_file
main tail_forever
tail_file pretty_name
tail_file write_header
tail_file tail
tail_forever recheck
tail_forever pretty_name
tail_forever write_header
tail_forever dump_remainder
tail tail_lines
tail tail_bytes
tail_lines start_lines
tail_lines dump_remainder
tail_lines file_lines
tail_lines pipe_lines
tail_bytes xlseek
tail_bytes start_bytes
tail_bytes dump_remainder
tail_bytes pipe_bytes
file_lines dump_remainder
recheck pretty_name
@end example

@c then you can use @command{tsort} to produce an ordering of those
@c functions that satisfies your requirement.
@c 
そのとき，要求を満足するようにそれらの関数の順番を生成するため，
@command{tsort}を使用することが可能です．

@example
example$ tsort call-graph | tac
dump_remainder
start_lines
file_lines
pipe_lines
xlseek
start_bytes
pipe_bytes
tail_lines
tail_bytes
pretty_name
write_header
tail
recheck
parse_options
tail_file
tail_forever
main
@end example

@c @command{tsort} detects any cycles in the input and writes the first cycle
@c encountered to standard error.
@c 
@command{tsort}は入力内の循環を検出し，出現した最初の循環部分を標準エ
ラーに書き出します．

@c Note that for a given partial ordering, generally there is no unique
@c total ordering.  In the context of the call graph above, the function
@c @code{parse_options} may be placed anywhere in the list as long as it
@c precedes @code{main}.
@c 
与えられた不完全な順序が，一般に唯一の完全な順序でないことに注意してく
ださい．上記の例の状況では，関数@code{parse_options}は，@code{main}の
前であればリストのどこにあってもかまいません．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは，@option{--help}と@option{--version}のみです．
@xref{Common options}.

@node tsort background
@c @section @command{tsort}: Background
@section @command{tsort}: 背景

@c @command{tsort} exists because very early versions of the Unix linker processed
@c an archive file exactly once, and in order.  As @command{ld} read each object
@c in the archive, it decided whether it was needed in the program based on
@c whether it defined any symbols which were undefined at that point in
@c the link.
@c 
@command{tsort}は，初期のUnixのバージョンのリンカで，アーカイブファイ
ルを正確に一度だけ正しい順序で処理するために存在しています．
@command{ld}はそれぞれのオブジェクトをアーカイブから読み出すので，プロ
グラムで基本となるものが必要かどうか，リンク時に未定義のシンボルが定義
されているかどうかは明確です．

@c This meant that dependencies within the archive had to be handled
@c specially.  For example, @code{scanf} probably calls @code{read}.  That means
@c that in a single pass through an archive, it was important for @code{scanf.o}
@c to appear before read.o, because otherwise a program which calls
@c @code{scanf} but not @code{read} might end up with an unexpected unresolved
@c reference to @code{read}.
@c 
これは，アーカイブでの依存性を特別処理する必要があったことを意味します．
例えば，@code{scanf}はおそらく@code{read}を呼び出します．それは，一度
アーカイブ全体を見渡すとき，@code{scanf.o}が@code{read.o}の前に現れる
ことが重要だということで，そうでなければ，@code{scanf}を呼び出している
が，@code{read}を呼び出していないプログラムで，期待していない未解決の
@code{read}への参照に結局なってしまうからです．

@c The way to address this problem was to first generate a set of
@c dependencies of one object file on another.  This was done by a shell
@c script called @command{lorder}.  The GNU tools don't provide a version of
@c lorder, as far as I know, but you can still find it in BSD
@c distributions.
@c 
この問題を解決する方法は，最初にオブジェクトファイル内の依存性を生成す
ることです．これは，@command{lorder}と呼ばれるシェルスクリプトで行なわ
れていました．GNUツールは，私の知る限りlorderを用いるバージョンを提供
していませんが，BSDの配布物ではまだ見つかるはずです．

@c Then you ran @command{tsort} over the @command{lorder} output, and you used the
@c resulting sort to define the order in which you added objects to the archive.
@c 
@command{lorder}の出力で@command{tsort}を実行すると，アーカイブに追加
したオブジェクトの定義順を並べ替えた結果を使用することが可能になります．

@c This whole procedure has been obsolete since about 1980, because
@c Unix archives now contain a symbol table (traditionally built by
@c @command{ranlib}, now generally built by @command{ar} itself), and the Unix
@c linker uses the symbol table to effectively make multiple passes over
@c an archive file.
@c 
1980年以降，Unixのアーカイブにはシンボル表が含まれていて(伝統的に
@command{ranlib}で構築され，今では@command{ar}自身で構築されます)，
Unixのリンカは，アーカイブファイル全体を何回も効率的に処理するため，そ
のシンボル表を使用するので，この一連の処理は時代遅れです．

@c Anyhow, that's where tsort came from.  To solve an old problem with
@c the way the linker handled archive files, which has since been solved
@c in different ways.
@c 
いずれにせよ，こういうことで@command{tsort}は生まれました．古い問題を
解決するためにリンカがアーカイブファイルを処理する方法で，それは別の方
法で解決されています．

@exitstatus


@node ptx invocation
@c @section @command{ptx}: Produce permuted indexes
@section @command{ptx}: 並べ替えた索引の生成

@pindex ptx

@c @command{ptx} reads a text file and essentially produces a permuted index, with
@c each keyword in its context.  The calling sketch is either one of:
@c 
@command{ptx}は，テキストファイルを読み込み，その内容のそれぞれのキー
ワードを用いて，並べ替えられた索引を本来は生成します．呼び出しの形態は
以下の一つです．

@example
ptx [@var{option} @dots{}] [@var{file} @dots{}]
ptx -G [@var{option} @dots{}] [@var{input} [@var{output}]]
@end example

@c The @option{-G} (or its equivalent: @option{--traditional}) option disables
@c all @sc{gnu} extensions and reverts to traditional mode, thus introducing some
@c limitations and changing several of the program's default option values.
@c When @option{-G} is not specified, @sc{gnu} extensions are always enabled.
@c @sc{gnu} extensions to @command{ptx} are documented wherever appropriate in this
@c document.  For the full list, see @xref{Compatibility in ptx}.
@c 
@option{-G}(または同等の: @option{--traditional})オプションは，全ての
@sc{gnu}拡張を利用不可にし，伝統的なモードに切替えるので，いくつか制限
があり，そしてプログラムのオプションデフォルト値を変更します．
@option{-G}が指定されていない場合，@sc{gnu}拡張は常に利用可能です．
@command{ptx}の@sc{gnu}拡張は，このドキュメントに適切に文章化されてい
ます．完全なリストは，@xref{Compatibility in ptx}.

@c Individual options are explained in the following sections.
@c 
個別のオプションは，以下のセクションで説明します．

@c When @sc{gnu} extensions are enabled, there may be zero, one or several
@c @var{file}s after the options.  If there is no @var{file}, the program
@c reads the standard input.  If there is one or several @var{file}s, they
@c give the name of input files which are all read in turn, as if all the
@c input files were concatenated.  However, there is a full contextual
@c break between each file and, when automatic referencing is requested,
@c file names and line numbers refer to individual text input files.  In
@c all cases, the program outputs the permuted index to the standard
@c output.
@c 
@sc{gnu}拡張が利用可能なとき，ゼロ，一つ，または複数の@var{file}をオプ
ションの後に続けてかまいません．@var{file}が無い場合，プログラムは標準
入力から読み込みます．一つまたは複数@var{file}ある場合，全ての入力ファ
イルが連結されているかのように，順番に全て読み込まれる入力ファイル名に
なります．しかし，それぞれのファイルの間に完全に文脈の終りが有り，自動
的な参照が要求されるとき，ファイル名と行番号は，入力ファイルの個別のテ
キストを参照します．全ての状況で，プログラムは並べ替えられた索引を標準
出力に書き出します．

@c When @sc{gnu} extensions are @emph{not} enabled, that is, when the program
@c operates in traditional mode, there may be zero, one or two parameters
@c besides the options.  If there are no parameters, the program reads the
@c standard input and outputs the permuted index to the standard output.
@c If there is only one parameter, it names the text @var{input} to be read
@c instead of the standard input.  If two parameters are given, they give
@c respectively the name of the @var{input} file to read and the name of
@c the @var{output} file to produce.  @emph{Be very careful} to note that,
@c in this case, the contents of file given by the second parameter is
@c destroyed.  This behavior is dictated by System V @command{ptx}
@c compatibility; @sc{gnu} Standards normally discourage output parameters not
@c introduced by an option.
@c 
@sc{gnu}拡張が利用可能で@emph{ない}とき，すなわち，伝統的なモードでプ
ログラムが動作しているとき，ゼロ，一つ，または二つのパラメータをオプショ
ンの後に続けてかまもいません．パラメータが無い場合，プログラムは標準入
力を読み込み，標準出力に並べ替えた索引を生成します．一つのパラメータの
みの場合，それは標準入力の代わりに読み込まれるテキスト@var{input}を指
名します．二つのパラメータが与えられた場合，それらはそれぞれ，読み込ま
れる@var{input}ファイル名と，生成する@var{output}ファイル名を与えます．
この場合，二番目のパラメータとして与えられるファイルの内容が壊れること
に@emph{十分注意して}ください．この動作は，System V @command{ptx}互換
で規定されています．@sc{gnu}の標準は，オプションで導入されない出力パラ
メータを防止します．

@c Note that for @emph{any} file named as the value of an option or as an
@c input text file, a single dash @kbd{-} may be used, in which case
@c standard input is assumed.  However, it would not make sense to use this
@c convention more than once per program invocation.
@c 
@emph{あらゆる}ファイルは，オプション値や入力テキストファイルとして指
名され，単一のダッシュ@kbd{-}を使用でき，その場合は標準入力と考えられ
ます．しかし，プログラムの呼び出しに一回以上，この慣習を使用する意味は
ありません．

@menu
* General options in ptx::      Options which affect general program behavior.
* Charset selection in ptx::    Underlying character set considerations.
* Input processing in ptx::     Input fields, contexts, and keyword selection.
* Output formatting in ptx::    Types of output format, and sizing the fields.
* Compatibility in ptx::
@end menu


@node General options in ptx
@c @subsection General options
@subsection 一般的なオプション

@table @samp

@item -C
@itemx --copyright
@c Print a short note about the copyright and copying conditions, then
@c exit without further processing.
@c 
著作権とコピー条件の短いメモを出力し，それ以上何も処理せず終了します．

@item -G
@itemx --traditional
@c As already explained, this option disables all @sc{gnu} extensions to
@c @command{ptx} and switches to traditional mode.
@c 
既に拡張されているので，このオプションは，@command{ptx}に対する全ての
@sc{gnu}拡張を利用不可にし，伝統的なモードに切替えます．

@item --help
@c Print a short help on standard output, then exit without further
@c processing.
@c 
短いヘルプを標準出力に出力し，それ以上何も処理せず終了します．

@item --version
@c Print the program version on standard output, then exit without further
@c processing.
@c 
プログラムのバージョンを標準出力に出力し，それ以上何も処理せずに終了し
ます．

@end table

@exitstatus


@node Charset selection in ptx
@c @subsection Charset selection
@subsection 文字セットの選択

@c FIXME:  People don't necessarily know what an IBM-PC was these days.
@c 
@c As it is set up now, the program assumes that the input file is coded
@c using 8-bit ISO 8859-1 code, also known as Latin-1 character set,
@c @emph{unless} it is compiled for MS-DOS, in which case it uses the
@c character set of the IBM-PC.  (@sc{gnu} @command{ptx} is not known to work on
@c smaller MS-DOS machines anymore.)  Compared to 7-bit @acronym{ASCII}, the set
@c of characters which are letters is different; this alters the behavior
@c of regular expression matching.  Thus, the default regular expression
@c for a keyword allows foreign or diacriticized letters.  Keyword sorting,
@c however, is still crude; it obeys the underlying character set ordering
@c quite blindly.
@c 
現在セットアップされているので，プログラムは，入力ファイルが8ビット
ISO-8859-1コードを使用して符号化されていると考え，Latin-1文字セットだ
ということも分かりますが，それは，MS-DOSでコンパイル@emph{されていない
場合}で，その場合はIBM-PCの文字セットを使用します．(@sc{gnu}
@command{ptx}を，より小さいMS-DOSマシンで動作させる方法が分かりません．)
7-bit @acronym{ASCII}とは異なり，文字である文字セットは別物です．これ
は正規表現のマッチの動作を変更します．そのため，キーワードに対するデフォ
ルトの正規表現で，外国や発音記号の文字が可能となります．しかし，キーワー
ドのソートはそのままです．それは，全く盲目的に基礎的な文字セットの順序
に従います．

@table @samp

@item -f
@itemx --ignore-case
@c Fold lower case letters to upper case for sorting.
@c 
ソートに対し，小文字を大文字にまとめます．

@end table


@node Input processing in ptx
@c @subsection Word selection and input processing
@subsection 単語の選択と入力の処理

@table @samp

@item -b @var{file}
@item --break-file=@var{file}

@c This option provides an alternative (to @option{-W}) method of describing
@c which characters make up words.  It introduces the name of a
@c file which contains a list of characters which can@emph{not} be part of
@c one word; this file is called the @dfn{Break file}.  Any character which
@c is not part of the Break file is a word constituent.  If both options
@c @option{-b} and @option{-W} are specified, then @option{-W} has precedence and
@c @option{-b} is ignored.
@c 
このオプションは，単語を生成する文字の記述方法(@option{-W})の代替物を
提供します．それは，単語の部分にならない文字のリストを含むファイル名を
導入し，このファイルは@dfn{ブレークファイル(Break file)}と呼ばれます．
ブレークファイルの一部でないあらゆる文字は単語の要素です．@option{-b}
と@option{-W}を両方指定した場合，@option{-W}が優先され@option{-b}は無
視されます．

@c When @sc{gnu} extensions are enabled, the only way to avoid newline as a
@c break character is to write all the break characters in the file with no
@c newline at all, not even at the end of the file.  When @sc{gnu} extensions
@c are disabled, spaces, tabs and newlines are always considered as break
@c characters even if not included in the Break file.
@c 
@sc{gnu}拡張が利用可能な場合，改行をブレーク文字とすることを避ける唯一
の方法で，ファイルの終りにさえ改行が全く無いファイルに，全てのブレーク
文字を書くことでできます．@sc{gnu}拡張が利用不可能な場合，スペース，タ
ブ，そして改行は，ブレークファイルに含まれていない場合でも，常にブレー
ク文字だと考慮されます．

@item -i @var{file}
@itemx --ignore-file=@var{file}

@c The file associated with this option contains a list of words which will
@c never be taken as keywords in concordance output.  It is called the
@c @dfn{Ignore file}.  The file contains exactly one word in each line; the
@c end of line separation of words is not subject to the value of the
@c @option{-S} option.
@c 
このオプションで関連付けられたファイルは，用語索引の出力でキーワードと
されない単語のリストを含みます．それは@dfn{無視ファイル(Ignore file)} 
と呼ばれます．ファイルは，正確にそれぞれの行に一単語を含みます．単語を
分ける行の終りは，@option{-S}オプションの値を適用されません．

@c There is a default Ignore file used by @command{ptx} when this option is
@c not specified, usually found in @file{/usr/local/lib/eign} if this has
@c not been changed at installation time.  If you want to deactivate the
@c default Ignore file, specify @code{/dev/null} instead.
@c 
このオプションが指定されない場合，デフォルトの無視ファイルが
@command{ptx}で使用され，インストール時に変更されていない場合，通常は
@file{/usr/local/lib/eign}で見つかります．デフォルトの無視ファイルの影
響を無くしたい場合，代わりに@code{/dev/null}を指定してください．

@item -o @var{file}
@itemx --only-file=@var{file}

@c The file associated with this option contains a list of words which will
@c be retained in concordance output; any word not mentioned in this file
@c is ignored.  The file is called the @dfn{Only file}.  The file contains
@c exactly one word in each line; the end of line separation of words is
@c not subject to the value of the @option{-S} option.
@c 
このオプションで関連付けられたファイルは，用語索引の出力に維持される単
語のリストを含み，このファイルで述べていないあらゆる単語は無視されます．
ファイルは@dfn{オンリーファイル(Only file)}と呼ばれています．ファイル
は，正確にそれぞれの行に一単語を含みます．単語を分ける行の終りは，
@option{-S}オプションの値を適用されません．

@c There is no default for the Only file.  When both an Only file and an
@c Ignore file are specified, a word is considered a keyword only
@c if it is listed in the Only file and not in the Ignore file.
@c 
オンリーファイルにデフォルトはありません．オンリーファイルと無視ファイ
ルの両方にある場合，オンリーファイルで与えられ，無視ファイルで与えられ
ない単語のみキーワードに適用されます．

@item -r
@itemx --references

@c On each input line, the leading sequence of non-white space characters will be
@c taken to be a reference that has the purpose of identifying this input
@c line in the resulting permuted index.  For more information about reference
@c production, see @xref{Output formatting in ptx}.
@c Using this option changes the default value for option @option{-S}.
@c 
それぞれの入力行で，空白文字でない前置された並びは，結果として得られる
並べ替えされた索引で，この入力行を識別する目的の参照として受け取られま
す．参照生成に関するより多くの情報は，@xref{Output formatting in ptx}. 
このオプションの使用で，オプション@option{-S}に対するデフォルト値を変
更します．

@c Using this option, the program does not try very hard to remove
@c references from contexts in output, but it succeeds in doing so
@c @emph{when} the context ends exactly at the newline.  If option
@c @option{-r} is used with @option{-S} default value, or when @sc{gnu} extensions
@c are disabled, this condition is always met and references are completely
@c excluded from the output contexts.
@c 
このオプションを使用すると，プログラムは出力の文脈からの参照の削除の試
みが非常に難しくなりますが，文脈の終りが正確に改行で終る@emph{とき}，
そうすることに成功します．オプション@option{-r}が@option{-S}デフォルト
値とともに使用された場合や，@sc{gnu}拡張が利用不可能なとき，この条件は
常に満たされ，参照は完全に出力文脈から除外されます．

@item -S @var{regexp}
@itemx --sentence-regexp=@var{regexp}

@c This option selects which regular expression will describe the end of a
@c line or the end of a sentence.  In fact, this regular expression is not
@c the only distinction between end of lines or end of sentences, and input
@c line boundaries have no special significance outside this option.  By
@c default, when @sc{gnu} extensions are enabled and if @option{-r} option is not
@c used, end of sentences are used.  In this case, this @var{regex} is
@c imported from @sc{gnu} Emacs:
@c 
このオプションは，行末や文の終りを記述する正規表現を選択します．実際，
この正規表現の効果以外に，行末や文の終わりのには他の区別があり，入力行
の境界は，このオプションの外で特別な重要性はありません．デフォルトで，
@sc{gnu}拡張が使用可能なときや，@option{-r}オプションが使用されていな
い場合，文の終りが使用されます．この場合，正確な@var{regex}は@sc{gnu}
emacsから取り込まれます．

@example
[.?!][]\"')@}]*\\($\\|\t\\|  \\)[ \t\n]*
@end example

@c Whenever @sc{gnu} extensions are disabled or if @option{-r} option is used, end
@c of lines are used; in this case, the default @var{regexp} is just:
@c 
@sc{gnu}拡張が使用不可能なときや，@option{-r}オプションが使用されてい
る場合は，常に行の終りが使用され，この場合デフォルトの@var{regexp}は以
下のようになります．

@example
\n
@end example

@c Using an empty @var{regexp} is equivalent to completely disabling end of
@c line or end of sentence recognition.  In this case, the whole file is
@c considered to be a single big line or sentence.  The user might want to
@c disallow all truncation flag generation as well, through option @option{-F
@c ""}.  @xref{Regexps, , Syntax of Regular Expressions, emacs, The GNU Emacs
@c Manual}.
@c 
空の@var{regexp}の使用は，行末と文の終りの認識を完全に不可能にすること
と同等です．この場合，ファイル全体が単一の大きな行や文と考えられます．
ユーザは，オプション@samp{-F ""}を通じて，全ての切り詰めフラグの生成を，
不許可にしたい場合もあります．@xref{Regexps, , Syntax of Regular
Expressions, emacs, The GNU Emacs Manual}.

@c When the keywords happen to be near the beginning of the input line or
@c sentence, this often creates an unused area at the beginning of the
@c output context line; when the keywords happen to be near the end of the
@c input line or sentence, this often creates an unused area at the end of
@c the output context line.  The program tries to fill those unused areas
@c by wrapping around context in them; the tail of the input line or
@c sentence is used to fill the unused area on the left of the output line;
@c the head of the input line or sentence is used to fill the unused area
@c on the right of the output line.
@c 
キーワードが入力行や文の最初で発生したとき，出力文脈の行の最初に，利用
されない領域を作成することもよくあります．キーワードが入力行や文の終り
近くで発生したとき，出力文脈の行の終りに利用されない領域を作成すること
もよくあります．プログラムは，その中の文脈の周りを包むことで，それらの
領域を補充しようとします．入力行や文の頭は，出力行の右の利用されていな
い行を補充するために使用されます．

@c As a matter of convenience to the user, many usual backslashed escape
@c sequences from the C language are recognized and converted to the
@c corresponding characters by @command{ptx} itself.
@c 
ユーザの利便性の問題として，C言語で見つかる，通常のバックスラッシュさ
れたエスケープ・シーケンスは認識され，@command{ptx}自身によって対応す
る文字に変換されます．

@item -W @var{regexp}
@itemx --word-regexp=@var{regexp}

@c This option selects which regular expression will describe each keyword.
@c By default, if @sc{gnu} extensions are enabled, a word is a sequence of
@c letters; the @var{regexp} used is @samp{\w+}.  When @sc{gnu} extensions are
@c disabled, a word is by default anything which ends with a space, a tab
@c or a newline; the @var{regexp} used is @samp{[^ \t\n]+}.
@c 
このオプションは，それぞれのキーワードを記述している正規表現を選択しま
す．デフォルトで，@sc{gnu}拡張が利用可能な場合，単語は文字の並びです．
使用される@var{regexp}は@samp{\w+}です．@sc{gnu}拡張が利用不可能な場合，
単語はデフォルトで，スペース，タブ，または改行で終るあらゆるものです．
使用される@var{regexp}は@samp{[^ \t\n]+}です．

@c An empty @var{regexp} is equivalent to not using this option.
@c @xref{Regexps, , Syntax of Regular Expressions, emacs, The GNU Emacs
@c Manual}.
@c 
空の@var{regexp}は，このオプションを使用しないのと同等で，デフォルト動
作になります．@xref{Regexps, , Syntax of Regular Expressions, emacs,
The GNU Emacs Manual}.

@c As a matter of convenience to the user, many usual backslashed escape
@c sequences, as found in the C language, are recognized and converted to
@c the corresponding characters by @command{ptx} itself.
@c 
ユーザの利便性の問題として，C言語で見つかる，多くの通常のバックスラッ
シュされたエスケープ・シーケンスは認識され，@command{ptx}自身によって
対応する文字に変換されます．

@end table


@node Output formatting in ptx
@c @subsection Output formatting
@subsection 出力の書式

@c Output format is mainly controlled by the @option{-O} and @option{-T} options
@c described in the table below.  When neither @option{-O} nor @option{-T} are
@c selected, and if @sc{gnu} extensions are enabled, the program chooses an
@c output format suitable for a dumb terminal.  Each keyword occurrence is
@c output to the center of one line, surrounded by its left and right
@c contexts.  Each field is properly justified, so the concordance output
@c can be readily observed.  As a special feature, if automatic
@c references are selected by option @option{-A} and are output before the
@c left context, that is, if option @option{-R} is @emph{not} selected, then
@c a colon is added after the reference; this nicely interfaces with @sc{gnu}
@c Emacs @code{next-error} processing.  In this default output format, each
@c white space character, like newline and tab, is merely changed to
@c exactly one space, with no special attempt to compress consecutive
@c spaces.  This might change in the future.  Except for those white space
@c characters, every other character of the underlying set of 256
@c characters is transmitted verbatim.
@c 
出力書式は，主に@option{-O}と@option{-T}オプションで制御され，それは以
下の表で記述されています．@option{-O}も@option{-T}も選択されていないと
きで，@sc{gnu}拡張が利用可能な場合，プログラムはdumb端末に適した出力書
式を選択します．それぞれのキーワードの生成は，出力を行の中心にし，周り
をその左右の文脈で囲います．それぞれのフィールドは適切で正しいものなの
で，用語索引の出力を容易に観察することが可能です．特別な特徴として，自
動的な参照がオプション@option{-A}で指定されていて，左の文脈の前に出力
されている，すなわち，オプション@option{-R}が選択されて@emph{いない}場
合，コロンが参照の後に追加されます．これは，@sc{gnu} Emacsが
@code{next-error}を処理することでうまく作用します．このデフォルト出力
書式では，改行やタブのようなそれぞれの空白文字は，正確に一つのスペース
に単に変換され，連続したスペースの圧縮は特に試みません．これは将来変更
されるかもしれません．これらの空白文字以外の，256文字の基本セットの全
ての他の文字は逐語的に転送されます．

@c Output format is further controlled by the following options.
@c 
出力書式は，以下のオプションで更に制御されます．

@table @samp

@item -g @var{number}
@itemx --gap-size=@var{number}

@c Select the size of the minimum white space gap between the fields on the
@c output line.
@c 
出力行のフィールド間の最小の空白の隙間を選択します．

@item -w @var{number}
@itemx --width=@var{number}

@c Select the maximum output width of each final line.  If references are
@c used, they are included or excluded from the maximum output width
@c depending on the value of option @option{-R}.  If this option is not
@c selected, that is, when references are output before the left context,
@c the maximum output width takes into account the maximum length of all
@c references.  If this option is selected, that is, when references are
@c output after the right context, the maximum output width does not take
@c into account the space taken by references, nor the gap that precedes
@c them.
@c 
それぞれの最終行の出力最大幅を選択します．参照が使用される場合，
@option{-R}オプションの値に依存して，それらは出力最大幅に含められたり
省かれたりします．これらのオプションが選択されていない場合，すなわち，
参照が左の文脈の前に出力されるとき，出力最大幅は全ての参照の最大長まで
考慮されます．このオプションが選択された場合，すなわち，参照が右の文脈
の後に出力されるとき，出力最大幅は参照が使用するスペースの量も，前にあ
る隙間も考慮されません．

@item -A
@itemx --auto-reference

@c Select automatic references.  Each input line will have an automatic
@c reference made up of the file name and the line ordinal, with a single
@c colon between them.  However, the file name will be empty when standard
@c input is being read.  If both @option{-A} and @option{-r} are selected, then
@c the input reference is still read and skipped, but the automatic
@c reference is used at output time, overriding the input reference.
@c 
自動的な参照を選択します．それぞれの入力行は，ファイル名と間に単一のコ
ロンを用いた行の序数で作成された自動的な参照を持ちます．しかし，標準入
力が読み込まれているときは，ファイル名は空です．@option{-A}と
@option{-r}の両方が選択された場合，入力参照は読み込まれスキップされま
すが，自動的な参照は出力時に利用され，それは入力参照に優先します．

@item -R
@itemx --right-side-refs

@c In the default output format, when option @option{-R} is not used, any
@c references produced by the effect of options @option{-r} or @option{-A} are
@c placed to the far right of output lines, after the right context.  With
@c default output format, when the @option{-R} option is specified, references
@c are rather placed at the beginning of each output line, before the left
@c context.  For any other output format, option @option{-R} is
@c ignored, with one exception:  with @option{-R} the width of references
@c is @emph{not} taken into account in total output width given by @option{-w}.
@c 
デフォルト出力書式で，オプション@option{-R}が使用されていないとき，オ
プション@option{-r}や@option{-A}の影響で生成されるあらゆる参照は，右の
文脈の後に，出力行の右端に与えられます．デフォルト出力書式で，オプショ
ン@option{-R}が指定された場合，参照は，左の文脈の前に，それぞれの出力
行の始めに代わりに与えられます．それ以外のあらゆる出力書式に対し，
@option{-R}が選択されたときは常に，参照の幅が@option{-w}で与えられた全
体の出力幅に含まれ@emph{ない}という事実以外，オプション@option{-R}はほ
とんど無視されます．

@c This option is automatically selected whenever @sc{gnu} extensions are
@c disabled.
@c 
@sc{gnu}拡張が利用不可能なときは，常にこのオプションは自動的に選択され
ます．

@item -F @var{string}
@itemx --flac-truncation=@var{string}

@c This option will request that any truncation in the output be reported
@c using the string @var{string}.  Most output fields theoretically extend
@c towards the beginning or the end of the current line, or current
@c sentence, as selected with option @option{-S}.  But there is a maximum
@c allowed output line width, changeable through option @option{-w}, which is
@c further divided into space for various output fields.  When a field has
@c to be truncated because it cannot extend beyond the beginning or the end of
@c the current line to fit in, then a truncation occurs.  By default,
@c the string used is a single slash, as in @option{-F /}.
@c 
このオプションは，文字列@var{string}の使用が報告された出力での，あらゆ
る切り詰めを要求します．ほとんどの出力フィールドは，オプション
@option{-S}が選択されたのと同様に，現在の行や現在の文の始めや終りに向
かって，理論的に展開されます．しかし，許可される出力行幅の最大値は存在
し，それはオプション@option{-w}で変更でき，そしてそれは様々な出力フィー
ルドに対しスペースで更に分割されます．現在の行に適するように，その行の
最初や終りまで伸ばすことができないためフィールドを切り詰める必要がある
とき，切り詰めが発生します．デフォルトで，使用される文字列は単一のスラッ
シュで，@samp{-F /}のようになります．

@c @var{string} may have more than one character, as in @option{-F ...}.
@c Also, in the particular case when @var{string} is empty (@option{-F ""}),
@c truncation flagging is disabled, and no truncation marks are appended in
@c this case.
@c 
@var{string}は一文字以上が可能で，@samp{-F ...}のようになります．また，
@var{string}が空(@samp{-F ""})となる特定の場合，切り詰めフラグは利用不
可能で，切り詰めマークはこの場合は現われません．

@c As a matter of convenience to the user, many usual backslashed escape
@c sequences, as found in the C language, are recognized and converted to
@c the corresponding characters by @command{ptx} itself.
@c 
ユーザの利便性の問題として，多くの通常の，C言語で見つかる，バックスペー
スされたエスケープシーケンスは認識され，@command{ptx}自身によって，対
応する文字に変換されます．

@item -M @var{string}
@itemx --macro-name=@var{string}

@c Select another @var{string} to be used instead of @samp{xx}, while
@c generating output suitable for @command{nroff}, @command{troff} or @TeX{}.
@c 
@code{nroff}，@code{troff}や@TeX{}に適した出力を生成している間，
@samp{xx}の代わりに，使用する他の@var{string}を選択します．

@item -O
@itemx --format=roff

@c Choose an output format suitable for @command{nroff} or @command{troff}
@c processing.  Each output line will look like:
@c 
@code{nroff}や@code{troff}の処理に適した出力書式を選択します．それぞれ
の出力行は以下のようになります．

@smallexample
.xx "@var{tail}" "@var{before}" "@var{keyword_and_after}" "@var{head}" "@var{ref}"
@end smallexample

@c so it will be possible to write a @samp{.xx} roff macro to take care of
@c the output typesetting.  This is the default output format when @sc{gnu}
@c extensions are disabled.  Option @option{-M} can be used to change
@c @samp{xx} to another macro name.
@c 
それで，出力の植字を処理するための，@samp{.xx} roffマクロを書くことが
可能になります．@sc{gnu}拡張が利用不可能な場合，これはデフォルト出力で
す．オプション@option{-M}は，@samp{xx}を他のマクロ名に変更するために使
用することが可能です．

@c In this output format, each non-graphical character, like newline and
@c tab, is merely changed to exactly one space, with no special attempt to
@c compress consecutive spaces.  Each quote character: @kbd{"} is doubled
@c so it will be correctly processed by @command{nroff} or @command{troff}.
@c 
この出力形式で，改行やタブのような，表示不可能なそれぞれの文字は，連続
したスペースを圧縮するという特別な試みを行わず，正確に一つのスペースに
単に変換されます．それぞれの引用文字：@kbd{"}は二重になるので，
@code{nroff}や@code{troff}で正しく処理されます．

@item -T
@itemx --format=tex

@c Choose an output format suitable for @TeX{} processing.  Each output
@c line will look like:
@c 
@TeX{}での処理に適した出力書式を選択します．それぞれの出力行は以下のよ
うになります．

@smallexample
\xx @{@var{tail}@}@{@var{before}@}@{@var{keyword}@}@{@var{after}@}@{@var{head}@}@{@var{ref}@}
@end smallexample

@noindent
@c so it will be possible to write a @code{\xx} definition to take care of
@c the output typesetting.  Note that when references are not being
@c produced, that is, neither option @option{-A} nor option @option{-r} is
@c selected, the last parameter of each @code{\xx} call is inhibited.
@c Option @option{-M} can be used to change @samp{xx} to another macro
@c name.
@c 
それで，出力の植字の処理するための@code{\xx}定義を書くことが可能になり
ます．参照が生成されないとき，すなはち，オプション@option{-A}もオプショ
ン@option{-r}も選択されていないとき，それぞれの@code{\xx}の最後のパラ
メータが抑制されることに注意してください．オプション@option{-M}は，
@samp{xx}を他のマクロ名に変更するために利用可能です．

@c In this output format, some special characters, like @kbd{$}, @kbd{%},
@c @kbd{&}, @kbd{#} and @kbd{_} are automatically protected with a
@c backslash.  Curly brackets @kbd{@{}, @kbd{@}} are protected with a
@c backslash and a pair of dollar signs (to force mathematical mode).  The
@c backslash itself produces the sequence @code{\backslash@{@}}.
@c Circumflex and tilde diacritical marks produce the sequence @code{^\@{ @}} and
@c @code{~\@{ @}} respectively.  Other diacriticized characters of the
@c underlying character set produce an appropriate @TeX{} sequence as far
@c as possible.  The other non-graphical characters, like newline and tab,
@c and all other characters which are not part of @acronym{ASCII}, are merely
@c changed to exactly one space, with no special attempt to compress
@c consecutive spaces.  Let me know how to improve this special character
@c processing for @TeX{}.
@c 
この出力書式では，@kbd{$}，@kbd{%}，@kbd{&}，@kbd{#}そして@kbd{_}のよ
うないくつかの特殊文字は，自動的にバックスラッシュで保護されます．弓カッ
コの@kbd{@{}，@kbd{@}}もバックスラッシュで保護されますが，(数学モード
を強制する)ドル記号の組でも囲まれます．バックスラッシュ自身は
@code{\backslash@{@}}の並びを生成します．曲折アクセント記号とティルデ
分音記号は，@code{^\@{ @}}と@code{~\@{ @}}の並びをそれぞれ生成します．
その他の基礎となる文字セットの分音文字は，適切な@TeX{}の並びを可能な限
り生成します．改行とタブのようなその他の表示不可能な文字と，
@acronym{ASCII}ではない全ての他の文字は，連続したスペースを圧縮すると
いう特別な試みを行わず，一つのスペースに単に変換されます．これらの特殊
文字を@TeX{}で処理する改善方法を知らせてください．

@end table


@node Compatibility in ptx
@c @subsection The @sc{gnu} extensions to @command{ptx}
@subsection @command{ptx}の@sc{gnu}拡張

@c This version of @command{ptx} contains a few features which do not exist in
@c System V @command{ptx}.  These extra features are suppressed by using the
@c @option{-G} command line option, unless overridden by other command line
@c options.  Some @sc{gnu} extensions cannot be recovered by overriding, so the
@c simple rule is to avoid @option{-G} if you care about @sc{gnu} extensions.
@c Here are the differences between this program and System V @command{ptx}.
@c 
この@command{ptx}のバージョンには，System V @command{ptx}には存在しな
いいくつかの特徴があります．これらの拡張された特徴は，他のコマンドライ
ンオプションで優先されない場合，@option{-G}コマンドラインオプションを
使用して抑制されます．@sc{gnu}拡張には，優先で元に戻すことができないも
のがあり，そのため，@sc{gnu}拡張を気にする場合，簡単な規則で
@option{-G}を避けるはずです．ここに，このプログラムとSystem V
@command{ptx}の間の違いがあります．

@itemize @bullet

@item
@c This program can read many input files at once, it always writes the
@c resulting concordance on standard output.  On the other hand, System V
@c @command{ptx} reads only one file and sends the result to standard output
@c or, if a second @var{file} parameter is given on the command, to that
@c @var{file}.
@c 
このプログラムは，一度に多くの入力ファイルを読むことが可能で，それは常
に，用語索引の結果を標準出力に書き出します．一方，System V
@command{ptx}は，一つのみファイルを読み込み，結果を標準出力に書き出す
か，二番目の@var{file}パラメータがコマンドで与えられている場合は，その
@var{file}に書き出します．

@c Having output parameters not introduced by options is a dangerous
@c practice which @sc{gnu} avoids as far as possible.  So, for using @command{ptx}
@c portably between @sc{gnu} and System V, you should always use it with a
@c single input file, and always expect the result on standard output.  You
@c might also want to automatically configure in a @option{-G} option to
@c @command{ptx} calls in products using @command{ptx}, if the configurator finds
@c that the installed @command{ptx} accepts @option{-G}.
@c 
オプションで導入されない出力パラメータがあると，@sc{gnu}ができる限り避
けようとしている危険な操作になります．そのため，@sc{gnu}とSystem Vの間
の移植性のある@command{ptx}を使用するため，単一の入力ファイルで常に使
用することに注意を払い，常に標準出力で結果を期待するべきです．配置する
ものが@option{-G}を受け入れる@command{ptx}がインストールされていること
が分かった場合，@command{ptx}を使用した製品での@command{ptx}の呼び出し
で，@option{-G}オプションを自動的に配置したいと思うかもしれません．

@item
@c The only options available in System V @command{ptx} are options @option{-b},
@c @option{-f}, @option{-g}, @option{-i}, @option{-o}, @option{-r}, @option{-t} and
@c @option{-w}.  All other options are @sc{gnu} extensions and are not repeated in
@c this enumeration.  Moreover, some options have a slightly different
@c meaning when @sc{gnu} extensions are enabled, as explained below.
@c 
System V @command{ptx}でのみ利用可能なオプションは，@option{-b}，
@option{-f}，@option{-g}，@option{-i}，@option{-o}，@option{-r}，
@option{-t}，そして@option{-w}です．全ての他のオプションは@sc{gnu}拡張
で，この列挙では繰り返しません．さらに，@sc{gnu}拡張が利用可能なとき，
わずかに意味が異なるオプションもあり，それは以下で記述します．

@item
@c By default, concordance output is not formatted for @command{troff} or
@c @command{nroff}.  It is rather formatted for a dumb terminal.  @command{troff}
@c or @command{nroff} output may still be selected through option @option{-O}.
@c 
デフォルトで，用語索引出力は@code{troff}や@code{nroff}に対して書式化さ
れません．それはむしろ，dumb端末に対する出力です．@code{troff}や
@code{nroff}への出力は，オプション@option{-O}を通じて選択してもかまい
ません．

@item
@c Unless @option{-R} option is used, the maximum reference width is
@c subtracted from the total output line width.  With @sc{gnu} extensions
@c disabled, width of references is not taken into account in the output
@c line width computations.
@c 
@option{-R}オプションが選択されない場合，最大の参照幅は出力行幅全体か
ら引いたものになります．@sc{gnu}拡張が利用不可能な場合，参照の幅は出力
行の幅の計算で考慮されません．

@item
@c All 256 characters, even @kbd{NUL}s, are always read and processed from
@c input file with no adverse effect, even if @sc{gnu} extensions are disabled.
@c However, System V @command{ptx} does not accept 8-bit characters, a few
@c control characters are rejected, and the tilde @kbd{~} is also rejected.
@c 
@kbd{NUL}を含む256文字全ては，たとえ@sc{gnu}拡張が利用不可能な場合でも，
常に入力ファイルから読み込まれ，問題となる影響もなく処理されます．しか
し，System V @command{ptx}は8ビット文字を受け入れず，いくつかの制御文
字は削除され，チルダ@kbd{~}は処分されます．

@item
@c Input line length is only limited by available memory, even if @sc{gnu}
@c extensions are disabled.  However, System V @command{ptx} processes only
@c the first 200 characters in each line.
@c 
入力行の長さは，@sc{gnu}拡張が利用できない場合でさえ，利用可能なメモリ
でのみ制限されます．しかしSystem V @command{ptx}は，それぞれの行の最初
の200文字のみ処理します．

@item
@c The break (non-word) characters default to be every character except all
@c letters of the underlying character set, diacriticized or not.  When @sc{gnu}
@c extensions are disabled, the break characters default to space, tab and
@c newline only.
@c 
ブレーク(単語ではない)文字は，全ての基礎となる文字セット以外，分音記号
の有無によらず，全ての文字をデフォルトとします．@sc{gnu}拡張が利用不可
能なとき，ブレーク文字は，スペース，タブと改行のみをデフォルトとします．

@item
@c The program makes better use of output line width.  If @sc{gnu} extensions
@c are disabled, the program rather tries to imitate System V @command{ptx},
@c but still, there are some slight disposition glitches this program does
@c not completely reproduce.
@c 
プログラムは，出力行の幅でより良いものを使用します．@sc{gnu}拡張が利用
不可能な場合，プログラムは，代わりにSystem V @command{ptx}を模倣しよう
としますが，このプログラムが完全に再現していない，わずかな配置不備もま
だあります．

@item
@c The user can specify both an Ignore file and an Only file.  This is not
@c allowed with System V @command{ptx}.
@c 
ユーザは，IgnoreファイルとOnlyファイルの両方を指定できます．これは，
System V @command{ptx}では許可されません．

@end itemize


@node Operating on fields within a line
@c @chapter Operating on fields within a line
@chapter 行のフィールドの処理

@menu
* cut invocation::              Print selected parts of lines.
* paste invocation::            Merge lines of files.
* join invocation::             Join lines on a common field.
@end menu


@node cut invocation
@c @section @command{cut}: Print selected parts of lines
@section @command{cut}: 行の選択した部分の出力

@pindex cut
@c @command{cut} writes to standard output selected parts of each line of each
@c input file, or standard input if no files are given or for a file name of
@c @samp{-}.  Synopsis:
@c 
@command{cut}は，それぞれの入力ファイルや，ファイルが与えられない場合
や@samp{-}のファイル名に対しては標準入力の，それぞれの行の選択された部
分を標準出力に書き出します．概要です．

@example
cut [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c In the table which follows, the @var{byte-list}, @var{character-list},
@c and @var{field-list} are one or more numbers or ranges (two numbers
@c separated by a dash) separated by commas.  Bytes, characters, and
@c fields are numbered starting at 1.  Incomplete ranges may be
@c given: @option{-@var{m}} means @samp{1-@var{m}}; @samp{@var{n}-} means
@c @samp{@var{n}} through end of line or last field.  The list elements
@c can be repeated, can overlap, and can be specified in any order; but
@c the selected input is written in the same order that it is read, and
@c is written exactly once.
@c 
以下の表で，@var{byte-list}，@var{character-list}，そして
@var{field-list}は，一つ以上の数字またはカンマで分けられた(ダッシュで
分けられた二つの数字の)範囲です．バイト，文字，そしてフィールドは，1で
始まる番号がつきます．不完全な範囲を与えることができます．
@samp{-@var{m}}は@samp{1-@var{m}}を意味します．@samp{@var{n}-}は，
@samp{@var{n}}から行末やフィールドの終りまでを意味します．

@c The program accepts the following options.  Also see @ref{Common
@c options}.
@c 
このプログラムは以下のオプションも受け入れます．@ref{Common options}も
参照してください．

@table @samp

@item -b @var{byte-list}
@itemx --bytes=@var{byte-list}
@opindex -b
@opindex --bytes
@c Print only the bytes in positions listed in @var{byte-list}.  Tabs and
@c backspaces are treated like any other character; they take up 1 byte.
@c If an output delimiter is specified, (see the description of
@c @option{--output-delimiter}), then output that string between
@c ranges of selected bytes.
@c 
@var{byte-list}でリストアップされた位置にあるバイトのみを出力します．
タブとバックスペースは他の文字と同様に扱われます．それらは1バイト使用
します．出力の分離文字が指定されている場合(@option{--output-delimiter} 
を参照して下さい)，選択したバイトの範囲の間の文字列を出力します．

@item -c @var{character-list}
@itemx --characters=@var{character-list}
@opindex -c
@opindex --characters
@c Print only characters in positions listed in @var{character-list}.
@c The same as @option{-b} for now, but internationalization will change
@c that.  Tabs and backspaces are treated like any other character; they
@c take up 1 character.
@c If an output delimiter is specified, (see the description of
@c @option{--output-delimiter}), then output that string between
@c ranges of selected bytes.
@c 
@var{character-list}にリストアップされている位置にある文字のみを出力し
ます．現在は@option{-b}と同じですが，国際化でそれが変更される可能性が
あります．タブとバックスペースは他の文字と同様に扱われます．それらは1 
バイト使用します．出力の分離文字が指定されている場合
(@option{--output-delimiter} を参照して下さい)，選択したバイトの範囲の
間の文字列を出力します．

@item -f @var{field-list}
@itemx --fields=@var{field-list}
@opindex -f
@opindex --fields
@c Print only the fields listed in @var{field-list}.  Fields are
@c separated by a TAB character by default.
@c Also print any line that contains no delimiter character, unless
@c the @option{--only-delimited} (@option{-s}) option is specified
@c 
@var{field-list}にリストアップされたフィールドのみを出力します．デフォ
ルトで，フィールドはTAB文字で分けられています．
@option{--only-delimited} (@option{-s})オプションが指定されない限り，
デリミタ文字の無い行も出力されます．

@item -d @var{input_delim_byte}
@itemx --delimiter=@var{input_delim_byte}
@opindex -d
@opindex --delimiter
@c For @option{-f}, fields are separated in the input by the first character
@c in @var{input_delim_byte} (default is TAB).
@c 
@option{-f}に対し，フィールドは，@var{input_delim_byte}の最初の文字に
よって，入力を分離したものになります．(デフォルトはTABです)．

@item -n
@opindex -n
@c Do not split multi-byte characters (no-op for now).
@c 
マルチバイトの文字を分けません(現在何もしません)．

@item -s
@itemx --only-delimited
@opindex -s
@opindex --only-delimited
@c For @option{-f}, do not print lines that do not contain the field separator
@c character.  Normally, any line without a field separator is printed verbatim.
@c 
@option{-f}に対し，フィールド分離文字を含まない列を出力しません．通常，
フィールド分離文字が無い行は，そのまま出力されます．

@itemx --output-delimiter=@var{output_delim_string}
@opindex --output-delimiter
@c With @option{-f}, output fields are separated by @var{output_delim_string}.
@c The default with @option{-f} is to use the input delimiter.
@c When using @option{-b} or @option{-c} to select ranges of byte or
@c character offsets (as opposed to ranges of fields),
@c output @var{output_delim_string} between ranges of selected bytes.
@c 
@option{-f}に対し，出力フィールドは，@var{output_delim_string}で分けら
れます．デフォルトは入力の分離文字を使用します．バイトや文字のオフセッ
トの範囲を選択するために@option{-b}や@option{-c}を使用しているとき，選
択したバイト数の範囲の間に@var{output_delim_string}を出力します．

@end table

@exitstatus


@node paste invocation
@c @section @command{paste}: Merge lines of files
@section @command{paste}: ファイルの行を統合します

@pindex paste
@cindex merging files

@c @command{paste} writes to standard output lines consisting of sequentially
@c corresponding lines of each given file, separated by a TAB character.
@c Standard input is used for a file name of @samp{-} or if no input files
@c are given.
@c 
@command{paste}は，与えられたそれぞれのファイルの，順番的に対応してい
る行を，TAB文字で分離しながら標準出力に書き出します．@samp{-}のファイ
ル名に対して，または入力ファイルが与えられない場合，標準入力が使用され
ます．

@c For example:
@c 
例えば以下のようになります．

@example
$ cat num2
1
2
$ cat let3
a
b
c
$ paste num2 let3
1       a
2       b
        c
@end example

@c Synopsis:
@c 
概要です．

@example
paste [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -s
@itemx --serial
@opindex -s
@opindex --serial
@c Paste the lines of one file at a time rather than one line from each
@c file.  Using the above example data:
@c 
それぞれのファイルから一行ではなく，一度に一つのファイルの行をペースト
します．

@example
$ paste -s num2 let3
1       2
a       b       c
@end example

@item -d @var{delim-list}
@itemx --delimiters=@var{delim-list}
@opindex -d
@opindex --delimiters
@c Consecutively use the characters in @var{delim-list} instead of
@c TAB to separate merged lines.  When @var{delim-list} is
@c exhausted, start again at its beginning.  Using the above example data:
@c 
統合される行の分離文字TABの代わりに，@var{delim-list}の文字を順番に使
用します．@var{delim-list}が使い尽くされたとき，最初から再び開始します．

@example
$ paste -d '%_' num2 let3 num2
1%a_1
2%b_2
%c_
@end example

@end table

@exitstatus


@node join invocation
@c @section @command{join}: Join lines on a common field
@section @command{join}: 共通のフィールドで行を結合

@pindex join
@cindex common field, joining on

@c @command{join} writes to standard output a line for each pair of input
@c lines that have identical join fields.  Synopsis:
@c 
@command{join}は，同一の結合フィールドを持つそれぞれの入力行の組に対し，
一行を標準出力に書き出します．概要です．

@example
join [@var{option}]@dots{} @var{file1} @var{file2}
@end example

@vindex LC_COLLATE
@c Either @var{file1} or @var{file2} (but not both) can be @samp{-},
@c meaning standard input.  @var{file1} and @var{file2} should be
@c sorted on the join fields.
@c 
@var{file1}または@var{file2}は(両方ではなく)@samp{-}が可能で，標準入力
を意味します．@var{file1}と@var{file2}は，結合フィールド上で並べ替えし
ておくべきです．

@c Normally, the sort order is that of the
@c collating sequence specified by the @env{LC_COLLATE} locale.  Unless
@c the @option{-t} option is given, the sort comparison ignores blanks at
@c the start of the join field, as in @code{sort -b}.  If the
@c @option{--ignore-case} option is given, the sort comparison ignores
@c the case of characters in the join field, as in @code{sort -f}.
@c 
通常，並べ替えの順序は，@env{LC_COLLATE}ロカールで指定されている順番で
す．@option{-t}オプションが与えられない限り，@code{sort -b}のように，
並べ替えの比較では結合フィールドの最初の空白は無視されます．
@option{--ignore-case}オプションが与えられている場合，@code{sort -f}の
ように，並べ替えの比較では結合フィールドの文字の大文字小文字は無視され
ます．

@c However, as a GNU extension, if the input has no unpairable lines the
@c sort order can be any order that considers two fields to be equal if and
@c only if the sort comparison described above considers them to be equal.
@c For example:
@c 
しかし，GNUの拡張として，入力に組になる行が無い場合，並び順は，上記の
並び替えの比較が同じであると考えられる場合，そしてそのときだけ，二つの
フィールドが同じであると考えられる順番になるはずです．例えば，以下のよ
うになります．

@example
$ cat file1
a a1
c c1
b b1
$ cat file2
a a2
c c2
b b2
$ join file1 file2
a a1 a2
c c1 c2
b b1 b2
@end example

@c The defaults are: the join field is the first field in each line;
@c fields in the input are separated by one or more blanks, with leading
@c blanks on the line ignored; fields in the output are separated by a
@c space; each output line consists of the join field, the remaining
@c fields from @var{file1}, then the remaining fields from @var{file2}.
@c 
デフォルトは，以下の通りです．結合フィールドは，それぞれの行の最初の
フィールドです．入力のフィールドは，一つ以上の空白で分離されていて，行
の前の空白は無視されます．出力のフィールドはスペースで分離されています．
それぞれの出力行は，結合フィールド，@var{file1}の残りのフィールド，そ
して@var{file2}の残りのフィールドから成り立ちます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは，以下のオプションを受け入れます．@ref{Common options}も参
照してください．

@table @samp

@item -a @var{file-number}
@opindex -a
@c Print a line for each unpairable line in file @var{file-number} (either
@c @samp{1} or @samp{2}), in addition to the normal output.
@c 
ファイル@var{file-number} (@samp{1}または@samp{2}のいずれか)で組になっ
ていないそれぞれの行に対し，一行を通常の出力に追加して出力します．

@item -e @var{string}
@opindex -e
@c Replace those output fields that are missing in the input with
@c @var{string}.
@c 
入力で欠けているこれらの出力フィールドを，@var{string}で置換します．

@item -i
@itemx --ignore-case
@opindex -i
@opindex --ignore-case
@c Ignore differences in case when comparing keys.
@c With this option, the lines of the input files must be ordered in the same way.
@c Use @samp{sort -f} to produce this ordering.
@c 
キーを比較するとき，大文字小文字の違いを無視します．このオプションを用
いると，入力ファイルの行は同じ方法でソートされている必要があります．こ
の順序を生成するために，@samp{sort -f}を使用してください．

@item -1 @var{field}
@opindex -1
@c Join on field @var{field} (a positive integer) of file 1.
@c 
ファイル1のフィールド@var{field}(正の整数)で結合します．

@item -2 @var{field}
@opindex -2
@c Join on field @var{field} (a positive integer) of file 2.
@c 
ファイル2のフィールド@var{field} (正の整数)で結合します．

@item -j @var{field}
@c Equivalent to @option{-1 @var{field} -2 @var{field}}.
@c 
@samp{-1 @var{field} -2 @var{field}}と同じです．

@item -o @var{field-list}
@c Construct each output line according to the format in @var{field-list}.
@c Each element in @var{field-list} is either the single character @samp{0} or
@c has the form @var{m.n} where the file number, @var{m}, is @samp{1} or
@c @samp{2} and @var{n} is a positive field number.
@c 
@var{field-list}の書式に従い，それぞれの出力行を生成します．
@var{field-list}のそれぞれの要素は，単一文字@samp{0}，または，ファイル
番号の@var{m}，@samp{1}または@samp{2}，そして@var{n}が正のフィールド番
号となっている，@var{m.n}の形式になります．

@c A field specification of @samp{0} denotes the join field.
@c In most cases, the functionality of the @samp{0} field spec
@c may be reproduced using the explicit @var{m.n} that corresponds
@c to the join field.  However, when printing unpairable lines
@c (using either of the @option{-a} or @option{-v} options), there is no way
@c to specify the join field using @var{m.n} in @var{field-list}
@c if there are unpairable lines in both files.
@c To give @command{join} that functionality, @acronym{POSIX} invented the @samp{0}
@c field specification notation.
@c 
@samp{0}のフィールド指定は，結合フィールドを示します．ほとんどの場合，
@samp{0}フィールドの指定の機能は，対応する結合フィールドとなる，明示的
な@var{m.n}を用いて再現できます．しかし，(@option{-a}または@option{-v}
オプションを用いて)組にならない行を出力するとき，両方のファイルで組に
ならない行がある場合，@var{field-list}で@var{m.n}を用いて結合フィール
ドを指定する方法はありません．@command{join}にその機能を与えるため，
@acronym{POSIX}は@samp{0}フィールド指定の表記を考え出しました．

@c The elements in @var{field-list}
@c are separated by commas or blanks.
@c All output lines -- including those printed because of any -a or -v
@c option -- are subject to the specified @var{field-list}.
@c 
@var{field-list}の要素は，カンマまたは空白で分けられています．全ての出
力行は -- @option{-a}や@option{-v}オプションで出力されるものを含め -- 
指定された@var{field-list}が適用されます．

@item -t @var{char}
@c Use character @var{char} as the input and output field separator.
@c Treat as significant each occurrence of @var{char} in the input file.
@c 
文字@var{char}を入出力のフィールドセパレータとして使用します．入力ファ
イルで@var{char}が見つかるたびに，意味があるものとして扱います．

@item -v @var{file-number}
@c Print a line for each unpairable line in file @var{file-number}
@c (either @samp{1} or @samp{2}), instead of the normal output.
@c 
通常の出力の代わりに，ファイル@var{file-number} (@samp{1}または
@samp{2})の組にならないそれぞれの行に対し，一行を出力します．

@end table

@c In addition, when @sc{gnu} @command{join} is invoked with exactly one argument,
@c the @option{--help} and @option{--version} options are recognized.
@c @xref{Common options}.
@c 
更に，@sc{gnu} @command{join}は，単一の引数で呼び出されたとき，オプショ
ン@option{--help}と@option{--version}は認識されます．@xref{Common
options}.

@exitstatus


@node Operating on characters
@c @chapter Operating on characters
@chapter 文字の処理

@cindex operating on characters

@c This commands operate on individual characters.
@c 
このコマンドは，個別に文字を処理します．

@menu
* tr invocation::               Translate, squeeze, and/or delete characters.
* expand invocation::           Convert tabs to spaces.
* unexpand invocation::         Convert spaces to tabs.
@end menu


@node tr invocation
@c @section @command{tr}: Translate, squeeze, and/or delete characters
@section @command{tr}: 文字の変換，圧縮，そして/または，削除

@pindex tr

@c Synopsis:
@c 
概要です．

@example
tr [@var{option}]@dots{} @var{set1} [@var{set2}]
@end example

@c @command{tr} copies standard input to standard output, performing
@c one of the following operations:
@c 
@command{tr}は標準入力を標準出力にコピーし，そのとき以下の処理の一つを
実行します．

@itemize @bullet
@item
@c translate, and optionally squeeze repeated characters in the result,
@c 
変換，さらに結果の繰り返し文字の圧縮．
@item
@c squeeze repeated characters,
@c 
繰り返し文字の圧縮．
@item
@c delete characters,
@c 
文字の削除．
@item
@c delete characters, then squeeze repeated characters from the result.
@c 
文字の削除後，結果から繰り返し文字の圧縮．
@end itemize

@c The @var{set1} and (if given) @var{set2} arguments define ordered
@c sets of characters, referred to below as @var{set1} and @var{set2}.  These
@c sets are the characters of the input that @command{tr} operates on.
@c The @option{--complement} (@option{-c}) option replaces @var{set1} with its
@c complement (all of the characters that are not in @var{set1}).
@c 
@var{set1}と(与えられている場合)@var{set2}引数は，順番付けされた文字を
定義し，以下の@var{set1}と@var{set2}を参照します．これらの組は，
@command{tr}が処理する入力文字です．@option{--complement}
(@option{-c})オプションは，@var{set1}をその補集合(@var{set1}に無い全て
の文字)に置換します．

@exitstatus

@menu
* Character sets::              Specifying sets of characters.
* Translating::                 Changing one set of characters to another.
* Squeezing::                   Squeezing repeats and deleting.
* Warnings in tr::              Warning messages.
@end menu


@node Character sets
@c @subsection Specifying sets of characters
@subsection 文字の組の指定

@cindex specifying sets of characters

@c The format of the @var{set1} and @var{set2} arguments resembles
@c the format of regular expressions; however, they are not regular
@c expressions, only lists of characters.  Most characters simply
@c represent themselves in these strings, but the strings can contain
@c the shorthands listed below, for convenience.  Some of them can be
@c used only in @var{set1} or @var{set2}, as noted below.
@c 
@var{set1}と@var{set2}の引数の書式は，正規表現の書式に似ています．しか
し正規表現ではなく，文字のリストのみです．これらの文字列のほとんどの文
字は単にその文字自身を表しますが，利便性のため，文字列には以下でリスト
アップされた速記を含むことができます．そのうち，以下で注意する
@var{set1}または@var{set2}のみでしか利用できないものもあります．

@table @asis

@c @item Backslash escapes
@item バックスラッシュエスケープ
@cindex backslash escapes

@c A backslash followed by a character not listed below causes an error
@c message.
@c 
以下でリストアップされていない，文字が続くバックスラッシュは，エラーメッ
セージを発生します．

@table @samp
@item \a
Control-G.
@item \b
Control-H.
@item \f
Control-L.
@item \n
Control-J.
@item \r
Control-M.
@item \t
Control-I.
@item \v
Control-K.
@item \@var{ooo}
@c The character with the value given by @var{ooo}, which is 1 to 3
@c octal digits,
@c 
@var{ooo}で与えられる値の文字で，一桁から三桁までの八進数．
@item \\
@c A backslash.
@c 
バックスラッシュ．
@end table

@c @item Ranges
@item 範囲
@cindex ranges

@c The notation @samp{@var{m}-@var{n}} expands to all of the characters
@c from @var{m} through @var{n}, in ascending order.  @var{m} should
@c collate before @var{n}; if it doesn't, an error results.  As an example,
@c @samp{0-9} is the same as @samp{0123456789}.
@c 
表記方法の@samp{@var{m}-@var{n}}は，@var{m}から@var{n}まで昇順に，全て
の文字に展開されます．@var{m}は，対照で@var{n}の前であるべきです．そう
でない場合，結果としてエラーとなります．例としては，@samp{0-9}は
@samp{0123456789}と同じです．

@c @sc{gnu} @command{tr} does not support the System V syntax that uses square
@c brackets to enclose ranges.  Translations specified in that format
@c sometimes work as expected, since the brackets are often transliterated
@c to themselves.  However, they should be avoided because they sometimes
@c behave unexpectedly.  For example, @samp{tr -d '[0-9]'} deletes brackets
@c as well as digits.
@c 
@sc{gnu} @command{tr}は，範囲を囲む角括弧を使用するSystem V構文をサポー
トしません．その書式で指定された変換は，括弧はそれ自身に変換されるので，
期待したように動作します．しかし，期待しない動作を行なうときもあるので
避けるべきです．例えば，@samp{tr -d '[0-9]'}は数字だけでなく括弧も削除
します．

@c Many historically common and even accepted uses of ranges are not
@c portable.  For example, on @acronym{EBCDIC} hosts using the @samp{A-Z}
@c range will not do what most would expect because @samp{A} through @samp{Z}
@c are not contiguous as they are in @acronym{ASCII}.
@c If you can rely on a @acronym{POSIX} compliant version of @command{tr}, then
@c the best way to work around this is to use character classes (see below).
@c Otherwise, it is most portable (and most ugly) to enumerate the members
@c of the ranges.
@c 
多くの歴史的に一般的なものと，範囲の使用の受け入れには移植性がありませ
ん．例えば，@acronym{EBCDIC}のホストでは，@samp{A-Z}の範囲を使用すると，
@acronym{ASCII}では@samp{A}から@samp{Z}までが不連続なので期待したよう
に動作しません．@acronym{POSIX}に準拠しているバージョンの@command{tr} 
に依存している場合，これを回避する最善の方法は，文字クラスを使用するこ
とです(以下を参照して下さい)．それ以外では，範囲内のメンバーを列挙する
ことが最も移植性がある(そして最も醜い)方法です．

@c @item Repeated characters
@item 繰り返される文字
@cindex repeated characters

@c The notation @samp{[@var{c}*@var{n}]} in @var{set2} expands to @var{n}
@c copies of character @var{c}.  Thus, @samp{[y*6]} is the same as
@c @samp{yyyyyy}.  The notation @samp{[@var{c}*]} in @var{string2} expands
@c to as many copies of @var{c} as are needed to make @var{set2} as long as
@c @var{set1}.  If @var{n} begins with @samp{0}, it is interpreted in
@c octal, otherwise in decimal.
@c 
@var{set2}での@samp{[@var{c}*@var{n}]}の表記は，文字@var{c}の@var{n}個
のコピーに展開されます．このため，@samp{[y*6]}は@samp{yyyyyy}と同じで
す．@var{set2}での@samp{[@var{c}*]}の表記は，@var{set2}を@var{set1}と
同じ長さにするのに必要なたくさんの@var{c}のコピーに展開されます．
@var{n}が@samp{0}で始まる場合は八進数に，それ以外では十進数だと解釈さ
れます．

@c @item Character classes
@item 文字クラス
@cindex character classes

@c The notation @samp{[:@var{class}:]} expands to all of the characters in
@c the (predefined) class @var{class}.  The characters expand in no
@c particular order, except for the @code{upper} and @code{lower} classes,
@c which expand in ascending order.  When the @option{--delete} (@option{-d})
@c and @option{--squeeze-repeats} (@option{-s}) options are both given, any
@c character class can be used in @var{set2}.  Otherwise, only the
@c character classes @code{lower} and @code{upper} are accepted in
@c @var{set2}, and then only if the corresponding character class
@c (@code{upper} and @code{lower}, respectively) is specified in the same
@c relative position in @var{set1}.  Doing this specifies case conversion.
@c The class names are given below; an error results when an invalid class
@c name is given.
@c 
@samp{[:@var{class}:]}の表記は，(あらかじめ定義された)クラス
@var{class} にある全ての文字に展開されます．文字は，特定の順序で展開さ
れませんが，@code{upper}と@code{lower}クラスは，昇順に展開されます．
@option{--delete} (@option{-d})と@option{--squeeze-repeats}
(@option{-s})オプションが両方与えられている場合，すべての文字クラスを
@var{set2}で使用することが可能です．それ以外の場合，文字クラス
@code{lower}と@code{upper}は@var{set2}に適用され，さらに，対応する(そ
れぞれ@code{upper}と@code{lower}の)文字クラスが@var{set1}の位置に相対
的に同じものが指定されている場合だけそうなります．これは，大文字小文字
の変換の指定です．クラス名は以下で与えられます．無効なクラス名が与えら
れた場合，結果としてエラーとなります．

@table @code
@item alnum
@opindex alnum
@c Letters and digits.
@c 
文字と数字．
@item alpha
@opindex alpha
@c Letters.
@c 
文字．
@item blank
@opindex blank
@c Horizontal whitespace.
@c 
水平方向の空白．
@item cntrl
@opindex cntrl
@c Control characters.
@c 
コントロール文字．
@item digit
@opindex digit
@c Digits.
@c 
数字．
@item graph
@opindex graph
@c Printable characters, not including space.
@c 
スペースを含まない，印刷可能な文字．
@item lower
@opindex lower
@c Lowercase letters.
@c 
小文字．
@item print
@opindex print
@c Printable characters, including space.
@c 
スペースを含む，印刷可能な文字．
@item punct
@opindex punct
@c Punctuation characters.
@c 
句読点文字．
@item space
@opindex space
@c Horizontal or vertical whitespace.
@c 
水平垂直の空白．
@item upper
@opindex upper
@c Uppercase letters.
@c 
大文字．
@item xdigit
@opindex xdigit
@c Hexadecimal digits.
@c 
16進数の数字．
@end table

@c @item Equivalence classes
@item 等価なクラス
@cindex equivalence classes

@c The syntax @samp{[=@var{c}=]} expands to all of the characters that are
@c equivalent to @var{c}, in no particular order.  Equivalence classes are
@c a relatively recent invention intended to support non-English alphabets.
@c But there seems to be no standard way to define them or determine their
@c contents.  Therefore, they are not fully implemented in @sc{gnu} @command{tr};
@c each character's equivalence class consists only of that character,
@c which is of no particular use.
@c 
構文@samp{[=@var{c}=]}は，@var{c}と等価な文字の全てに，特定の順序を持
たずに展開されます．等価なクラスは，英語以外のアルファベットをサポート
する目的で，比較的最近発明されました．しかし，それらの定義や内容を決定
する標準的な方法はなさそうです．そのため，@sc{gnu} @command{tr}では，
完全には実装されていません．それぞれの文字の等価クラスは，その文字から
のみ構成されていて，特定の利用価値はありません．
@end table


@node Translating
@c @subsection Translating
@subsection 変換

@cindex translating characters

@c @command{tr} performs translation when @var{set1} and @var{set2} are
@c both given and the @option{--delete} (@option{-d}) option is not given.
@c @command{tr} translates each character of its input that is in @var{set1}
@c to the corresponding character in @var{set2}.  Characters not in
@c @var{set1} are passed through unchanged.  When a character appears more
@c than once in @var{set1} and the corresponding characters in @var{set2}
@c are not all the same, only the final one is used.  For example, these
@c two commands are equivalent:
@c 
@var{set1}と@var{set2}の両方が与えられ，@option{--delete}
(@option{-d})オプションが与えられていない場合，@command{tr}は変換を実
行します．@command{tr}は，@var{set1}にある入力のぞれぞれの文字を，対応
する@var{set2}の文字に変換します．@var{set1}に無い文字は，そのまま変換
されず通過します．@var{set1}の文字が一回以上現われ，@var{set2}の対応す
る文字が全て同じではない場合，最後の一つのみ使用されます．例えば，以下
の二つのコマンドは等価です．

@example
tr aaa xyz
tr a z
@end example

@c A common use of @command{tr} is to convert lowercase characters to
@c uppercase.  This can be done in many ways.  Here are three of them:
@c 
@command{tr}の一般的な使用法は，小文字を大文字に変換することです．これ
を行なう方法はたくさんあるはずです．その三つを以下に書きます．

@example
tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
tr a-z A-Z
tr '[:lower:]' '[:upper:]'
@end example

@noindent
@c But note that using ranges like @code{a-z} above is not portable.
@c 
しかし，上記の@code{a-z}のような範囲の使用には移植性がありません．

@c When @command{tr} is performing translation, @var{set1} and @var{set2}
@c typically have the same length.  If @var{set1} is shorter than
@c @var{set2}, the extra characters at the end of @var{set2} are ignored.
@c 
@command{tr}が変換を実行しているとき，@var{set1}と@var{set2}は，通常同
じ長さです．@var{set1}が@var{set2}より短い場合，@var{set2}の終りの余分
な文字は無視されます．

@c On the other hand, making @var{set1} longer than @var{set2} is not
@c portable; @acronym{POSIX} says that the result is undefined.  In this situation,
@c BSD @command{tr} pads @var{set2} to the length of @var{set1} by repeating
@c the last character of @var{set2} as many times as necessary.  System V
@c @command{tr} truncates @var{set1} to the length of @var{set2}.
@c 
一方，@var{set1}を@var{set2}より大きくすることは移植性がありません．
@acronym{POSIX}では，その結果が未定義だと述べています．この場合，BSD
@command{tr}は，@var{set2}を@var{set2}の最後文字で必要なだけ繰り返すこ
とで@var{set1}の長さに引き延ばします．System V @command{tr}は，
@var{set1}を@var{set2}の長さに切り詰めます．

@c By default, @sc{gnu} @command{tr} handles this case like BSD @command{tr}.
@c When the @option{--truncate-set1} (@option{-t}) option is given,
@c @sc{gnu} @command{tr} handles this case like the System V @command{tr}
@c instead.  This option is ignored for operations other than translation.
@c 
デフォルトで，@sc{gnu} @command{tr}はBSD @command{tr}のようにこの状態
を処理します．@option{--truncate-set1} (@option{-t})オプションが与えら
れている場合，@sc{gnu} @command{tr}はSystem V @command{tr}のようにこの
状態を処理します．このオプションは，変換以外の処理では無視されます．

@c Acting like System V @command{tr} in this case breaks the relatively common
@c BSD idiom:
@c 
この場合，System V @command{tr}のように動作させると，比較的一般的なBSD
の表現は壊れます．

@example
tr -cs A-Za-z0-9 '\012'
@end example

@noindent
@c because it converts only zero bytes (the first element in the
@c complement of @var{set1}), rather than all non-alphanumerics, to
@c newlines.
@c 
それは，全ての非英数字を改行に変換する代わりに，(@var{set1}の補語の最
初の要素)ゼロバイトのみ変換されるためです．

@noindent
@c By the way, the above idiom is not portable because it uses ranges.
@c Assuming a @acronym{POSIX} compliant @command{tr}, here is a better way to write it:
@c 
ところで，上記の慣例は範囲を使用しているので移植性がありません．
@acronym{POSIX}が@command{tr}に文句をいう場合，ここでは以下のように書
いた方が良いでしょう．

@example
tr -cs '[:alnum:]' '[\n*]'
@end example


@node Squeezing
@c @subsection Squeezing repeats and deleting
@subsection 繰り返しの圧縮と削除

@cindex squeezing repeat characters
@cindex deleting characters

@c When given just the @option{--delete} (@option{-d}) option, @command{tr}
@c removes any input characters that are in @var{set1}.
@c 
@option{--delete} (@option{-d})オプションのみ与えられたとき，
@command{tr}は，@var{set1}にあるあらゆる入力文字を削除します．

@c When given just the @option{--squeeze-repeats} (@option{-s}) option,
@c @command{tr} replaces each input sequence of a repeated character that
@c is in @var{set1} with a single occurrence of that character.
@c 
@option{--squeeze-repeats} (@option{-s})オプションのみ与えられたとき，
@command{tr}は，@var{set1}にある，それぞれの入力で繰り返される文字の並
びを，その文字が一度だけ表れるように置換します．

@c When given both @option{--delete} and @option{--squeeze-repeats}, @command{tr}
@c first performs any deletions using @var{set1}, then squeezes repeats
@c from any remaining characters using @var{set2}.
@c 
@option{--delete}と@option{--squeeze-repeats}の両方が与えられた場合，
@command{tr}は，最初に@var{set1}を用いて削除を実行し，@var{set2}を用い
て残りの文字から繰り返しを圧縮します．

@c The @option{--squeeze-repeats} option may also be used when translating,
@c in which case @command{tr} first performs translation, then squeezes
@c repeats from any remaining characters using @var{set2}.
@c 
@option{--squeeze-repeats}オプションは，変換時にも利用でき，その場合，
@command{tr}は，最初に変換を実行し，@var{set2}を用いて残りの文字から繰
り返しを圧縮します．

@c Here are some examples to illustrate various combinations of options:
@c 
ここに，オプションの様々な組合せの表現例をいくつかあげます．

@itemize @bullet

@item
@c Remove all zero bytes:
@c 
全てのゼロバイトを削除．

@example
tr -d '\000'
@end example

@item
@c Put all words on lines by themselves.  This converts all
@c non-alphanumeric characters to newlines, then squeezes each string
@c of repeated newlines into a single newline:
@c 
全ての単語を単独行にします．これは，全ての非英数文字を改行に変換し，繰
り返される改行になっているそれぞれの文字列を単一の改行に圧縮します．

@example
tr -cs '[:alnum:]' '[\n*]'
@end example

@item
@c Convert each sequence of repeated newlines to a single newline:
@c 
繰り返される改行のそれぞれの並びを，単一の改行に変換します．

@example
tr -s '\n'
@end example

@item
@c Find doubled occurrences of words in a document.
@c For example, people often write ``the the'' with the repeated words
@c separated by a newline.  The bourne shell script below works first
@c by converting each sequence of punctuation and blank characters to a
@c single newline.  That puts each ``word'' on a line by itself.
@c Next it maps all uppercase characters to lower case, and finally it
@c runs @command{uniq} with the @option{-d} option to print out only the words
@c that were repeated.
@c 
ドキュメントで単語の二重の出現を見付けます．例えば，改行で分離されてい
る繰り返している単語``the the''と書くこともよくあります．以下のbourne 
シェルスクリプトは，最初に句読点と空白文字の並びを単一の改行文字に変換
する動作を行います．それでそれぞれの``単語''が単独行に書かれます．次に
全ての大文字を小文字に置き換え，最後に繰り返している単語だけを出力する
ために，@command{uniq}を@option{-d}オプションで実行します．

@example
#!/bin/sh
cat "$@@" \
  | tr -s '[:punct:][:blank:]' '\n' \
  | tr '[:upper:]' '[:lower:]' \
  | uniq -d
@end example

@item
@c Deleting a small set of characters is usually straightforward.  For example,
@c to remove all @samp{a}s, @samp{x}s, and @samp{M}s you would do this:
@c 
文字の小さな組を削除することは，一般的に簡単です．例えば，すべての
@samp{a}，@samp{x}，そして@samp{M}を削除するために，以下のようにします．

@example
tr -d axM
@end example

@c However, when @samp{-} is one of those characters, it can be tricky because
@c @samp{-} has special meanings.  Performing the same task as above but also
@c removing all @samp{-} characters, we might try @code{tr -d -axM}, but
@c that would fail because @command{tr} would try to interpret @option{-a} as
@c a command-line option.  Alternatively, we could try putting the hyphen
@c inside the string, @code{tr -d a-xM}, but that wouldn't work either because
@c it would make @command{tr} interpret @code{a-x} as the range of characters
@c @samp{a}@dots{}@samp{x} rather than the three.
@c One way to solve the problem is to put the hyphen at the end of the list
@c of characters:
@c 
しかし，これらの文字の一つが@samp{-}のとき，@samp{-}には特別な意味があ
るので，ちょっとトリッキーになります．上記と同じ作業を実行し，さらにす
べての@samp{-}文字を削除するため，@code{tr -d -axM}を試してみるかもし
れませんが，@command{tr}は@option{-a}をコマンドラインオプションと解釈
しようとするので失敗するでしょう．代わりに，文字列の間にハイフンを
@code{tr -d a-xM}のように書いてみても，@command{tr}は@code{a-x}を三文
字ではなく@samp{a}@dots{}@samp{x}の範囲として解釈するので動作しません．
問題を解決する方法の一つは，文字のリストの最後にハイフンを書くことです．

@example
tr -d axM-
@end example

@c More generally, use the character class notation @code{[=c=]}
@c with @samp{-} (or any other character) in place of the @samp{c}:
@c 
より一般的に，文字クラスの表記@code{[=c=]}を使用し，@samp{-}(または，
任意の文字)を@samp{c}の位置に書きます．

@example
tr -d '[=-=]axM'
@end example

@c Note how single quotes are used in the above example to protect the
@c square brackets from interpretation by a shell.
@c 
上記の例で使用しているシングルクオートは，角括弧をシェルが解釈すること
を防ぎます．

@end itemize


@node Warnings in tr
@c @subsection Warning messages
@subsection 警告メッセージ

@vindex POSIXLY_CORRECT
@c Setting the environment variable @env{POSIXLY_CORRECT} turns off the
@c following warning and error messages, for strict compliance with
@c @acronym{POSIX}.  Otherwise, the following diagnostics are issued:
@c 
環境変数@env{POSIXLY_CORRECT}を設定すると，@acronym{POSIX}を厳密に遵守
するため，以下の警告とエラーのメッセージをオフにします．それ以外の場合，
以下の診断結果を出力します．

@enumerate

@item
@c When the @option{--delete} option is given but @option{--squeeze-repeats}
@c is not, and @var{set2} is given, @sc{gnu} @command{tr} by default prints
@c a usage message and exits, because @var{set2} would not be used.
@c The @acronym{POSIX} specification says that @var{set2} must be ignored in
@c this case. Silently ignoring arguments is a bad idea.
@c 
@option{--delete}オプションが与えられているが，
@option{--squeeze-repeats}が与えられておらず，@var{set2}が与えられてい
るとき，@sc{gnu} @command{tr}は，@var{set2}が使用されないため，デフォ
ルトで使用方法のメッセージを出力し終了します．@acronym{POSIX}仕様では，
この場合@var{set2}は無視する必要があると述べられています．黙って引数を
無視するのは悪い考えです．

@item
@c When an ambiguous octal escape is given.  For example, @samp{\400}
@c is actually @samp{\40} followed by the digit @samp{0}, because the
@c value 400 octal does not fit into a single byte.
@c 
曖昧な八進数のエスケープが与えられたときです．例えば@samp{\400}は，八
進数の400の値が単一バイトに適さないので，実際には@samp{0}が後置された
@samp{\40}になります．

@end enumerate

@c @sc{gnu} @command{tr} does not provide complete BSD or System V compatibility.
@c For example, it is impossible to disable interpretation of the @acronym{POSIX}
@c constructs @samp{[:alpha:]}, @samp{[=c=]}, and @samp{[c*10]}.  Also, @sc{gnu}
@c @command{tr} does not delete zero bytes automatically, unlike traditional
@c Unix versions, which provide no way to preserve zero bytes.
@c 
@sc{gnu} @command{tr}は，BSDやSystem Vとの完全な互換性を提供していませ
ん．例えば，@acronym{POSIX}の概念@samp{[:alpha:]}，@samp{[=c=]}，そし
て@samp{[c*10]}の解釈を利用不可にすることはできません．また，@sc{gnu}
@command{tr}は，ゼロバイトを保護する方法を提供できない伝統的なUnixバー
ジョンと異なり，ゼロバイトを自動的に削除できません．


@node expand invocation
@c @section @command{expand}: Convert tabs to spaces
@section @command{expand}: タブをスペースに変換

@pindex expand
@cindex tabs to spaces, converting
@cindex converting tabs to spaces

@c @command{expand} writes the contents of each given @var{file}, or standard
@c input if none are given or for a @var{file} of @samp{-}, to standard
@c output, with tab characters converted to the appropriate number of
@c spaces.  Synopsis:
@c 
@command{expand}は，与えられたそれぞれの@var{file}，または，与えられな
い場合や@samp{-}の@var{file}の場合は標準入力の内容を，タブ文字を適切な
数のスペースに変換して，標準出力に書き出します．概要です．

@example
expand [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c By default, @command{expand} converts all tabs to spaces.  It preserves
@c backspace characters in the output; they decrement the column count for
@c tab calculations.  The default action is equivalent to @option{-t 8} (set
@c tabs every 8 columns).
@c 
デフォルトで，@command{expand}は全てのタブをスペースに変換します．それ
は全ての出力でバックスペース文字を維持します．それらはタブ計算に対し，
列の数を減少させます．デフォルトの動作は@option{-8}(タブをそれぞれ八列
に設定する)と同じです．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは，以下のオプションを受け入れます．@ref{Common options}も参
照してください．

@table @samp

@item -t @var{tab1}[,@var{tab2}]@dots{}
@itemx --tabs=@var{tab1}[,@var{tab2}]@dots{}
@opindex -t
@opindex --tabs
@cindex tabstops, setting
@c If only one tab stop is given, set the tabs @var{tab1} spaces apart
@c (default is 8).  Otherwise, set the tabs at columns @var{tab1},
@c @var{tab2}, @dots{} (numbered from 0), and replace any tabs beyond the
@c last tabstop given with single spaces.  Tabstops can be separated by
@c blanks as well as by commas.
@c 
一つのタブストップのみ与えられた場合，タブを@var{tab1}個の別々のスペー
ス(デフォルトで8)に設定します．それ以外の場合，タブを@var{tab1}，
@var{tab2}，@dots{}(0から番号付けされる)列に設定し，与えられた最後のタ
ブストップ以降のあらゆるタブを単一のスペースで置換します．タブストップ
は，カンマではなく空白で分けることも可能です．

@c On older systems, @command{expand} supports an obsolete option
@c @option{-@var{tab1}[,@var{tab2}]@dots{}}, where tabstops must be
@c separated by commas.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards
@c conformance}) does not allow this; use @option{-t
@c @var{tab1}[,@var{tab2}]@dots{}} instead.
@c 
古いシステムでは，@command{expand}は時代遅れのオプション
@option{-@var{tab1}[,@var{tab2}]@dots{}}をサポートしていて，そこではタ
ブストップをカンマで分離するはずです．@acronym{POSIX} 1003.1-2001
(@pxref{Standards conformance})ではこれを許可していません．代わりに
@option{-t @var{tab1}[,@var{tab2}]@dots{}}を使用してください．

@item -i
@itemx --initial
@opindex -i
@opindex --initial
@cindex initial tabs, converting
@c Only convert initial tabs (those that precede all non-space or non-tab
@c characters) on each line to spaces.
@c 
それぞれの行の最初のタブ(前にあるものが全て非スペース文字や非タブ文字
となるもの)をスペースに変換します．

@end table

@exitstatus


@node unexpand invocation
@c @section @command{unexpand}: Convert spaces to tabs
@section @command{unexpand}: スペースをタブに変換する

@pindex unexpand

@c @command{unexpand} writes the contents of each given @var{file}, or
@c standard input if none are given or for a @var{file} of @samp{-}, to
@c standard output, with strings of two or more space or tab characters
@c converted to as many tabs as possible followed by as many spaces as are
@c needed.  Synopsis:
@c 
@command{unexpand}は，与えられたそれぞれの@var{file}，または与えられな
い場合や@samp{-}の@var{file}に対しては標準入力の内容を，二つ以上のスペー
スやタブ文字の文字列を，二つ以上のスペースやタブ文字を，必要とされる数
のスペースを可能な限り連続するタブに変換しながら，内容を標準出力に書き
出します．概要です．

@example
unexpand [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c By default, @command{unexpand} converts only initial spaces and tabs (those
@c that precede all non space or tab characters) on each line.  It
@c preserves backspace characters in the output; they decrement the column
@c count for tab calculations.  By default, tabs are set at every 8th
@c column.
@c 
デフォルトで，@command{unexpand}は，最初のスペースとタブ(前にあるもの
が全て非スペース文字や非タブ文字となるもの)だけを，ぞれぞれの行で変換
します．それは，出力でバックスペース文字を維持します．タブの計算で列が
減少します．デフォルトで，タブは八列単位に設定されます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -t @var{tab1}[,@var{tab2}]@dots{}
@itemx --tabs=@var{tab1}[,@var{tab2}]@dots{}
@opindex -t
@opindex --tabs
@c If only one tab stop is given, set the tabs @var{tab1} spaces apart
@c instead of the default 8.  Otherwise, set the tabs at columns
@c @var{tab1}, @var{tab2}, @dots{} (numbered from 0), and leave spaces and
@c tabs beyond the tabstops given unchanged.  Tabstops can be separated by
@c blanks as well as by commas.  This option implies the @option{-a} option.
@c 
一つのタブストップのみ与えられた場合，タブを，デフォルトの8の代わりに，
それぞれ@var{tab1}スペースに設定します．それ以外の場合，タブを
@var{tab1}列，@var{tab2}列，@dots{} (0から番号付けされる)に設定し，与
えられたタブストップ以降のスペースタブは，変更されずに残ります．タブス
トップはカンマではなく空白で分離することも可能です．オプションは暗黙に
@option{-a}オプションを指定します．

@c On older systems, @command{unexpand} supports an obsolete option
@c @option{-@var{tab1}[,@var{tab2}]@dots{}}, where tabstops must be
@c separated by commas.  (Unlike @option{-t}, this obsolete option does
@c not imply @option{-a}.)  @acronym{POSIX} 1003.1-2001 (@pxref{Standards
@c conformance}) does not allow this; use @option{--first-only -t
@c @var{tab1}[,@var{tab2}]@dots{}} instead.
@c 
古いシステムでは，@command{unexpand}は時代遅れのオプション
@option{-@var{tab1}[,@var{tab2}]@dots{}}をサポートしていて，そこではタ
ブストップをカンマで分離するはずです．@acronym{POSIX} 1003.1-2001
(@pxref{Standards conformance})ではこれを許可していません．代わりに
@option{--first-only -t @var{tab1}[,@var{tab2}]@dots{}}を使用してくだ
さい．

@item -a
@itemx --all
@opindex -a
@opindex --all
@c Convert all strings of two or more spaces or tabs, not just initial
@c ones, to tabs.
@c 
最初のものだけでなく，全ての二つ以上のスペースやタブをタブに変換します．

@end table

@exitstatus


@node Directory listing
@c @chapter Directory listing
@chapter ディレクトリのリストアップ

@c This chapter describes the @command{ls} command and its variants @command{dir}
@c and @command{vdir}, which list information about files.
@c 
この章では，@command{ls}コマンドとその変形の@command{dir}と
@command{vdir}を記述し，それはファイルに関する情報をリストアップします．

@menu
* ls invocation::               List directory contents.
* dir invocation::              Briefly ls.
* vdir invocation::             Verbosely ls.
* dircolors invocation::        Color setup for ls, etc.
@end menu


@node ls invocation
@c @section @command{ls}: List directory contents
@section @command{ls}: ディレクトリの内容をリストアップ

@pindex ls
@cindex directory listing

@c The @command{ls} program lists information about files (of any type,
@c including directories).  Options and file arguments can be intermixed
@c arbitrarily, as usual.
@c 
@command{ls}プログラムは，ファイル(のすべての形式で，ディレクトリを含
む)に関する情報をリストアップします．オプションとファイル引数は，通常
のものと同様，任意に混ぜることが可能です．

@c For non-option command-line arguments that are directories, by default
@c @command{ls} lists the contents of directories, not recursively, and
@c omitting files with names beginning with @samp{.}.  For other non-option
@c arguments, by default @command{ls} lists just the file name.  If no
@c non-option argument is specified, @command{ls} operates on the current
@c directory, acting as if it had been invoked with a single argument of @samp{.}.
@c 
オプションの無いコマンドラインのディレクトリ引数に対し，@command{ls}は
デフォルトで，ディレクトリの内容をリストアップし，それは再帰的ではなく，
@samp{.}で始まる名前を持つファイルは除外しています．他のオプションの無
い引数に対し，@command{ls}はデフォルトで，そのファイル名のみをリストアッ
プします．オプションではない引数が指定されない場合，@command{ls}は現在
のディレクトリの内容をリストアップします．

@vindex LC_ALL
@c By default, the output is sorted alphabetically, according to the locale
@c settings in effect. @footnote{If you use a non-@acronym{POSIX}
@c locale (e.g., by setting @env{LC_ALL} to @samp{en_US}), then @command{ls} may
@c produce output that is sorted differently than you're accustomed to.
@c In that case, set the @env{LC_ALL} environment variable to @samp{C}.}
@c If standard output is
@c a terminal, the output is in columns (sorted vertically) and control
@c characters are output as question marks; otherwise, the output is listed
@c one per line and control characters are output as-is.
@c 
デフォルトで，出力はアルファベット順に出力され，それはロカールの設定に
影響されます．@footnote{@acronym{POSIX}ロカールにではないものを使用し
ている(例えば，@env{LC_ALL}を@samp{en_US}に設定している)場合，
@command{ls} は慣れているものとは異なる並べ替えの出力を生成する可能性
があります．そのような状況では，@env{LC_ALL}を@samp{C}に設定して下さい．} 
標準出力が端末の場合，出力は(垂直方向にソートされた)列になり，制御文字
は疑問符として出力されます．それ以外の場合，出力は一行ごとにリストアッ
プされ，制御文字はそのままになります．

@c Because @command{ls} is such a fundamental program, it has accumulated many
@c options over the years.  They are described in the subsections below;
@c within each section, options are listed alphabetically (ignoring case).
@c The division of options into the subsections is not absolute, since some
@c options affect more than one aspect of @command{ls}'s operation.
@c 
@command{ls}はあまりに基本的なプログラムなので，数年かけて多くのオプショ
ンを蓄積してきました．それらは以下のサブセクションで記述します．それぞ
れのセクションで，オプションはアルファベット順に(大文字小文字を無視し
て)リストアップされています．オプションをサブセクションに分けることは
絶対ではなく，それは，一つ以上の@command{ls}の処理の局面に影響するため
です．

@exitstatus

@c Also see @ref{Common options}.
@c 
@ref{Common options}も参照してください．

@menu
* Which files are listed::
* What information is listed::
* Sorting the output::
* More details about version sort::
* General output formatting::
* Formatting file timestamps::
* Formatting the file names::
@end menu


@node Which files are listed
@c @subsection Which files are listed
@subsection リストアップされるファイル

@c These options determine which files @command{ls} lists information for.
@c By default, any files and the contents of any directories on the command
@c line are shown.
@c 
これらのオプションは，@command{ls}がリストアップするファイルの情報を決
定します．デフォルトで，コマンドラインのあらゆるファイルとディレクトリ
の内容が表示されます．

@table @samp

@item -a
@itemx --all
@opindex -a
@opindex --all
@c List all files in directories, including files that start with @samp{.}.
@c 
@samp{.}で始まるファイルを含め，ディレクトリの全てのファイルをリストアッ
プします．

@item -A
@itemx --almost-all
@opindex -A
@opindex --almost-all
@c List all files in directories except for @file{.} and @file{..}.
@c 
@file{.}と@file{..}以外の，ディレクトリの全てのファイルをリストアップ
します．

@item -B
@itemx --ignore-backups
@opindex -B
@opindex --ignore-backups
@cindex backup files, ignoring
@c Do not list files that end with @samp{~}, unless they are given on the
@c command line.
@c 
コマンドラインで与えられない限り，@samp{~}で終るファイルをリストアップ
しません．

@item -d
@itemx --directory
@opindex -d
@opindex --directory
@c List just the names of directories, as with other types of files, rather
@c than listing their contents.
@c 
ディレクトリの名前のみリストアップし，それはファイルの他の形式と同様で，
その内容をリストアップしません．
@c The following sentence is the same as the one for -F.
@c 
@c Do not follow symbolic links listed on the
@c command line unless the @option{--dereference-command-line} (@option{-H}),
@c @option{--dereference} (@option{-L}), or
@c @option{--dereference-command-line-symlink-to-dir} options are specified.
@c 
@option{--dereference-command-line} (@option{-H})，
@option{--dereference} (@option{-L})，または
@option{--dereference-command-line-symlink-to-dir}オプションが指定され
ていない限り，コマンドラインでリストアップされているシンボリックリンク
をたどりません．

@item -H
@itemx --dereference-command-line
@opindex -H
@opindex --dereference-command-line
@cindex symbolic links, dereferencing
@c If a command line argument specifies a symbolic link, show information
@c for the file the link references rather than for the link itself.
@c 
コマンドライン引数がシンボリックリンクを指定している場合，リンク自身で
はなくリンクが参照しているファイルの情報を表示します．

@itemx --dereference-command-line-symlink-to-dir
@opindex --dereference-command-line-symlink-to-dir
@cindex symbolic links, dereferencing
@c Do not dereference symbolic links, with one exception:
@c if a command line argument specifies a symbolic link that refers to
@c a directory, show information for that directory rather than for the
@c link itself.
@c This is the default behavior when no other dereferencing-related
@c option has been specified (@option{--classify} (@option{-F}),
@c @option{--directory} (@option{-d}),
@c (@option{-l}),
@c @option{--dereference} (@option{-L}), or
@c @option{--dereference-command-line} (@option{-H})).
@c 
一つの例外がありますが，シンボリックリンクを間接参照しません．コマンド
ライン引数で，ディレクトリを参照するシンボリックリンクが指定されている
場合，リンク自身ではなくディレクトリの情報を表示します．他に参照に関連
するオプション(@option{--classify} (@option{-F})，@option{--directory}
(@option{-d})，(@option{-l})，@option{--dereference} (@option{-L})，ま
たは@option{--dereference-command-line} (@option{-H}))が指定されていな
いとき，これはデフォルトの動作です．

@item -I PATTERN
@itemx --ignore=PATTERN
@opindex -I
@opindex --ignore=@var{pattern}
@c Do not list files whose names match the shell pattern (not regular
@c expression) @var{pattern} unless they are given on the command line.  As
@c in the shell, an initial @samp{.} in a file name does not match a
@c wildcard at the start of @var{pattern}.  Sometimes it is useful
@c to give this option several times.  For example,
@c 
コマンドラインで与えられていない限り，シェルパターン(正規表現ではあり
ません)@var{pattern}にマッチする名前のファイルをリストアップしません．
シェルと同様に，ファイル名の最初の@samp{.}は，@var{pattern}の最初のワ
イルドカードにマッチしません．このオプションを複数回与えると便利なとき
もあります．例えば，以下のようにします．

@smallexample
$ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'
@end smallexample

@c The first option ignores names of length 3 or more that start with @samp{.},
@c the second ignores all two-character names that start with @samp{.}
@c except @samp{..}, and the third ignores names that start with @samp{#}.
@c 
最初のオプションは，@samp{.}で始まる長さが3文字以上の名前を無視し，二
番目は@samp{..}以外の@samp{.}で始まる全ての2文字の名前を無視し，三番目
は@samp{#}で始まる名前を無視します．

@item -L
@itemx --dereference
@opindex -L
@opindex --dereference
@cindex symbolic links, dereferencing
@c When showing file information for a symbolic link, show information
@c for the file the link references rather than the link itself.
@c However, even with this option, @command{ls} still prints the name
@c of the link itself, not the name of the file that the link points to.
@c 
長いリストで，シンボリックリンク自身ではなくシンボリックリンクが参照す
るファイルの情報(例えば，時間や許可)を表示します．しかし，このオプショ
ンを使用していても，@command{ls}はリンク先のファイル名ではなく，リンク
自身の名前を出力します．

@item -R
@itemx --recursive
@opindex -R
@opindex --recursive
@cindex recursive directory listing
@cindex directory listing, recursive
@c List the contents of all directories recursively.
@c 
全てのディレクトリの内容を，再帰的にリストアップします．

@end table


@node What information is listed
@c @subsection What information is listed
@subsection リストアップされる情報

@c These options affect the information that @command{ls} displays.  By
@c default, only file names are shown.
@c 
これらのオプションは，@command{ls}が表示する情報に影響します．デフォル
トで，ファイル名のみ表示されます．

@table @samp

@item --author
@opindex --author
@cindex hurd, author, printing
@c List each file's author when producing long format directory listings.
@c In GNU/Hurd, file authors can differ from their owners, but in other
@c operating systems the two are the same.
@c 
長い書式のディレクトリのリストを生成するとき，それぞれのファイルの著者
をリストアップします．GNU/Hurdでは，ファイルの著者はその所有者とは異な
りますが，他のオペレーティングシステムではその二つは同じです．

@item -D
@itemx --dired
@opindex -D
@opindex --dired
@cindex dired Emacs mode support
@c With the long listing (@option{-l}) format, print an additional line after
@c the main output:
@c 
長いリスト(@option{-l})の書式を用いた場合，主な出力の後に追加して以下
を出力します．

@example
//DIRED// @var{beg1} @var{end1} @var{beg2} @var{end2} @dots{}
@end example

@noindent
@c The @var{begN} and @var{endN} are unsigned integers that record the
@c byte position of the beginning and end of each file name in the output.
@c This makes it easy for Emacs to find the names, even when they contain
@c unusual characters such as space or newline, without fancy searching.
@c 
@var{begN}と@var{endN}は，出力のそれぞれのファイル名の始めと終りのバイ
ト位置を記録する符号無し整数です．これで，たとえスペースや改行といった
通常用いない文字を含むときも，異常な検索をすることなく，Emacsで簡単に
名前を見つかるようになります．

@c If directories are being listed recursively (@option{-R}), output a similar
@c line with offsets for each subdirectory name:
@c 
ディレクトリが再帰的(@option{-R})にリストアップされる場合，出力はそれ
ぞれのサブディレクトリの後に，良く似た行を出力します．
@example
//SUBDIRED// @var{beg1} @var{end1} @dots{}
@end example

@c Finally, output a line of the form:
@c 
最終的に以下の形式の行を出力します．
@example
//DIRED-OPTIONS// --quoting-style=@var{word}
@end example
@c where @var{word} is the quoting style (@pxref{Formatting the file names}).
@c 
@var{word}は引用形式です(@pxref{Formatting the file names})．

@c Here is an actual example:
@c 
以下は実際の例です．

@example
$ mkdir -p a/sub/deeper a/sub2
$ touch a/f1 a/f2
$ touch a/sub/deeper/file
$ ls -gloRF --dired a
  a:
  total 8
  -rw-r--r--  1    0 Dec  3 00:50 f1
  -rw-r--r--  1    0 Dec  3 00:50 f2
  drwxr-xr-x  3 4096 Dec  3 00:50 sub/
  drwxr-xr-x  2 4096 Dec  3 00:50 sub2/

  a/sub:
  total 4
  drwxr-xr-x  2 4096 Dec  3 00:50 deeper/

  a/sub/deeper:
  total 0
  -rw-r--r--  1 0 Dec  3 00:50 file

  a/sub2:
  total 0
//DIRED// 49 51 86 88 123 126 162 166 222 228 288 292
//SUBDIRED// 2 3 171 176 233 245 296 302
//DIRED-OPTIONS// --quoting-style=literal
@end example

@c Note that the pairs of offsets on the @samp{//DIRED//} line above delimit
@c these names: @file{f1}, @file{f2}, @file{sub}, @file{sub2}, @file{deeper},
@c @file{file}.
@c The offsets on the @samp{//SUBDIRED//} line delimit the following
@c directory names: @file{a}, @file{a/sub}, @file{a/sub/deeper}, @file{a/sub2}.
@c 
上記の@samp{//DIRED//}行のオフセットの組が，以下の名前@file{f1}，
@file{f2}，@file{sub}，@file{sub2}，@file{deeper}，@file{file}を分離し
ていることに注意して下さい．@samp{//SUBDIRED//}行のオフセットは，以下
のディレクトリ名@file{a}，@file{a/sub}，@file{a/sub/deeper}，
@file{a/sub2}を分離しています．

@c Here is an example of how to extract the fifth entry name, @samp{deeper},
@c corresponding to the pair of offsets, 222 and 228:
@c 
以下は，五番目の項目名を抽出する方法，@samp{deeper}の例で，対応するオ
フセットの組は，222と228です．

@example
$ ls -gloRF --dired a > out
$ dd bs=1 skip=222 count=6 < out 2>/dev/null; echo
deeper
@end example

@c Note that although the listing above includes a trailing slash
@c for the @samp{deeper} entry, the offsets select the name without
@c the trailing slash.  However, if you invoke @command{ls} with @option{--dired}
@c along with an option like @option{--escape} (aka @option{-b}) and operate
@c on a file whose name contains special characters, notice that the backslash
@c @emph{is} included:
@c 
上記のリストには，@samp{deeper}の項目に対してスラッシュが後置されてい
ますが，オフセットは，最後のスラッシュを用いていない名前を選択している
ことに注意して下さい．しかし，@command{ls}を
@option{--escape}(@option{-b}) のようなオプションとともに
@option{--dired}を用いて呼び出し，特殊文字を含むファイル名を処理する場
合，バックスラッシュが含まれる@emph{こと}に注意して下さい．

@example
$ touch 'a b'
$ ls -blog --dired 'a b'
  -rw-r--r--  1 0 Dec  3 00:52 a\ b
//DIRED// 31 35
//DIRED-OPTIONS// --quoting-style=escape
@end example

@c If you use a quoting style that adds quote marks
@c (e.g., @option{--quoting-style=c}), then the offsets include the quote marks.
@c So beware that the user may select the quoting style via the environment
@c variable @env{QUOTING_STYLE}.  Hence, applications using @option{--dired}
@c should either specify an explicit @option{--quoting-style=literal} option
@c (aka @option{-N} or @option{--literal}) on the command line, or else be
@c prepared to parse the escaped names.
@c 
引用の印(例えば@option{--quoting-style=c})を追加して，引用形式を使用し
ている場合，オフセットには引用の印が含まれます．そのため，ユーザが環境
変数@env{QUOTING_STYLE}で，引用形式を選択している可能性があることに注
意して下さい．このため，@option{--dired}を使用しているアプリケーション
では，明示的にコマンドラインで@option{--quoting-style=literal}オプショ
ン(@option{-N}または@option{--literal})を指定する，またはエスケープさ
れた名前のパーサを用意しておいて下さい．

@item --full-time
@opindex --full-time
@c Produce long format directory listings, and list times in full.  It is
@c equivalent to using @option{--format=long} with
@c @option{--time-style=full-iso} (@pxref{Formatting file timestamps}).
@c 
長い形式のディレクトリリストの書式と，完全な時間のリストを生成します．
@option{--time-style=full-iso}とともに@option{--format=long}を使用する
ことと等価です(@pxref{Formatting file timestamps})．

@item -g
@opindex -g
@c Produce long format directory listings, but don't display owner information.
@c 
長い書式のディレクトリのリスト表示ですが，所有者の情報は表示しません．

@item -G
@itemx --no-group
@opindex -G
@opindex --no-group
@c Inhibit display of group information in a long format directory listing.
@c (This is the default in some non-@sc{gnu} versions of @command{ls}, so we
@c provide this option for compatibility.)
@c 
長い書式のディレクトリのリスト表示で，グループ情報の表示を禁止します．
(これは@sc{gnu}ではないバージョンの@command{ls}ではデフォルトで，我々
は互換性のためにこのオプションを提供します．)

@optHumanReadable

@item -i
@itemx --inode
@opindex -i
@opindex --inode
@cindex inode number, printing
@c Print the inode number (also called the file serial number and index
@c number) of each file to the left of the file name.  (This number
@c uniquely identifies each file within a particular filesystem.)
@c 
それぞれのファイルのinode番号(ファイルシリアル番号とインデックス番号と
も呼ばれています)を，ファイル名の左に出力します．(この番号は，特定のファ
イルシステム内の，それぞれのファイルを単一のものとして識別します．)

@item -l
@itemx --format=long
@itemx --format=verbose
@opindex -l
@opindex --format
@opindex long ls @r{format}
@opindex verbose ls @r{format}
@c In addition to the name of each file, print the file type, permissions,
@c number of hard links, owner name, group name, size, and
@c timestamp (@pxref{Formatting file timestamps}), normally
@c the modification time.
@c 
それぞれのファイル名に加えて，ファイル形式，許可，ハードリンク数，所有
者名，バイトのサイズ，そして通常は編集した時間となっているタイムスタン
プ(@pxref{Formatting file timestamps})を出力します．

@c Normally the size is printed as a byte count without punctuation, but
@c this can be overridden (@pxref{Block size}).  For example, @option{-h}
@c prints an abbreviated, human-readable count, and
@c @samp{--block-size="'1"} prints a byte count with the thousands
@c separator of the current locale.
@c 
通常，サイズは句読点を用いずバイト数を出力しますが，これは優先可能です
(@pxref{Block size})．例えば，@option{-h}では，人間が読み易い省略した
ものを出力し，@samp{--block-size="'1"}は，現在のロカールで千単位で分離
してバイト数を出力します．

@c For each directory that is listed, preface the files with a line
@c @samp{total @var{blocks}}, where @var{blocks} is the total disk allocation
@c for all files in that directory.  The block size currently defaults to 1024
@c bytes, but this can be overridden (@pxref{Block size}).
@c The @var{blocks} computed counts each hard link separately;
@c this is arguably a deficiency.
@c 
リストアップされているそれぞれのディレクトリに対し，@samp{total
@var{blocks}}という行をファイルに前置し，そこでの@var{blocks}は，その
ディレクトリの全てのファイルに対する全体的なディスク占有量です．ブロッ
クサイズは，現在デフォルトで1024バイトですが，これに優先させることが可
能です(@pxref{Block size})．@var{blocks}は，それぞれのハードリンクを別々
に数えて計算します．これはおそらく欠陥です．

@cindex permissions, output by @command{ls}
@c The permissions listed are similar to symbolic mode specifications
@c (@pxref{Symbolic Modes}).  But @command{ls} combines multiple bits into the
@c third character of each set of permissions as follows:
@c 
リストアップされる許可は，象徴的なモードでの指定に似ています
(@pxref{Symbolic Modes})．しかし，@command{ls}は，それぞれの許可の設定
を複数のビットを三番目の文字に組み合わせ，以下のようにします．

@table @samp
@item s
@c If the setuid or setgid bit and the corresponding executable bit
@c are both set.
@c 
setuidやsetgidビットと対応する実行可能ビットが，両方設定されている場合．

@item S
@c If the setuid or setgid bit is set but the corresponding executable bit
@c is not set.
@c 
setuidやsetgidビットは設定されているが，対応する実行可能ビットが設定さ
れていない場合．

@item t
@c If the sticky bit and the other-executable bit are both set.
@c 
stickyビットとotherの実行可能ビットが両方設定されている場合．

@item T
@c If the sticky bit is set but the other-executable bit is not set.
@c 
stickyビットは設定されているが，otherの実行可能ビットが設定されていな
い場合．

@item x
@c If the executable bit is set and none of the above apply.
@c 
実行可能ビットが設定されていて，上記は何も適応されない場合．

@item -
@c Otherwise.
@c 
それ以外．
@end table

@c Following the permission bits is a single character that specifies
@c whether an alternate access method applies to the file.  When that
@c character is a space, there is no alternate access method.  When it
@c is a printing character (e.g., @samp{+}), then there is such a method.
@c 
許可ビットに続くものは，ファイルに適用するアクセス手法の変更を指定する
単一の文字です．文字がスペースのとき，アクセス手法の変更はありません．
印刷可能な文字(例えば@samp{+})のとき，そのような手法があります．

@item -n
@itemx --numeric-uid-gid
@opindex -n
@opindex --numeric-uid-gid
@cindex numeric uid and gid
@c Produce long format directory listings, but
@c display numeric UIDs and GIDs instead of the owner and group names.
@c 
長い書式でディレクトリのリストを生成しますが，所有者とグループの名前の
代わりに数値のUIDとGIDをリストアップします．

@item -o
@opindex -o
@c Produce long format directory listings, but don't display group information.
@c It is equivalent to using @option{--format=long} with @option{--no-group} .
@c 
長いディレクトリのリストの書式を生成しますが，グループ情報は表示しませ
ん．それは，@option{--no-group}を用いた@option{--format=long}の使用と
同じです．

@item -s
@itemx --size
@opindex -s
@opindex --size
@cindex disk allocation
@cindex size of files, reporting
@c Print the disk allocation of each file to the left of the file name.
@c This is the amount of disk space used by the file, which is usually a
@c bit more than the file's size, but it can be less if the file has holes.
@c 
ファイル名の左側に，それぞれのファイルのディスク占有量を出力します．こ
れは，ファイルが使用しているディスクスペースの総量で，それは通常ファイ
ルサイズよりわずかに多くなりますが，ファイルに欠陥がある場合は，より小
さくなるはずです．

@c Normally the disk allocation is printed in units of
@c 1024 bytes, but this can be overridden (@pxref{Block size}).
@c 
通常ディスクの占有量は1024バイト単位で出力されますが，これに優先させる
ことが可能です(@pxref{Block size})．

@cindex NFS mounts from BSD to HP-UX
@c For files that are NFS-mounted from an HP-UX system to a BSD system,
@c this option reports sizes that are half the correct values.  On HP-UX
@c systems, it reports sizes that are twice the correct values for files
@c that are NFS-mounted from BSD systems.  This is due to a flaw in HP-UX;
@c it also affects the HP-UX @command{ls} program.
@c 
HP-UXシステムからBSDシステムに，NFSでマウントされているファイルに対し，
このオプションは，正しい値の半分のサイズを報告します．HP-UXシステムで
は，BSDシステムからNFSでマウントされているファイルに対し，正しい値の2
倍のサイズを報告します．これは，HP-UXの欠点のためです．それはHP-UXの
@command{ls}プログラムにも影響します．

@optSi

@end table


@node Sorting the output
@c @subsection Sorting the output
@subsection 出力の並べ替え

@cindex sorting @command{ls} output
@c These options change the order in which @command{ls} sorts the information
@c it outputs.  By default, sorting is done by character code
@c (e.g., @acronym{ASCII} order).
@c 
これらのオプションは，@command{ls}が並べ替える出力の情報の順序を変更し
ます．デフォルトで，並べ替えは文字コードによって行われます(例えば，
@acronym{ASCII}の順番です)．

@table @samp

@item -c
@itemx --time=ctime
@itemx --time=status
@itemx --time=use
@opindex -c
@opindex --time
@opindex ctime@r{, printing or sorting by}
@opindex status time@r{, printing or sorting by}
@opindex use time@r{, printing or sorting files by}
@c If the long listing format (e.g., @option{-l}, @option{-o}) is being used,
@c print the status change time (the @samp{ctime} in the inode) instead of
@c the modification time.
@c When explicitly sorting by time (@option{--sort=time} or @option{-t})
@c or when not using a long listing format,
@c sort according to the status change time.
@c 
長いリスト書式(例えば，@option{-l}，@option{-o})が使用されている場合，
編集時間の代わりにステータス変更時間(inodeの@samp{ctime})が出力されま
す．時間(@option{--sort=time}または@option{-t})で明示的に並べ替えをし
たり，長いリストの書式を使用しないとき，ステータスの変更時間によって並
べ替えます．

@item -f
@opindex -f
@cindex unsorted directory listing
@cindex directory order, listing by
@c Primarily, like @option{-U}---do not sort; list the files in whatever
@c order they are stored in the directory.  But also enable @option{-a} (list
@c all files) and disable @option{-l}, @option{--color}, and @option{-s} (if they
@c were specified before the @option{-f}).
@c 
主に，@option{-U}に似ています --- 並べ替えしません．ディレクトリに保存
されているファイルの順番に，それらをリストアップします．しかし，
@option{-a}(すべてのファイルをリストアップ)も利用可能で，(前に
@option{-f}が指定されている場合)@option{-l}，@option{--color}，そして
@option{-s}は利用不可能です．

@item -r
@itemx --reverse
@opindex -r
@opindex --reverse
@cindex reverse sorting
@c Reverse whatever the sorting method is---e.g., list files in reverse
@c alphabetical order, youngest first, smallest first, or whatever.
@c 
並べ替えのあらゆる手法を反転します --- 例えば，アルファベットの逆順，
新しいものを最初，小さいものを最初，またはすべて逆順にリストアップしま
す．

@item -S
@itemx --sort=size
@opindex -S
@opindex --sort
@opindex size of files@r{, sorting files by}
@c Sort by file size, largest first.
@c 
ファイルサイズで，大きいものを最初にして並べ替えます．

@item -t
@itemx --sort=time
@opindex -t
@opindex --sort
@opindex modification time@r{, sorting files by}
@c Sort by modification time (the @samp{mtime} in the inode), newest first.
@c 
編集時間(inodeの@samp{mtime})で，新しいものを最初にして並べ替えます．

@item -u
@itemx --time=atime
@itemx --time=access
@opindex -u
@opindex --time
@opindex use time@r{, printing or sorting files by}
@opindex atime@r{, printing or sorting files by}
@opindex access time@r{, printing or sorting files by}
@c If the long listing format (e.g., @option{--format=long}) is being used,
@c print the last access time (the @samp{atime} in the inode).
@c When explicitly sorting by time (@option{--sort=time} or @option{-t})
@c or when not using a long listing format, sort according to the access time.
@c 
長いリスト書式(例えば，@option{--format=long})が使用されている場合，最
後にアクセスした時間(inodeの@samp{atime})が出力されます．時間
(@option{--sort=time}または@option{-t})で明示的に並べ替えをしたり，長
いリストの書式を使用しないとき，アクセスした時間によって並べ替えます．

@item -U
@itemx --sort=none
@opindex -U
@opindex --sort
@opindex none@r{, sorting option for @command{ls}}
@c Do not sort; list the files in whatever order they are
@c stored in the directory.  (Do not do any of the other unrelated things
@c that @option{-f} does.)  This is especially useful when listing very large
@c directories, since not doing any sorting can be noticeably faster.
@c 
並べ替えしません．ディレクトリに保存されている順番にファイルをリストアッ
プします．(@option{-f}が行う，他と関連することは何もしません．) 並べ替
えを行わないことで，目立って速くすることが可能なので，非常に大きなディ
レクトリをリストアップするとき，これは特に便利です．

@item -v
@itemx --sort=version
@opindex -v
@opindex --sort
@opindex version@r{, sorting option for @command{ls}}
@c Sort by version name and number, lowest first.  It behaves like a default
@c sort, except that each sequence of decimal digits is treated numerically
@c as an index/version number.  (@xref{More details about version sort}.)
@c 
バージョン名と数字で，小さいものを最初にして並べ替えます．それはデフォ
ルトの並べ替えに似ている動作で，それぞれの10進数の並びが，索引/バージョ
ン番号として数値的に扱われることが期待されます．(@xref{More details
about version sort}.)

@item -X
@itemx --sort=extension
@opindex -X
@opindex --sort
@opindex extension@r{, sorting files by}
@c Sort directory contents alphabetically by file extension (characters
@c after the last @samp{.}); files with no extension are sorted first.
@c 
ディレクトリの内容を，ファイルの拡張子(最後の@samp{.}の後の文字)で，ア
ルファベット順に並べ替えます．ファイルの拡張子がないものが最初になりま
す．

@end table


@node More details about version sort
@c @subsection More details about version sort
@subsection バージョンの並べ替えの詳細

@c The version sort takes into account the fact that file names frequently include
@c indices or version numbers.  Standard sorting functions usually do not produce
@c the ordering that people expect because comparisons are made on a
@c character-by-character basis.  The version
@c sort addresses this problem, and is especially useful when browsing
@c directories that contain many files with indices/version numbers in their
@c names:
@c 
バージョンの並べ替えは，ファイル名が索引やバージョン番号を含むことが多
いという事実を考慮にいれています．標準的な並べ替え機能は，一文字づつを
基本に比較するため，通常，人々が期待する順序を生成しません．バージョン
の並べ替えは，この問題を提出し，その名前に索引/バージョン番号を伴うファ
イルを多く含むディレクトリを眺めるとき特に役に立ちます．

@example
      > ls -1            > ls -1v
      foo.zml-1.gz       foo.zml-1.gz
      foo.zml-100.gz     foo.zml-2.gz
      foo.zml-12.gz      foo.zml-6.gz
      foo.zml-13.gz      foo.zml-12.gz
      foo.zml-2.gz       foo.zml-13.gz
      foo.zml-25.gz      foo.zml-25.gz
      foo.zml-6.gz       foo.zml-100.gz
@end example

@c Note also that numeric parts with leading zeroes are considered as
@c fractional one:
@c 
数字の部分にゼロが前置されていても，分数として考慮されることに注意して
下さい．

@example
      > ls -1            > ls -1v
      abc-1.007.tgz      abc-1.007.tgz
      abc-1.012b.tgz     abc-1.01a.tgz
      abc-1.01a.tgz      abc-1.012b.tgz
@end example

@c This functionality is implemented using the @code{strverscmp} function.
@c @xref{String/Array Comparison, , , libc, The GNU C Library Reference Manual}.
@c One result of that implementation decision is that @code{ls -v} does not
@c use the locale category, @env{LC_COLLATE}.  As a result, non-numeric prefixes
@c are sorted as if @env{LC_COLLATE} were set to @code{C}.
@c 
この機能は，@code{strverscmp}関数を使用して実装しています．
@xref{String/Array Comparison, , , libc, The GNU C Library Reference
Manual}.実装を決定した結果，@code{ls -v}はロカールカテゴリの
@env{LC_COLLATE}を使用しなくなりました．結果として，数字以外の接頭辞は，
@env{LC_COLLATE}が@code{C}に設定されているかのように並べ替えられます．


@node General output formatting
@c @subsection General output formatting
@subsection 一般的な出力書式

@c These options affect the appearance of the overall output.
@c 
これらのオプションは，出力の外観に影響します．

@table @samp

@item -1
@itemx --format=single-column
@opindex -1
@opindex --format
@opindex single-column @r{output of files}
@c List one file per line.  This is the default for @command{ls} when standard
@c output is not a terminal.
@c 
ファイルを一行ごとにリストアップします．これは，標準出力が端末でないと
きのデフォルトです．

@item -C
@itemx --format=vertical
@opindex -C
@opindex --format
@opindex vertical @r{sorted files in columns}
@c List files in columns, sorted vertically.  This is the default for
@c @command{ls} if standard output is a terminal.  It is always the default
@c for the @command{dir} and @command{d} programs.
@c @sc{gnu} @command{ls} uses variable width columns to display as many files as
@c possible in the fewest lines.
@c 
列で縦方向に並べ替えされてリストアップされます．標準出力が端末の場合，
これはデフォルトです．@command{dir}と@code{d}プログラムに対し，それは
常にデフォルトです．@sc{gnu} @command{ls}は，最も少ない行で可能な限り
多くのファイルを表示できるように，列の幅を変更して使用します．

@item --color [=@var{when}]
@opindex --color
@cindex color, distinguishing file types with
@c Specify whether to use color for distinguishing file types.  @var{when}
@c may be omitted, or one of:
@c 
ファイル形式を区別するため使用する色を指定します．@var{when}は省略され
る，または以下の一つになります．
@itemize @bullet
@item none
@vindex none @r{color option}
@c - Do not use color at all.  This is the default.
@c 
- 色を全く使用しません．これはデフォルトです．
@item auto
@vindex auto @r{color option}
@cindex terminal, using color iff
@c - Only use color if standard output is a terminal.
@c 
- 標準出力が端末の場合のみ色を使用します．
@item always
@vindex always @r{color option}
@c - Always use color.
@c 
- 常に色を使用します．
@end itemize
@c Specifying @option{--color} and no @var{when} is equivalent to
@c @option{--color=always}.
@c Piping a colorized listing through a pager like @command{more} or
@c @command{less} usually produces unreadable results.  However, using
@c @code{more -f} does seem to work.
@c 
@option{--color}を指定し@var{when}が無いのは，@option{--color=always}
と同じです．色付きのリストを@command{more}や@command{less}の様なページャ
にパイプで渡すと，通常読むことができない結果を生成します．しかし，
@code{more -f}を使用すると動作するでしょう．

@item -F
@itemx --classify
@itemx --indicator-style=classify
@opindex -F
@opindex --classify
@opindex --indicator-style
@cindex file type and executables, marking
@cindex executables and file type, marking
@c Append a character to each file name indicating the file type.  Also,
@c for regular files that are executable, append @samp{*}.  The file type
@c indicators are @samp{/} for directories, @samp{@@} for symbolic links,
@c @samp{|} for FIFOs, @samp{=} for sockets, and nothing for regular files.
@c 
ファイル形式を示す文字を，それぞれのファイル名に追加します．また，実行
可能な標準ファイルに対し，@samp{*}を加えます．ファイル形式表示子は，ディ
レクトリに対する@samp{/}，シンボリックリンクに対する@samp{@@}，FIFOに
対する@samp{|}，ソケットに対する@samp{=}で，標準ファイルは何もありませ
ん．
@c The following sentence is the same as the one for -d.
@c 
@c Do not follow symbolic links listed on the
@c command line unless the @option{--dereference-command-line} (@option{-H}),
@c @option{--dereference} (@option{-L}), or
@c @option{--dereference-command-line-symlink-to-dir} options are specified.
@c 
@option{--dereference-command-line} (@option{-H})，
@option{--dereference} (@option{-L})，または
@option{--dereference-command-line-symlink-to-dir}オプションが指定され
ていない限り，コマンドラインでリストアップされているシンボリックリンク
をたどりません．

@item --indicator-style=@var{word}
@opindex --indicator-style
@c Append a character indicator with style @var{word} to entry names,
@c as follows:
@c 
エントリー名にスタイル@var{word}文字表示子を以下のように追加します．
@table @samp
@item none
@c Do not append any character indicator; this is the default.
@c 
あらゆる文字表示子を追加しません．これはデフォルトです．
@item file-type
@c Append @samp{/} for directories, @samp{@@} for symbolic links, @samp{|}
@c for FIFOs, @samp{=} for sockets, and nothing for regular files.  This is
@c the same as the @option{-p} or @option{--file-type} option.
@c 
ディレクトリに対し@samp{/}，シンボリックリンクに対し@samp{@@}，FIFOに
対し@samp{|}，ソケットに対し@samp{=}を追加し，標準ファイルには何も追加
しません．これは@option{-p}や@option{--file-type}オプションと同じです．
@item classify
@c Append @samp{*} for executable regular files, otherwise behave as for
@c @samp{file-type}.  This is the same as the @option{-F} or
@c @option{--classify} option.
@c 
実行可能な標準ファイルに@samp{*}を加え，それ以外は@samp{file-type}とし
て動作します．これは，@option{-F}や@option{--classify}オプションと同じ
です．
@end table

@item -k
@opindex -k
@c Print file sizes in 1024-byte blocks, overriding the default block
@c size (@pxref{Block size}).
@c This option is equivalent to @option{--block-size=1K}.
@c 
ファイルの大きさを1024バイトブロックで出力し，デフォルトのブロックサイ
ズ(@pxref{Block size})に優先します．

@item -m
@itemx --format=commas
@opindex -m
@opindex --format
@opindex commas@r{, outputting between files}
@c List files horizontally, with as many as will fit on each line,
@c separated by @samp{, } (a comma and a space).
@c 
それぞれの行にできるだけ多くフィットするように，@samp{, } (カンマとス
ペース)で分けて，水平方向にリストアップします．

@item -p
@itemx --file-type
@itemx --indicator-style=file-type
@opindex --file-type
@opindex --indicator-style
@cindex file type, marking
@c Append a character to each file name indicating the file type. This is
@c like @option{-F}, except that executables are not marked.
@c 
それぞれのファイル名にファイル形式を示す文字を追加します．これは
@option{-F}に似ていますが，実行可能なものは印を付けません．

@item -x @var{format}
@itemx --format=across
@itemx --format=horizontal
@opindex -x
@opindex --format
@opindex across@r{, listing files}
@opindex horizontal@r{, listing files}
@c List the files in columns, sorted horizontally.
@c 
ファイルを列に，水平にソートしてリストアップします．

@item -T @var{cols}
@itemx --tabsize=@var{cols}
@opindex -T
@opindex --tabsize
@c Assume that each tabstop is @var{cols} columns wide.  The default is 8.
@c @command{ls} uses tabs where possible in the output, for efficiency.  If
@c @var{cols} is zero, do not use tabs at all.
@c 
それぞれのタブストップが@var{cols}列の幅だと考えます．デフォルトは8で
す．@command{ls}は，効率のために出力可能なところではタブを使用します．
@var{cols}が0の場合はタブを全く使用しません．

@item -w
@itemx --width=@var{cols}
@opindex -w
@opindex --width
@vindex COLUMNS
@c Assume the screen is @var{cols} columns wide.  The default is taken
@c from the terminal settings if possible; otherwise the environment
@c variable @env{COLUMNS} is used if it is set; otherwise the default
@c is 80.
@c 
画面が@var{cols}列の幅だと考えます．可能な場合，デフォルトは端末の設定
で与えられます．それ以外で，環境変数@env{COLUMNS}が設定されている場合，
それが使用されます．それ以外の場合，デフォルトの80です．

@end table


@node Formatting file timestamps
@c @subsection Formatting file timestamps
@subsection ファイルのタイムスタンプの書式化

@c By default, file timestamps are listed in abbreviated form.  Most
@c locales use a timestamp like @samp{2002-03-30 23:45}.  However, the
@c default @acronym{POSIX} locale uses a date like @samp{Mar 30@ @ 2002}
@c for non-recent timestamps, and a date-without-year and time like
@c @samp{Mar 30 23:45} for recent timestamps.
@c 
デフォルトで，ファイルのタイムスタンプは短縮した様式でリストアップされ
ます．ほとんどのロカールで@samp{2002-03-30 23:45}のようなタイムスタン
プが使用されます．しかし，デフォルトの@acronym{POSIX}ロカールでは，昔
のタイムスタンプに対し@samp{Mar 30@ @ 2002}のような日付を使用し，最近
のタイムスタンプに対し，@samp{Mar 30 23:45}のように年が無い日付と時間
を使用します．

@c A timestamp is considered to be @dfn{recent} if it is less than six
@c months old, and is not dated in the future.  If a timestamp dated
@c today is not listed in recent form, the timestamp is in the future,
@c which means you probably have clock skew problems which may break
@c programs like @command{make} that rely on file timestamps.
@c 
タイムスタンプは，六カ月未満のものを@dfn{最近のもの(recent)}と考え，未
来のものは日付がつきません．タイムスタンプが今日の場合は，最近のものの
形式でリストアップされず，タイムスタンプが未来のものは，おそらく時間の
歪みの問題があることを意味し，@command{make}のようにファイルのタイムス
タンプに依存しているプログラムでは問題になる可能性があります．

@c The following option changes how file timestamps are printed.
@c 
以下のオプションで，ファイルのタイムスタンプを出力する方法を変更します．

@table @samp
@item --time-style=@var{style}
@opindex --time-style
@cindex time style
@c List timestamps in style @var{style}.  The @var{style} should
@c be one of the following:
@c 
タイムスタンプを@var{style}の形式でリストアップします．@var{style}は以
下の一つにします．

@table @samp
@item +@var{format}
@vindex LC_TIME
@c List timestamps using @var{format}, where @var{format} is interpreted
@c like the format argument of @command{date} (@pxref{date invocation}).
@c For example, @option{--time-style="+%Y-%m-%d %H:%M:%S"} causes
@c @command{ls} to list timestamps like @samp{2002-03-30 23:45:56}.  As
@c with @command{date}, @var{format}'s interpretation is affected by the
@c @env{LC_TIME} locale category.
@c 
@var{format}を使用してタイムスタンプをリストアップし，@var{format}は
@command{date}の書式化引数のように解釈されます(@pxref{date
invocation})．例えば，@option{--time-style="+%Y-%m-%d %H:%M:%S"}で
@command{ls}は@samp{2002-03-30 23:45:56}のようにタイムスタンプをリスト
アップします．@command{date}同様，@var{format}の解釈では@env{LC_TIME} 
ロカールカテゴリの影響を受けます．

@c If @var{format} contains two format strings separated by a newline,
@c the former is used for non-recent files and the latter for recent
@c files; if you want output columns to line up, you may need to insert
@c spaces in one of the two formats.
@c 
@var{format}に二つの書式化文字列が，改行で分けられて存在する場合，前者
は最近のものではないファイルに使用され，後者は最近のファイルに使用され
ます．出力列を並べたい場合，二つの書式の一つにスペースを挿入する必要が
あるかもしれません．

@item full-iso
@c List timestamps in full using @acronym{ISO} 8601 date, time, and time zone
@c format with nanosecond precision, e.g., @samp{2002-03-30
@c 23:45:56.477817180 -0700}.  This style is equivalent to
@c @samp{+%Y-%m-%d %H:%M:%S.%N %z}.
@c 
完全な@acronym{ISO} 8601の日付，時間，タイムゾーンを，ナノ秒の精度を使
用してタイムスタンプをリストアップし，例えば，@samp{2002-03-30
23:45:56.477817180 -0700}のようにします．この形式は@samp{+%Y-%m-%d
%H:%M:%S.%N %z}と等価です．

@c This is useful because the time output includes all the information that
@c is available from the operating system.  For example, this can help
@c explain @command{make}'s behavior, since @acronym{GNU} @command{make}
@c uses the full timestamp to determine whether a file is out of date.
@c 
オペレーティングシステムで利用可能なすべての情報を含んでいる時間の出力
になるので，これは役に立ちます．例えば，ファイルが最新かどうかを決定す
るため，@acronym{GNU} @command{make}は完全なタイムスタンプを使用するの
で，@command{make}の動作を解釈する助けとなります．

@item long-iso
@c List @acronym{ISO} 8601 date and time in minutes, e.g.,
@c @samp{2002-03-30 23:45}.  These timestamps are shorter than
@c @samp{full-iso} timestamps, and are usually good enough for everyday
@c work.  This style is equivalent to @samp{%Y-%m-%d %H:%M}.
@c 
@acronym{ISO} 8601の日付，分単位の時間でリストアップし，例えば，
@samp{2002-03-30 23:45}のようにします．これらのタイムスタンプは，
@samp{full-iso}のタイムスタンプより短く，毎日の作業では通常十分に利用
できるものです．この形式は@samp{%Y-%m-%d %H:%M}と等価です．

@item iso
@c List @acronym{ISO} 8601 dates for non-recent timestamps (e.g.,
@c @samp{2002-03-30@ }), and @acronym{ISO} 8601 month, day, hour, and
@c minute for recent timestamps (e.g., @samp{03-30 23:45}).  These
@c timestamps are uglier than @samp{long-iso} timestamps, but they carry
@c nearly the same information in a smaller space and their brevity helps
@c @command{ls} output fit within traditional 80-column output lines.
@c The following two @command{ls} invocations are equivalent:
@c 
最近のものではないタイムスタンプは@acronym{ISO} 8601(例えば，
@samp{2002-03-30@ })で，最近のものは，月，日，時間，そして分でリストアッ
プします(例えば，@samp{03-30 23:45})．これらのタイムスタンプは，
@samp{long-iso}のタイムスタンプより悪くなりますが，より小さなスペース
で同じ情報を提供し，また簡潔なので@command{ls}の出力は伝統的な80列の出
力行に適しています．以下の二つの@command{ls}の呼び出しは等価です．

@example
newline='
'
ls -l --time-style="+%Y-%m-%d $newline%m-%d %H:%M"
ls -l --time-style="iso"
@end example

@item locale
@vindex LC_TIME
@c List timestamps in a locale-dependent form.  For example, a Finnish
@c locale might list non-recent timestamps like @samp{maalis 30@ @ 2002}
@c and recent timestamps like @samp{maalis 30 23:45}.  Locale-dependent
@c timestamps typically consume more space than @samp{iso} timestamps and
@c are harder for programs to parse because locale conventions vary so
@c widely, but they are easier for many people to read.
@c 
タイムスタンプをロカール依存の様式でリストアップします．例えば，フィン
ランドのロカールでは，最近のものではないタイムスタンプを@samp{maalis
30@ @ 2002}のように，そして最近のもののタイムスタンプを@samp{maalis 30
23:45}のようにリストアップするでしょう．ロカール依存のタイムスタンプは，
通常，@samp{iso}のタイムスタンプよりスペースを使用し，また，ロカールの
慣習は幅広く，プログラムでパースするのはより難しくなりますが，多くの人々
はそれで読み易くなります．

@c The @env{LC_TIME} locale category specifies the timestamp format.  The
@c default @acronym{POSIX} locale uses timestamps like @samp{Mar 30@
@c @ 2002} and @samp{Mar 30 23:45}; in this locale, the following two
@c @command{ls} invocations are equivalent:
@c 
@env{LC_TIME}ロカールカテゴリはタイムスタンプの書式を指定します．デフォ
ルトの@acronym{POSIX}ロカールは，@samp{Mar 30@ 2002}と@samp{Mar 30
23:45}のようなタイムスタンプを使用します．このロカールでは，以下の二つ
の@command{ls}の呼び出しは等価です．

@example
newline='
'
ls -l --time-style="+%b %e  %Y$newline%b %e %H:%M"
ls -l --time-style="locale"
@end example

@c Other locales behave differently.  For example, in a German locale,
@c @option{--time-style="locale"} might be equivalent to
@c @option{--time-style="+%e. %b %Y $newline%e. %b %H:%M"}
@c and might generate timestamps like @samp{30. M@"ar 2002@ } and
@c @samp{30. M@"ar 23:45}.
@c 
それ以外のロカールでは動作は異なります．例えばドイツのロカールでは，
@option{--time-style="locale"}は@option{--time-style="+%e. %b %Y
$newline%e. %b %H:%M"}と等価で，@samp{30. M@"ar 2002@ }と
@samp{30. M@"ar 23:45}のようなタイムスタンプを生成するでしょう．

@item posix-@var{style}
@vindex LC_TIME
@c List @acronym{POSIX}-locale timestamps if the @env{LC_TIME} locale
@c category is @acronym{POSIX}, @var{style} timestamps otherwise.  For
@c example, the default style, which is @samp{posix-long-iso}, lists
@c timestamps like @samp{Mar 30@ @ 2002} and @samp{Mar 30 23:45} when in
@c the @acronym{POSIX} locale, and like @samp{2002-03-30 23:45} otherwise.
@c 
@env{LC_TIME}ロカールが@acronym{POSIX}の場合，タイムスタンプを
@acronym{POSIX}ロカールで，それ以外では@var{style}のタイムスタンプでリ
ストアップします．例えば，デフォルトのスタイル@samp{posix-long-iso}で
は，@acronym{POSIX}ロカールのときは，@samp{Mar 30@ @ 2002}と@samp{Mar
30 23:45}のようなタイムスタンプで，それ以外では@samp{2002-03-30 23:45} 
のようなタイムスタンプでリストアップします．
@end table
@end table

@vindex TIME_STYLE
@c You can specify the default value of the @option{--time-style} option
@c with the environment variable @env{TIME_STYLE}; if @env{TIME_STYLE} is not set
@c the default style is @samp{posix-long-iso}.  @acronym{GNU} Emacs 21 and
@c later can parse @acronym{ISO} dates, but older Emacs versions do not, so if
@c you are using an older version of Emacs and specify a non-@acronym{POSIX}
@c locale, you may need to set @samp{TIME_STYLE="locale"}.
@c 
@option{--time-style}オプションのデフォルト値を，環境変数
@env{TIME_STYLE}を用いて指定することが可能です．@env{TIME_STYLE}が設定
されていない場合，デフォルトのスタイルは@samp{posix-long-iso}です．
@acronym{GNU} Emacs 21とそれ以降では，@acronym{ISO}の日付をパースする
ことは可能ですが，それより古いEmacsのバージョンではそうではないので，
古いバージョンのEmacsを使用していて，@acronym{POSIX}以外のロカールを指
定している場合，@samp{TIME_STYLE="locale"}を設定する必要があるかもしれ
ません．


@node Formatting the file names
@c @subsection Formatting the file names
@subsection ファイル名の書式化

@c These options change how file names themselves are printed.
@c 
これらのオプションは，ファイル名自身を出力する方法を変更します．

@table @samp

@item -b
@itemx --escape
@itemx --quoting-style=escape
@opindex -b
@opindex --escape
@opindex --quoting-style
@cindex backslash sequences for file names
@c Quote nongraphic characters in file names using alphabetic and octal
@c backslash sequences like those used in C.
@c 
ファイル名の表示不可能な文字を，Cで使用されるような，アルファベットと
八進数のバックスラッシュシーケンスを用いて引用符で囲みます．

@item -N
@itemx --literal
@itemx --quoting-style=literal
@opindex -N
@opindex --literal
@opindex --quoting-style
@c Do not quote file names.
@c 
ファイル名を引用符で囲みません．

@item -q
@itemx --hide-control-chars
@opindex -q
@opindex --hide-control-chars
@c Print question marks instead of nongraphic characters in file names.
@c This is the default if the output is a terminal and the program is
@c @command{ls}.
@c 
ファイル名の表示不能な文字の代わりに疑問符を出力します．出力が端末の場
合と，プログラムが@command{ls}の場合，これはデフォルトです．

@item -Q
@itemx --quote-name
@itemx --quoting-style=c
@opindex -Q
@opindex --quote-name
@opindex --quoting-style
@c Enclose file names in double quotes and quote nongraphic characters as
@c in C.
@c 
二重引用符でファイル名を囲み，表示不可能な文字をCのように引用符で囲み
ます．

@item --quoting-style=@var{word}
@opindex --quoting-style
@cindex quoting style
@c Use style @var{word} to quote file names and other strings that may
@c contain arbitrary characters.  The @var{word} should
@c be one of the following:
@c 
ファイル名とその他の任意の文字を含む文字列の引用符に形式@var{word}を使
用します．@var{word}は以下の一つになります．
@table @samp
@item literal
@c Output strings as-is; this is the same as the @option{-N} or
@c @option{--literal} option.
@c 
そのまま文字列を出力します．これは，@option{-N}や@option{--literal}オ
プションと同じです．
@item shell
@c Quote strings for the shell if they contain shell metacharacters or would
@c cause ambiguous output.
@c The quoting is suitable for @acronym{POSIX}-compatible shells like
@c @command{bash}, but it does not always work for incompatible shells
@c like @command{csh}.
@c 
文字列にシェルのメタ文字を含んでいたり，不明瞭な出力を生じる場合，引用
符で囲みます．引用符で囲むことは，@command{bash}のような
@acronym{POSIX}互換のシェルに対しては適切ですが，@command{csh}のように
互換性の無いシェルで常に動作するわけではありません．

@item shell-always
@c Quote strings for the shell, even if they would normally not require quoting.
@c 
シェルに対して，通常は引用符が不要な場合でも文字列を引用符で囲みます．
@item c
@c Quote strings as for C character string literals, including the
@c surrounding double-quote characters; this is the same as the
@c @option{-Q} or @option{--quote-name} option.
@c 
Cの文字列リテラルのように文字列を引用符で囲み，それには周りの二重引用
符が含まれ．これは@option{-Q}や@option{--quote-name}オプションと同じで
す．
@item escape
@c Quote strings as for C character string literals, except omit the
@c surrounding double-quote
@c characters; this is the same as the @option{-b} or @option{--escape} option.
@c 
Cの文字列リテラルのように文字列を引用符で囲みますが，周りの二重引用符
は省略したものになります．これは，@option{-b}や@option{--escape}オプショ
ンと同じです．
@item clocale
@c Quote strings as for C character string literals, except use
@c surrounding quotation marks appropriate for the
@c locale.
@c 
Cの文字列リテラルのように文字列を引用符で囲みますが，周りの引用符はロ
カールに適したものになります．
@item locale
@c Use @t instead of @samp to avoid duplicate quoting in some output styles.
@c 
@c Quote strings as for C character string literals, except use
@c surrounding quotation marks appropriate for the locale, and quote
@c @t{`like this'} instead of @t{"like
@c this"} in the default C locale.  This looks nicer on many displays.
@c 
Cの文字列リテラルのように文字列を引用符で囲みますが，周りの引用符はロ
カールに適したものになり，デフォルトのCロカールでは@t{"like this"}の代
わりに@t{`like this'}のように引用符で囲みます．これは多くのディスプレ
イでより良く見えます．
@end table

@c You can specify the default value of the @option{--quoting-style} option
@c with the environment variable @env{QUOTING_STYLE}.  If that environment
@c variable is not set, the default value is @samp{literal}, but this
@c default may change to @samp{shell} in a future version of this package.
@c 
@option{--quoting-style}オプションのデフォルト値を，環境変数
@env{QUOTING_STYLE}で指定することが可能です．環境変数が設定されていな
い場合，デフォルト値は@samp{literal}ですが，このデフォルトは，このパッ
ケージの将来のバージョンで@samp{shell}に変更されるかもしれません．

@item --show-control-chars
@opindex --show-control-chars
@c Print nongraphic characters as-is in file names.
@c This is the default unless the output is a terminal and the program is
@c @command{ls}.
@c 
ファイル名の出力不可能な文字をそのまま出力します．出力が端末の場合やプ
ログラムが@command{ls}の場合以外では，これがデフォルトです．

@end table


@node dir invocation
@c @section @command{dir}: Briefly list directory contents
@section @command{dir}: ディレクトリの内容の短いリスト

@pindex dir
@cindex directory listing, brief

@c @command{dir} (also installed as @command{d}) is equivalent to @code{ls -C
@c -b}; that is, by default files are listed in columns, sorted vertically,
@c and special characters are represented by backslash escape sequences.
@c 
@command{dir}(と@code{d}としてインストールされるもの)は，@code{ls -C
-b}と同じです．すなわち，デフォルトでファイルは列にリストアップされ，
縦方向に並べ替えされ，そして特殊文字はバックスペースエスケープシーケン
スで再表現されます．

@xref{ls invocation, @command{ls}}.


@node vdir invocation
@c @section @command{vdir}: Verbosely list directory contents
@section @command{vdir}: ディレクトリの内容の冗長なリスト

@pindex vdir
@cindex directory listing, verbose

@c @command{vdir} (also installed as @command{v}) is equivalent to @code{ls -l
@c -b}; that is, by default files are listed in long format and special
@c characters are represented by backslash escape sequences.
@c 
@command{vdir}は(@code{v}としてインストールされるものも)，@code{ls -l
-b}と同じです．すなわち，デフォルトでファイルは長い書式でリストアップ
され，特殊文字はバックスペースエスケープシーケンスで再表現されます．

@node dircolors invocation
@c @section @command{dircolors}: Color setup for @command{ls}
@section @command{dircolors}: @command{ls}の色をセットアップ

@pindex dircolors
@cindex color setup
@cindex setup for color

@c @command{dircolors} outputs a sequence of shell commands to set up the
@c terminal for color output from @command{ls} (and @command{dir}, etc.).
@c Typical usage:
@c 
@command{dircolors}は，@command{ls} (と@command{dir}等)から出力する色
のために端末を設定する連続したシェルコマンドを出力します．一般的な使用
方法は以下の通りです．

@example
eval `dircolors [@var{option}]@dots{} [@var{file}]`
@end example

@c If @var{file} is specified, @command{dircolors} reads it to determine which
@c colors to use for which file types and extensions.  Otherwise, a
@c precompiled database is used.  For details on the format of these files,
@c run @samp{dircolors --print-database}.
@c 
@var{file}が指定されている場合，@command{dircolors}は，ファイル形式と
拡張子に対して使用する色を決定するために，それを読み込みます．それ以外
の場合，前もってコンパイルされたデータベースが使用されます．これらのファ
イルの書式の詳細のため，@samp{dircolors --print-database}を実行してく
ださい．

@vindex LS_COLORS
@vindex SHELL @r{environment variable, and color}
@c The output is a shell command to set the @env{LS_COLORS} environment
@c variable.  You can specify the shell syntax to use on the command line,
@c or @command{dircolors} will guess it from the value of the @env{SHELL}
@c environment variable.
@c 
出力は，@env{LS_COLORS}環境変数を設定するためのシェルコマンドです．コ
マンドラインで使用するシェル構文を指定することが可能で，そうでなければ
@command{dircolors}は@code{SHELL}環境変数の値から判別します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp
@item -b
@itemx --sh
@itemx --bourne-shell
@opindex -b
@opindex --sh
@opindex --bourne-shell
@cindex Bourne shell syntax for color setup
@cindex @command{sh} syntax for color setup
@c Output Bourne shell commands.  This is the default if the @env{SHELL}
@c environment variable is set and does not end with @samp{csh} or
@c @samp{tcsh}.
@c 
Bourneシェルコマンドを出力します．@env{SHELL}環境変数が設定されていて，
@samp{csh}や@samp{tcsh}で終わらない場合，これはデフォルトです．

@item -c
@itemx --csh
@itemx --c-shell
@opindex -c
@opindex --csh
@opindex --c-shell
@cindex C shell syntax for color setup
@cindex @command{csh} syntax for color setup
@c Output C shell commands.  This is the default if @code{SHELL} ends with
@c @command{csh} or @command{tcsh}.
@c 
Cシェルコマンドを出力します．@env{SHELL}が@samp{csh}や@samp{tcsh}で終
わる場合，これがデフォルトです．

@item -p
@itemx --print-database
@opindex -p
@opindex --print-database
@cindex color database, printing
@cindex database for color setup, printing
@cindex printing color database
@c Print the (compiled-in) default color configuration database.  This
@c output is itself a valid configuration file, and is fairly descriptive
@c of the possibilities.
@c 
(組み込みの)デフォルトカラーの設定データベースを出力します．この出力は，
それ自身有効な設定ファイルで，可能性をすべて記述しています．

@end table

@exitstatus


@node Basic operations
@c @chapter Basic operations
@chapter 基本的なオペレーション

@cindex manipulating files

@c This chapter describes the commands for basic file manipulation:
@c copying, moving (renaming), and deleting (removing).
@c 
この章は，基本的なファイル操作に対するコマンドを記述します．コピー，移
動(名前の変更)，そして削除(リムーブ)です．

@menu
* cp invocation::               Copy files.
* dd invocation::               Convert and copy a file.
* install invocation::          Copy files and set attributes.
* mv invocation::               Move (rename) files.
* rm invocation::               Remove files or directories.
* shred invocation::            Remove files more securely.
@end menu


@node cp invocation
@c @section @command{cp}: Copy files and directories
@section @command{cp}: ファイルとディレクトリのコピー

@pindex cp
@cindex copying files and directories
@cindex files, copying
@cindex directories, copying

@c @command{cp} copies files (or, optionally, directories).  The copy is
@c completely independent of the original.  You can either copy one file to
@c another, or copy arbitrarily many files to a destination directory.
@c Synopsis:
@c 
@command{cp}は，ファイル(または，オプションでディレクトリ)をコピーしま
す．コピーはオリジナルから完全に独立しています．一つのファイルをもう一
つにコピーする，または，任意の多くのファイルをコピー先のディレクトリに
コピーすることのいずれかが可能です．概要です．

@example
cp [@var{option}]@dots{} @var{source} @var{dest}
cp [@var{option}]@dots{} @var{source}@dots{} @var{directory}
@end example

@c If the last argument names an existing directory, @command{cp} copies each
@c @var{source} file into that directory (retaining the same name).
@c Otherwise, if only two files are given, it copies the first onto the
@c second.  It is an error if the last argument is not a directory and more
@c than two non-option arguments are given.
@c 
最後の引数が既存のディレクトリを指す場合，@command{cp}はそれぞれの
@var{source}ファイルをそのディレクトリに(同じ名前のままで)コピーします．
それ以外で，二つのファイルが与えられた場合，最初のものを二番目のものに
コピーします．最後の引数がディレクトリでなく，二つ以上のオプションでな
い引数が与えられた場合エラーとなります．

@c Generally, files are written just as they are read.  For exceptions,
@c see the @option{--sparse} option below.
@c 
一般的に，ファイルは読み込まれたとおりに書き込まれます．例外は，以下の
@option{--sparse}オプションを参照してください．

@c By default, @command{cp} does not copy directories.  However, the
@c @option{-R}, @option{-a}, and @option{-r} options cause @command{cp} to
@c copy recursively by descending into source directories and copying files
@c to corresponding destination directories.
@c 
デフォルトで，@command{cp}はディレクトリをコピーしません．しかし，
@option{-R}，@option{-a}，そして@option{-r}オプションでは，
@command{cp}は元のディレクトリを下り，対応するコピー先のディレクトリに
ファイルをコピーすることで，再帰的にコピーします．

@c By default, @command{cp} follows symbolic links only when not copying
@c recursively.  This default can be overridden with the
@c @option{--archive} (@option{-a}), @option{-d}, @option{--dereference}
@c (@option{-L}), @option{--no-dereference} (@option{-P}), and
@c @option{-H} options.  If more than one of these options is specified,
@c the last one silently overrides the others.
@c 
デフォルトで，@command{cp}は再帰的にコピーしないときのみ，シンボリック
リンクをたどります．このデフォルトは，@option{--no-dereference}
(@option{-d})，@option{--dereference} (@option{-L})，そして@option{-H}
オプションで優先することが可能です．これらのオプションの一つ以上が指定
されている場合，最後のものが他のものに対して，そのまま優先します．

@c By default, @command{cp} copies the contents of special files only
@c when not copying recursively.  This default can be overridden with the
@c @option{--copy-contents} option.
@c 
デフォルトで，@command{cp}は，再帰的なコピーではないときだけ特殊ファイ
ルの内容をコピーします．このデフォルトは，@option{--copy-contents}オプ
ションで優先させることが可能です．

@cindex self-backups
@cindex backups, making only
@c @command{cp} generally refuses to copy a file onto itself, with the
@c following exception: if @option{--force --backup} is specified with
@c @var{source} and @var{dest} identical, and referring to a regular file,
@c @command{cp} will make a backup file, either regular or numbered, as
@c specified in the usual ways (@pxref{Backup options}).  This is useful when
@c you simply want to make a backup of an existing file before changing it.
@c 
@command{cp}は一般的に，以下の例外はありますが，ファイルの自分自身への
コピーを拒絶します．@option{--force --backup}が同一の@var{source}と
@var{dest}で指定され，通常のファイルを参照している場合，@command{cp}は，
通常の方法(@pxref{Backup options})で指定されたように，通常または番号付
きのバックアップファイルを作成します．これは，変更前に既存のファイルの
バックアップを単に作成したいとき役に立ちます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp
@item -a
@itemx --archive
@opindex -a
@opindex --archive
@c Preserve as much as possible of the structure and attributes of the
@c original files in the copy (but do not attempt to preserve internal
@c directory structure; i.e., @samp{ls -U} may list the entries in a copied
@c directory in a different order).
@c Equivalent to @option{-dpPR}.
@c 
コピー時に，元のファイルの構造と属性を可能な限り保持します(しかし，ディ
レクトリ構造の保持は試みません．すなわち，@samp{ls -U}はコピーされてい
るディレクトリの項目を，異なる順序でリストアップする可能性があります)．
@option{-dpR}と同じです．

@item -b
@itemx @w{@kbd{--backup}[=@var{method}]}
@opindex -b
@opindex --backup
@vindex VERSION_CONTROL
@cindex backups, making
@c @xref{Backup options}.
@c Make a backup of each file that would otherwise be overwritten or removed.
@c As a special case, @command{cp} makes a backup of @var{source} when the force
@c and backup options are given and @var{source} and @var{dest} are the same
@c name for an existing, regular file.  One useful application of this
@c combination of options is this tiny Bourne shell script:
@c 
@xref{Backup options}.  上書きされたり削除されたりするそれぞれのファイ
ルのバックアップを作成します．特殊な場合として，強制とバックアップのオ
プションが指定され，@var{source}と@var{dest}が同じ名前で存在していると
き，通常のファイルとして，@command{cp}は@var{source}のバックアップを作
成します．このオプションの組合わせの役に立つ応用の一つは，以下の小さな
Bourneシェルスクリプトです．

@example
#!/bin/sh
# Usage: backup FILE...
# Create a @sc{gnu}-style backup of each listed FILE.
for i; do
  cp --backup --force "$i" "$i"
done
@end example

@item --copy-contents
@cindex directories, copying recursively
@cindex copying directories recursively
@cindex recursively copying directories
@cindex non-directories, copying as special files
@c If copying recursively, copy the contents of any special files (e.g.,
@c FIFOs and device files) as if they were regular files.  This means
@c trying to read the data in each source file and writing it to the
@c destination.  It is usually a mistake to use this option, as it
@c normally has undesirable effects on special files like FIFOs and the
@c ones typically found in the @file{/dev} directory.  In most cases,
@c @code{cp -R --copy-contents} will hang indefinitely trying to read
@c from FIFOs and special files like @file{/dev/console}, and it will
@c fill up your destination disk if you use it to copy @file{/dev/zero}.
@c This option has no effect unless copying recursively, and it does not
@c affect the copying of symbolic links.
@c 
再帰的にコピーをしている場合，特殊ファイル(例えばFIFOとデバイスファイ
ル)の内容を通常のファイルのようにコピーします．これは，それぞれのソー
スファイルからデータを読み込み，それをコピー先に書き込むことを意味しま
す．通常は，FIFOと@file{/dev}ディレクトリで見つかるような特殊ファイル
では好ましくない効果があるので，このオプションの使い方はよく誤解されま
す．ほとんどの状況で，FIFOと@file{/dev/console}のような特殊ファイルを
読み込もうとして@code{cp -R --copy-contents}は限りなく読み込み続け，
@file{/dev/zero}をコピーで使用している場合，コピー先のディスクはいっぱ
いになるでしょう．このオプションは，再帰的にコピーしていない限り効果が
無く，シンボリックリンクのコピーにも影響しません．

@item -d
@opindex -d
@cindex symbolic links, copying
@cindex hard links, preserving
@c Copy symbolic links as symbolic links rather than copying the files that
@c they point to, and preserve hard links between source files in the copies.
@c Equivalent to @option{--no-dereference --preserve=links}.
@c 
シンボリックリンクを，それが示すファイルをコピーするのではなく，シンボ
リックリンクとしてコピーし，コピーのソースファイル間のハードリンクを保
持します．@option{--no-dereference --preserve=links}と等価です．

@item -f
@itemx --force
@opindex -f
@opindex --force
@c When copying without this option and an existing destination file cannot
@c be opened for writing, the copy fails.  However, with @option{--force}),
@c when a destination file cannot be opened, @command{cp} then unlinks it and
@c tries to open it again.  Contrast this behavior with that enabled by
@c @option{--link} and @option{--symbolic-link}, whereby the destination file
@c is never opened but rather is unlinked unconditionally.  Also see the
@c description of @option{--remove-destination}.
@c 
このオプションを使用せずコピーし，コピー先のファイルが存在し，書き込み
で開くことができないとき，コピーは失敗します．しかし，@option{--force} 
を用いた場合，コピー先のファイルが開けないとき，@command{cp}はそれをア
ンリンクし，もう一度開こうとします．この動作は，@option{--link}と
@option{--symbolic-link}でそれを可能にすることとは異なり，それによって
コピー先ファイルは開かれることなく，無条件にアンリンクされます．
@option{--remove-destination}の記述も参照してください．

@item -H
@opindex -H
@c If a command line argument specifies a symbolic link, then copy the
@c file it points to rather than the symbolic link itself.  However,
@c copy (preserving its nature) any symbolic link that is encountered
@c via recursive traversal.
@c 
コマンドライン引数がシンボリックリンクを指定している場合，シンボリック
リンクではなく，ファイルをその位置にコピーします．しかし，再帰的にたどっ
ていて見つかったすべてのシンボリックリンクを(その元を保存して)コピーし
ます．

@item -i
@itemx --interactive
@opindex -i
@opindex --interactive
@c Prompt whether to overwrite existing regular destination files.
@c 
既存の通常のコピー先のファイルを上書きするかどうか，プロンプトを表示し
ます．

@item -l
@itemx --link
@opindex -l
@opindex --link
@c Make hard links instead of copies of non-directories.
@c 
ディレクトリ以外はコピーの代わりにハードリンクを作成します．

@item -L
@itemx --dereference
@opindex -L
@opindex --dereference
@c Always follow symbolic links.
@c 
常にシンボリックリンクをたどります．

@item -P
@itemx --no-dereference
@opindex -P
@opindex --no-dereference
@cindex symbolic links, copying
@c Copy symbolic links as symbolic links rather than copying the files that
@c they point to.
@c 
シンボリックリンクを，それが示すファイルをコピーするのではなくシンボリッ
クリンクとしてコピーします．

@item -p
@itemx @w{@kbd{--preserve}[=@var{attribute_list}]}
@opindex -p
@opindex --preserve
@cindex file information, preserving
@c Preserve the specified attributes of the original files.
@c If specified, the @var{attribute_list} must be a comma-separated list
@c of one or more of the following strings:
@c 
指定されている元のファイルの属性を保持します．指定する場合，
@var{attribute_list}は以下の文字列の一つ以上を，カンマで分離されたリス
トにする必要があります．

@table @samp
@itemx mode
@c Preserve the permission attributes.
@c 
許可の属性を保持します．
@itemx ownership
@c Preserve the owner and group.  On most modern systems,
@c only the super-user may change the owner of a file, and regular users
@c may preserve the group ownership of a file only if they happen to be
@c a member of the desired group.
@c 
所有者とグループの属性を保持します．最近のシステムでは，スーパーユーザ
のみファイルの所有者を変更することが可能で，通常のユーザは，要求される
グループのメンバーの場合のみ，ファイルの所有者のグループを保持すること
が可能です．
@itemx timestamps
@c Preserve the times of last access and last modification.
@c 
最後のアクセスと最後の編集のタイムスタンプを保持します．
@itemx links
@c Preserve in the destination files
@c any links between corresponding source files.
@c 
対応するソースファイル間のリンクをコピー先のファイルに保持します．
@c Give examples illustrating how hard links are preserved.
@c Also, show how soft links map to hard links with -L and -H.
@itemx all
@c Preserve all file attributes.
@c Equivalent to specifying all of the above.
@c 
すべてのファイル属性を保持します．上記のすべてを指定したものと等価です．
@c Mention ACLs here.
@end table

@c Using @option{--preserve} with no @var{attribute_list} is equivalent
@c to @option{--preserve=mode,ownership,timestamps}.
@c 
@var{attribute_list}を用いずに@option{--preserve}を使用することは，
@option{--preserve=mode,ownership,timestamps}と等価です．

@c In the absence of this option, each destination file is created with the
@c permissions of the corresponding source file, minus the bits set in the
@c umask and minus the set-user-id and set-group-id bits. @xref{File permissions}.
@c 
このオプションがないとき，それぞれのコピー先のファイルは，元のファイル
に対応するパーミッションで作成され，umaskで設定されているビットがなく
なり，そして，set-user-idビットとset-group-idビットがなくなります．
@xref{File permissions}.

@itemx @w{@kbd{--no-preserve}=@var{attribute_list}}
@cindex file information, preserving
@c Do not preserve the specified attributes.  The @var{attribute_list}
@c has the same form as for @option{--preserve}.
@c 
指定された属性を保持しません．@var{attribute_list}は
@option{--preserve}の形式と同じです．

@itemx --parents
@opindex --parents
@cindex parent directories and @command{cp}
@c Form the name of each destination file by appending to the target
@c directory a slash and the specified name of the source file.  The last
@c argument given to @command{cp} must be the name of an existing directory.
@c For example, the command:
@c 
それぞれのコピー先のファイル名を，ターゲットディレクトリにスラッシュと
指定されたソースファイルの名前を追加したものとして作成します．
@command{cp}に与える最後の引数は，既存のディレクトリ名にする必要があり
ます．例えば，以下のようなコマンドを入力します．

@example
cp --parents a/b/c existing_dir
@end example

@noindent
@c copies the file @file{a/b/c} to @file{existing_dir/a/b/c}, creating
@c any missing intermediate directories.
@c 
これはファイル@file{a/b/c}を@file{existing_dir/a/b/c}にコピーし，存在
しないあらゆる中間ディレクトリを作成します．

@itemx @w{@kbd{--reply}[=@var{how}]}
@opindex --reply
@cindex interactivity
@c Using @option{--reply=yes} makes @command{cp} act as if @samp{yes} were
@c given as a response to every prompt about a destination file.  That effectively
@c cancels any preceding @option{--interactive} or @option{-i} option.
@c Specify @option{--reply=no} to make @command{cp} act as if @samp{no} were
@c given as a response to every prompt about a destination file.
@c Specify @option{--reply=query} to make @command{cp} prompt the user
@c about each existing destination file.
@c 
@option{--reply=yes}を使用すると，コピー先のファイルに関するすべてのプ
ロンプトに対する応答として@samp{yes}が与えられたかのように@command{cp} 
が動作します．それは，それまでに使用されていた@option{--interactive}や
@option{-i}オプションを効果的に停止します．コピー先のファイルに関する
すべてのプロンプトに対する応答として@samp{no}が与えられたかのように
@command{cp}に動作させるため，@option{--reply=no}を指定して下さい．そ
れぞれ既存のコピー先のファイルに関して，@command{cp}がユーザにプロンプ
トを表示するようにするため，@option{--reply=query}を指定して下さい．

@item -R
@itemx -r
@itemx --recursive
@opindex -R
@opindex -r
@opindex --recursive
@cindex directories, copying recursively
@cindex copying directories recursively
@cindex recursively copying directories
@cindex non-directories, copying as special files
@c Copy directories recursively.  Symbolic links are not followed by
@c default; see the @option{--archive} (@option{-a}), @option{-d},
@c @option{--dereference} (@option{-L}), @option{--no-dereference}
@c (@option{-P}), and @option{-H} options.  Special files are copied by
@c creating a destination file of the same type as the source; see the
@c @option{--copy-contents} option.  It is not portable to use
@c @option{-r} to copy symbolic links or special files.  On some
@c non-@sc{gnu} systems, @option{-r} implies the equivalent of
@c @option{-L} and @option{--copy-contents} for historical reasons.
@c Also, it is not portable to use @option{-R} to copy symbolic links
@c unless you also specify @option{-P}, as @acronym{POSIX} allows
@c implementations that dereference symbolic links by default.
@c 
再帰的にディレクトリをコピーします．デフォルトではシンボリックリンクを
たどりません．@option{--archive} (@option{-a})，@option{-d}，
@option{--dereference} (@option{-L})，@option{--no-dereference}
(@option{-P})，そして@option{-H}オプションを参照して下さい．特殊ファイ
ルは，元となるファイルと同じ形式でコピー先のファイルを作成することでコ
ピーします．@option{--copy-contents}オプションを参照して下さい．シンボ
リックリンクや特殊ファイルをコピーするために@option{-r}を使用すること
には移植性がありません．@sc{gnu}以外のシステムには，歴史的な理由から
@option{-r}で@option{-L}と@option{--copy-contents}の等価物を暗黙に指定
するものもあります．また，シンボリックリンクをコピーするため
@option{-R}を使用することは，@option{-P}も指定しない限り移植性が無く，
それは，デフォルトでシンボリックリンクの間接参照を行なう実装が
@acronym{POSIX}で許可されているためです．

@item --remove-destination
@opindex --remove-destination
@c Remove each existing destination file before attempting to open it
@c (contrast with @option{-f} above).
@c 
それぞれの既存のコピー先ファイルを，それを開く前に削除します(上記の
@option{-f}とは異なります)．

@item --sparse=@var{when}
@opindex --sparse=@var{when}
@cindex sparse files, copying
@cindex holes, copying files with
@findex read @r{system call, and holes}
@c A @dfn{sparse file} contains @dfn{holes}---a sequence of zero bytes that
@c does not occupy any physical disk blocks; the @samp{read} system call
@c reads these as zeroes.  This can both save considerable disk space and
@c increase speed, since many binary files contain lots of consecutive zero
@c bytes.  By default, @command{cp} detects holes in input source files via a crude
@c heuristic and makes the corresponding output file sparse as well.
@c Only regular files may be sparse.
@c 
@dfn{まばらなファイル(sparse file)}は@dfn{穴(holes)} --- 物理的なディ
スクブロックには発生しないゼロバイトの列 --- を含みます．@samp{read}シ
ステムコールはこれらをゼロとして読み込みます．バイナリファイルには連続
するゼロバイトを含むことが多いので，これでディスクスペースの節約と速度
の増加の両方を達成することが可能です．デフォルトでは，@command{cp}は発
見的手法を用いて入力された元ファイルの穴を見付け，対応する出力ファイル
に同様にまばらにします．通常のファイルだけがまばらになります．

@c The @var{when} value can be one of the following:
@c 
@var{when}の値は以下の一つになります．
@table @samp
@item auto
@c The default behavior: if the input file is sparse, attempt to make
@c the output file sparse, too.  However, if an output file exists but
@c refers to a non-regular file, then do not attempt to make it sparse.
@c 
デフォルトの動作です：入力ファイルがまばらの場合，出力ファイルもまばら
にするように試みます．しかし，出力ファイルが存在し，通常のファイルでは
ないものを参照している場合，まばらにする試みは行ないません．

@item always
@c For each sufficiently long sequence of zero bytes in the input file,
@c attempt to create a corresponding hole in the output file, even if the
@c input file does not appear to be sparse.
@c This is useful when the input file resides on a filesystem
@c that does not support sparse files
@c (for example,  @samp{efs} filesystems in SGI IRIX 5.3 and earlier),
@c but the output file is on a type of filesystem that does support them.
@c Holes may be created only in regular files, so if the destination file
@c is of some other type, @command{cp} does not even try to make it sparse.
@c 
入力ファイルの十分に長いゼロバイトの連続に対し，入力ファイルがまばらで
ない場合でも，出力ファイルに対応する穴(連続したゼロバイト)の作成を試み
ます．これは，入力ファイルがまばらなファイルをサポートしていないファイ
ルシステム(例えば，SGI IRIX 5.3とそれ以前の@samp{efs}ファイルシステム) 
に存在していて，出力ファイルがサポートしているファイルシステムのとき役
に立ちます．穴(連続したゼロバイト)は通常のファイルにだけ作成されるので，
コピー先のファイルが通常のファイルではない場合，@command{cp}はまばらに
しようとはしません．

@item never
@c Never make the output file sparse.
@c This is useful in creating a file for use with the @command{mkswap} command,
@c since such a file must not have any holes.
@c 
出力ファイルをまばらにしません．@command{mkswap}コマンドを用いてファイ
ルを作成するとき，そのようなファイルには穴があってはならないので，これ
が役に立ちます．
@end table

@optStripTrailingSlashes

@item -s
@itemx --symbolic-link
@opindex -s
@opindex --symbolic-link
@cindex symbolic links, copying with
@c Make symbolic links instead of copies of non-directories.  All source
@c file names must be absolute (starting with @samp{/}) unless the
@c destination files are in the current directory.  This option merely
@c results in an error message on systems that do not support symbolic links.
@c 
ディレクトリでないものをコピーする代わりにシンボリックリンクを作成しま
す．すべての元ファイル名は，リンク先のファイルが現在のディレクトリにあ
る場合以外，絶対的である(@samp{/}で始まる)必要があります．シンボリック
リンクをサポートしないシステムでは，このオプションは結果としてエラーメッ
セージを返すだけです．

@optBackupSuffix

@optTargetDirectory

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Print the name of each file before copying it.
@c 
コピーする前にそれぞれのファイル名を出力します．

@optVersionControl

@item -x
@itemx --one-file-system
@opindex -x
@opindex --one-file-system
@cindex filesystems, omitting copying to different
@c Skip subdirectories that are on different filesystems from the one that
@c the copy started on.
@c However, mount point directories @emph{are} copied.
@c 
コピーを開始したファイルシステムと異なるサブディレクトリを省略します．
しかし，マウントポイントのディレクトリはコピー@emph{されます}．

@end table

@exitstatus


@node dd invocation
@c @section @command{dd}: Convert and copy a file
@section @command{dd}: ファイルの変換とコピー

@pindex dd
@cindex converting while copying a file

@c @command{dd} copies a file (from standard input to standard output, by
@c default) with a changeable I/O block size, while optionally performing
@c conversions on it.  Synopsis:
@c 
@command{dd}は，変更可能なI/Oブロックサイズを用いて，(デフォルトで，標
準入力から標準出力に)ファイルをコピーし，オプションの動作でそれを変更
します．概要です．

@example
dd [@var{option}]@dots{}
@end example

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは，以下のオプションも受け入れます．@ref{Common options}も参
照してください．

@cindex multipliers after numbers
@c The numeric-valued options below (@var{bytes} and @var{blocks}) can be
@c followed by a multiplier: @samp{b}=512, @samp{c}=1,
@c @samp{w}=2, @samp{x@var{m}}=@var{m}, or any of the
@c standard block size suffixes like @samp{k}=1024 (@pxref{Block size}).
@c 
以下の(@var{bytes}と@var{blocks})数値的な値のオプションを続けて倍数に
することが可能です．それは，@samp{b}=512，@samp{c}=1，@samp{w}=2，
@samp{x@var{m}}=@var{m}，または@samp{k}=1024のようなあらゆるブロックサ
イズ接尾子です(@pxref{Block size})．

@c Use different @command{dd} invocations to use different block sizes for
@c skipping and I/O.  For example, the following shell commands copy data
@c in 512 KiB blocks between a disk and a tape, but do not save or restore a
@c 4 KiB label at the start of the disk:
@c 
スキップとI/Oに対し異なるブロックサイズを使用するためは，@command{dd} 
の呼び出しを別々に行なってください．例えば，以下のシェルコマンドでは，
ディスクとテープの間で512kBブロックでデータをコピーしますが，ディスク
の最初の4kBのラベルは，保存されたり復元されたりしません．

@example
disk=/dev/rdsk/c0t1d0s2
tape=/dev/rmt/0

# Copy all but the label from disk to tape.
(dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape

# Copy from tape back to disk, but leave the disk label alone.
(dd bs=4k seek=1 count=0 && dd bs=512k) <$tape >$disk
@end example

@c Note that sending a @samp{SIGUSR1} signal to a running @command{dd}
@c process makes it print to standard error the number of records read
@c and written so far, then to resume copying.  In the example below,
@c @command{dd} is run in the background to copy 10 million blocks.
@c The @command{kill} command makes it output the first pair of
@c intermediate record counts,
@c and when @command{dd} completes, it outputs the final pair.
@c 
@samp{SIGUSR1}シグナルを実行中の@command{dd}に送ることで，標準エラー出
力にレコード番号を出力し，そのまま続けて書き込み，コピーを再開します．
以下の例では，@command{dd}を10Mブロックをコピーする処理をバックグラン
ドで実行しています．@command{kill}コマンドで，直前のレコード数の最初の
組を出力し，@command{dd}が終了したとき最後の組を出力します．

@example
$ dd if=/dev/zero of=/dev/null count=10M & pid=$!
$ kill -USR1 $pid; sleep 99
5403604+0 records in
5403604+0 records out
10485760+0 records in
10485760+0 records out
@end example


@table @samp

@item if=@var{file}
@opindex if
@c Read from @var{file} instead of standard input.
@c 
標準入力の代わりに@var{file}から読み込みます．

@item of=@var{file}
@opindex of
@c Write to @var{file} instead of standard output.  Unless
@c @samp{conv=notrunc} is given, @command{dd} truncates @var{file} to zero
@c bytes (or the size specified with @samp{seek=}).
@c 
標準出力の代わりに@var{file}に書き出します．@samp{conv=notrunc}が与え
られていない場合，@command{dd}は@var{file}をゼロバイト(または，
@samp{seek=}で指定されたサイズ)に切り詰めます．

@item ibs=@var{bytes}
@opindex ibs
@cindex block size of input
@cindex input block size
@c Read @var{bytes} bytes at a time.
@c 
一度に@var{bytes}バイト読み込みます．

@item obs=@var{bytes}
@opindex obs
@cindex block size of output
@cindex output block size
@c Write @var{bytes} bytes at a time.
@c 
一度に@var{bytes}バイト書き出します．

@item bs=@var{bytes}
@opindex bs
@cindex block size
@c Both read and write @var{bytes} bytes at a time.  This overrides
@c @samp{ibs} and @samp{obs}.
@c 
一度に@var{bytes}バイト読み書きします．これは@samp{ibs}と@samp{obs}に
優先します．

@item cbs=@var{bytes}
@opindex cbs
@cindex block size of conversion
@cindex conversion block size
@c Convert @var{bytes} bytes at a time.
@c 
一度に@var{bytes}バイト変換します．

@item skip=@var{blocks}
@opindex skip
@c Skip @var{blocks} @samp{ibs}-byte blocks in the input file before copying.
@c 
コピーする前に入力ファイルで，@var{blocks} @samp{ibs}バイトブロックを
読み飛ばします．

@item seek=@var{blocks}
@opindex seek
@c Skip @var{blocks} @samp{obs}-byte blocks in the output file before copying.
@c 
コピーする前に出力ファイルで，@var{blocks} @samp{ibs}バイトブロックを
読み飛ばします．

@item count=@var{blocks}
@opindex count
@c Copy @var{blocks} @samp{ibs}-byte blocks from the input file, instead
@c of everything until the end of the file.
@c 
ファイルの終りまでのすべてではなく，入力ファイルから@var{blocks}
@samp{ibs}バイトブロックコピーします．

@item conv=@var{conversion}[,@var{conversion}]@dots{}
@opindex conv
@c Convert the file as specified by the @var{conversion} argument(s).
@c (No spaces around any comma(s).)
@c 
@var{conversion}引数で指定されたようにファイルを変換します．(カンマの
回りにスペースはありません．)

@c Conversions:
@c 
以下の変換です．

@table @samp

@item ascii
@opindex ascii@r{, converting to}
@c Convert @acronym{EBCDIC} to @acronym{ASCII}.
@c 
@acronym{EBCDIC}を@acronym{ASCII}に変換します．

@item ebcdic
@opindex ebcdic@r{, converting to}
@c Convert @acronym{ASCII} to @acronym{EBCDIC}.
@c 
@acronym{ASCII}を@acronym{EBCDIC}に変換します．

@item ibm
@opindex alternate ebcdic@r{, converting to}
@c Convert @acronym{ASCII} to alternate @acronym{EBCDIC}.
@c 
@acronym{ASCII}を別の@acronym{EBCDIC}に変換します．

@item block
@opindex block @r{(space-padding)}
@c For each line in the input, output @samp{cbs} bytes, replacing the
@c input newline with a space and padding with spaces as necessary.
@c 
入力のそれぞれの行に対し，入力の改行をスペースに置換し，必要なスペース
を埋め込みながら，@samp{cbs}バイト出力します．

@item unblock
@opindex unblock
@c Replace trailing spaces in each @samp{cbs}-sized input block with a
@c newline.
@c 
それぞれの@samp{cbs}の大きさの入力ブロックで，末尾のスペースを改行に置
換します．

@item lcase
@opindex lcase@r{, converting to}
@c Change uppercase letters to lowercase.
@c 
大文字を小文字に変換します．

@item ucase
@opindex ucase@r{, converting to}
@c Change lowercase letters to uppercase.
@c 
小文字を大文字に変換します．

@item swab
@opindex swab @r{(byte-swapping)}
@cindex byte-swapping
@c Swap every pair of input bytes.  @sc{gnu} @command{dd}, unlike others, works
@c when an odd number of bytes are read---the last byte is simply copied
@c (since there is nothing to swap it with).
@c 
入力バイトのすべての組を入れ替えます．@sc{gnu} @command{dd}は他と異な
り，偶数バイトを読み込んだとき動作します --- 最後のバイトは，単にコピー
されます．(入れ替えるバイトがないからです)．

@item noerror
@opindex noerror
@cindex read errors, ignoring
@c Continue after read errors.
@c 
読み込みエラー後も続けます．

@item notrunc
@opindex notrunc
@cindex truncating output file, avoiding
@c Do not truncate the output file.
@c 
出力ファイルを切り詰めません．

@item sync
@opindex sync @r{(padding with nulls)}
@c Pad every input block to size of @samp{ibs} with trailing zero bytes.
@c When used with @samp{block} or @samp{unblock}, pad with spaces instead of
@c zero bytes.
@c 
すべての入力ブロックを，後置するゼロバイトを埋め込み@samp{ibs}サイズに
します．@samp{block}や@samp{unblock}を使用するとき，ゼロバイトの代わり
にスペースで埋め込みます．
@end table

@end table

@exitstatus


@node install invocation
@c @section @command{install}: Copy files and set attributes
@section @command{install}: ファイルのコピーと属性の設定

@pindex install
@cindex copying files and setting attributes

@c @command{install} copies files while setting their permission modes and, if
@c possible, their owner and group.  Synopses:
@c 
@command{install}は，許可モードと，可能な場合は所有者とグループ設定し
ながらファイルをコピーします．概要です．

@example
install [@var{option}]@dots{} @var{source} @var{dest}
install [@var{option}]@dots{} @var{source}@dots{} @var{directory}
install -d [@var{option}]@dots{} @var{directory}@dots{}
@end example

@c In the first of these, the @var{source} file is copied to the @var{dest}
@c target file.  In the second, each of the @var{source} files are copied
@c to the destination @var{directory}.  In the last, each @var{directory}
@c (and any missing parent directories) is created.
@c 
これらの最初のものは，@var{source}ファイルは@var{dest}ターゲットファイ
ルにコピーされます．二番目では，それぞれの@var{source}ファイルはコピー
先の@var{directory}にコピーされます．最後では，それぞれの
@var{directory}(と足りない親ディレクトリ)がコピーされます．

@cindex Makefiles, installing programs in
@c @command{install} is similar to @command{cp}, but allows you to control the
@c attributes of destination files.  It is typically used in Makefiles to
@c copy programs into their destination directories.  It refuses to copy
@c files onto themselves.
@c 
@command{install}は@command{cp}に似ていますが，コピー先のファイルの属
性を制御することが可能になっています．それはMakefileで一般的に使用され，
プログラムをコピー先のディレクトリにコピーします．自分自身にファイルを
コピーすることは拒否されます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは，以下のオプションも受け入れます．@ref{Common options}も参
照してください．

@table @samp

@optBackup

@item -c
@opindex -c
@c Ignored; for compatibility with old Unix versions of @command{install}.
@c 
無視されます．古いUnixバージョンの@command{install}の互換性のためです．

@item -d
@itemx --directory
@opindex -d
@opindex --directory
@cindex directories, creating with given attributes
@cindex parent directories, creating missing
@cindex leading directories, creating missing
@c Create each given directory and any missing parent directories, setting
@c the owner, group and mode as given on the command line or to the
@c defaults.  It also gives any parent directories it creates those
@c attributes.  (This is different from the SunOS 4.x @command{install}, which
@c gives directories that it creates the default attributes.)
@c 
与えられたそれぞれのディレクトリと足りない親ディレクトリを，コマンドラ
インで与えられたやデフォルトの所有者，グループとモードに設定しながら作
成します．親ディレクトリも与えられた属性で作成されます．(これはSunOS
4.x @command{install}と異なり，そこではディレクトリはデフォルトの属性
が与えられます．)

@item -g @var{group}
@itemx --group=@var{group}
@opindex -g
@opindex --group
@cindex group ownership of installed files, setting
@c Set the group ownership of installed files or directories to
@c @var{group}. The default is the process' current group.  @var{group}
@c may be either a group name or a numeric group id.
@c 
インストールされるファイルやディレクトリのグループ所有権を，
@var{group} に設定します．デフォルトは，プロセスの現在のグループです．
@var{group}は，グループ名や数値的なグループIDが可能です．

@item -m @var{mode}
@itemx --mode=@var{mode}
@opindex -m
@opindex --mode
@cindex permissions of installed files, setting
@c Set the permissions for the installed file or directory to @var{mode},
@c which can be either an octal number, or a symbolic mode as in
@c @command{chmod}, with 0 as the point of departure (@pxref{File
@c permissions}).  The default mode is @samp{u=rwx,go=rx}---read, write,
@c and execute for the owner, and read and execute for group and other.
@c 
インストールされるファイルやディレクトリの許可を@var{mode}に設定し，そ
れは八進数や@command{chmod}の象徴的なモードが可能で，0が出発点となりま
す(@pxref{File permissions})．デフォルトモードは@samp{u=rwx,go=rx}です 
--- 所有者の読み書き実行，グループとそれ以外は読み込みと実行です．

@item -o @var{owner}
@itemx --owner=@var{owner}
@opindex -o
@opindex --owner
@cindex ownership of installed files, setting
@cindex appropriate privileges
@vindex root @r{as default owner}
@c If @command{install} has appropriate privileges (is run as root), set the
@c ownership of installed files or directories to @var{owner}. The default
@c is @code{root}.  @var{owner} may be either a user name or a numeric user
@c ID.
@c 
@command{install}が適切な特権(ルートとして実行)を持つ場合，インストー
ルされるファイルやディレクトリの所有権は@var{owner}に設定されます．デ
フォルトは@code{root}です．@var{owner}は，ユーザ名または，数値のユーザ
IDが可能です．

@item -p
@itemx --preserve-timestamps
@opindex -p
@opindex --preserve-timestamps
@cindex timestamps of installed files, preserving
@c Set the time of last access and the time of last modification of each
@c installed file to match those of each corresponding original file.
@c When a file is installed without this option, its last access and
@c last modification times are both set to the time of installation.
@c This option is useful if you want to use the last modification times
@c of installed files to keep track of when they were last built as opposed
@c to when they were last installed.
@c 
インストールされたそれぞれのファイルの，最後にアクセスした時間と最後に
編集した時間を，対応するそれぞれの元ファイルにマッチさせます．このオプ
ション無しでファイルがインストールされたとき，最後にアクセスした時間と
最後に編集した時間は，どちらもインストールされた時間に設定されます．こ
のオプションは，最後にインストールされた時ではなく，最後にビルドされた
時を追跡し続けるため，インストールされたファイルの最後に編集された時間
を使用する場合，役に立ちます．

@item -s
@itemx --strip
@opindex -s
@opindex --strip
@cindex symbol table information, stripping
@cindex stripping symbol table information
@c Strip the symbol tables from installed binary executables.
@c 
インストールされたバイナリ実行形式から，シンボルテーブルを取り除きます．

@optBackupSuffix

@optTargetDirectory

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Print the name of each file before copying it.
@c 
コピーする前に，それぞれのファイル名を出力します．

@optVersionControl

@end table

@exitstatus


@node mv invocation
@c @section @command{mv}: Move (rename) files
@section @command{mv}: ファイルの移動(名前の変更)

@pindex mv

@c @command{mv} moves or renames files (or directories).  Synopsis:
@c 
@command{mv}は，ファイル(やディレクトリ)を移動したり名前を変更したりし
ます．概要です．

@example
mv [@var{option}]@dots{} @var{source} @var{dest}
mv [@var{option}]@dots{} @var{source}@dots{} @var{directory}
@end example

@c If the last argument names an existing directory, @command{mv} moves each
@c other given file into a file with the same name in that directory.
@c Otherwise, if only two files are given, it renames the first as
@c the second.  It is an error if the last argument is not a directory
@c and more than two files are given.
@c 
最後の引数が，既存のディレクトリを示す場合，@command{mv}は，それ以外の
与えられたそれぞれのファイルを，同じファイル名で，そのディレクトリに移
動します．それ以外では，二つのファイルが与えられた場合，一番目の名前を
二番目に変更します．最後の引数がディレクトリではなく，二つ以上のファイ
ルが与えられた場合，エラーとなります．

@c @command{mv} can move any type of file from one filesystem to another.
@c Prior to version @code{4.0} of the fileutils,
@c @command{mv} could move only regular files between filesystems.
@c For example, now @command{mv} can move an entire directory hierarchy
@c including special device files from one partition to another.  It first
@c uses some of the same code that's used by @code{cp -a} to copy the
@c requested directories and files, then (assuming the copy succeeded)
@c it removes the originals.  If the copy fails, then the part that was
@c copied to the destination partition is removed.  If you were to copy
@c three directories from one partition to another and the copy of the first
@c directory succeeded, but the second didn't, the first would be left on
@c the destination partition and the second and third would be left on the
@c original partition.
@c 
@command{mv}は，一つのファイルシステムから別のものへ，あらゆる形式のファ
イル移動が可能です．fileutilsのバージョン@code{4.0}以前では，
@command{mv}は通常のファイルのみファイルシステム間での移動が可能でした．
例えば，現在の@command{mv}は，一つのパーティションから別のものへ，特殊
なデバイスファイルを含むディレクトリ階層全体を移動することが可能です．
それは最初に，要求されたディレクトリとファイルをコピーする@code{cp -a} 
で使用されているものと同じコードを使用し，それから(コピーが成功したと
仮定して)元を削除します．コピーが失敗した場合，移動先のパーティション
にコピーされた部分が削除されます．一つのパーティションから三つのディレ
クトリを別のものにコピーしていて，最初のディレクトリが成功し，二番目が
失敗した場合，最初のものは移動先のパーティションに残り，二番目と三番目
は元のパーティションに残ります．

@cindex prompting, and @command{mv}
@c If a destination file exists but is normally unwritable, standard input
@c is a terminal, and the @option{-f} or @option{--force} option is not given,
@c @command{mv} prompts the user for whether to replace the file.  (You might
@c own the file, or have write permission on its directory.)  If the
@c response does not begin with @samp{y} or @samp{Y}, the file is skipped.
@c 
移動先のファイルが存在し通常の書き込みが不可で，標準入力が端末で，
@option{-f}や@option{--force}オプションが与えられていない場合，
@command{mv}はファイルを置換するかどうか，ユーザにプロンプトを表示しま
す．(自分が所有するファイル，または，そのディレクトリに書き込み許可が
ある必要があります．)応答が@samp{y}または@samp{Y}で始まらない場合，ファ
イルはスキップされます．

@c @emph{Warning}: If you try to move a symlink that points to a directory,
@c and you specify the symlink with a trailing slash, then @command{mv}
@c doesn't move the symlink but instead moves the directory referenced
@c by the symlink.  @xref{Trailing slashes}.
@c 
@emph{警告}：ディレクトリを示すシンボリックリンクを移動しようとし，ス
ラッシュを後置したシンボリックリンクを指定した場合，@command{mv}はシン
ボリックリンクを移動しませんが，その代わりにシンボリックリンクが参照す
るディレクトリを移動します．@xref{Trailing slashes}.

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@optBackup

@item -f
@itemx --force
@opindex -f
@opindex --force
@cindex prompts, omitting
@c Do not prompt the user before removing a destination file.
@c 
移動先のファイルを削除したり上書きしたりする前に，ユーザにプロンプトを
表示しません．

@item -i
@itemx --interactive
@opindex -i
@opindex --interactive
@cindex prompts, forcing
@c Prompt whether to overwrite each existing destination file, regardless
@c of its permissions.  If the response does not begin with @samp{y} or
@c @samp{Y}, the file is skipped.
@c 
ファイルの許可に依存せず，それぞれの既存の移動先のファイルを上書きす
るかどうかプロンプトを表示します．@samp{y}や@samp{Y}で始まらない返答の
場合，ファイルはスキップされます．

@itemx @w{@kbd{--reply}[=@var{how}]}
@opindex --reply
@cindex interactivity
@c Specifying @option{--reply=yes} is equivalent to using @option{--force}.
@c Specify @option{--reply=no} to make @command{mv} act as if @samp{no} were
@c given as a response to every prompt about a destination file.
@c Specify @option{--reply=query} to make @command{mv} prompt the user
@c about each existing destination file.
@c 
@option{--reply=yes}の指定は，@option{--force}の使用と等価です．
@command{mv}が移動先のファイルに関するプロンプトに対し@samp{no}が与え
られているかのように動作させるため，@option{--reply=no}を指定して下さ
い．移動先のファイルが存在するとき@command{mv}がユーザにプロンプトを表
示するようにするため，@option{--reply=query}を指定して下さい．

@item -u
@itemx --update
@opindex -u
@opindex --update
@cindex newer files, moving only
@c Do not move a non-directory that has an existing destination with the
@c same or newer modification time.
@c 
同じまたは新しい編集時間を持つ既存の移動先にディレクトリ以外のものを移
動しません．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Print the name of each file before moving it.
@c 
移動する前にそれぞれのファイル名を出力します．

@optStripTrailingSlashes

@optBackupSuffix

@optTargetDirectory

@optVersionControl

@end table

@exitstatus


@node rm invocation
@c @section @command{rm}: Remove files or directories
@section @command{rm}: ファイルやディレクトリの削除

@pindex rm
@cindex removing files or directories

@c @command{rm} removes each given @var{file}.  By default, it does not remove
@c directories.  Synopsis:
@c 
@command{rm}は与えられた@var{file}を削除します．デフォルトではディレク
トリを削除しません．概要です．

@example
rm [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@cindex prompting, and @command{rm}
@c If a file is unwritable, standard input is a terminal, and the @option{-f}
@c or @option{--force} option is not given, or the @option{-i} or
@c @option{--interactive} option @emph{is} given, @command{rm} prompts the user
@c for whether to remove the file.  If the response does not begin with
@c @samp{y} or @samp{Y}, the file is skipped.
@c 
ファイルに書き込みができない，標準入力が端末，そして，@option{-f}また
は@option{--force}オプションが与えられていない場合，または，
@option{-i}または@option{--interactive}オプションが与えられて@emph{い
る}場合，@command{rm}はユーザにファイルを削除するかどうかを促すプロン
プトを表示します．@samp{y} や@samp{Y}で始まらない返答の場合，ファイル
は省略されます．

@c @emph{Warning}: If you use @command{rm} to remove a file, it is usually
@c possible to recover the contents of that file.  If you want more assurance
@c that the contents are truly unrecoverable, consider using @command{shred}.
@c 
@emph{警告}：ファイルを削除するために@command{rm}を使用する場合，通常
はファイルの内容を復活させることが可能です．より確実にファイルの内容を
本当に復活させないようにしたい場合，@command{shred}の使用を検討して下
さい．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -d
@itemx --directory
@opindex -d
@opindex --directory
@cindex directories, removing with @code{unlink}
@findex unlink
@pindex fsck
@c Attempt to remove directories using the @code{unlink} function rather than
@c the @code{rmdir} function, and
@c don't require a directory to be empty before trying to unlink it.  This works
@c only if you have appropriate privileges and if your operating system supports
@c @code{unlink} for directories.  Because unlinking a directory causes any files
@c in the deleted directory to become unreferenced, it is wise to @command{fsck}
@c the filesystem after doing this.
@c 
@code{rmdir}の代わりに@code{unlink}を用いてディレクトリの削除を試み，
そしてアンリンクを試みる前にディレクトリが空である必要はありません．適
切な特権を持ち，オペレーティングシステムがディレクトリに対する
@code{unlink}をサポートしている場合のみ，これは動作します．ディレクト
リのアンリンクはディレクトリ内のすべてのファイルを参照できなくなるので，
この後でファイルシステムに@code{fsck}した方が賢明です．

@item -f
@itemx --force
@opindex -f
@opindex --force
@c Ignore nonexistent files and never prompt the user.
@c Ignore any previous @option{--interactive} (@option{-i}) option.
@c 
存在しないファイルを無視し，ユーザにプロンプトを表示しません．前にある
@option{--interactive} (@option{-i})オプションを無視します．

@item -i
@itemx --interactive
@opindex -i
@opindex --interactive
@c Prompt whether to remove each file.  If the response does not begin
@c with @samp{y} or @samp{Y}, the file is skipped.
@c Ignore any previous @option{--force} (@option{-f}) option.
@c 
それぞれのファイルを削除するかどうかプロンプトを表示します．@samp{y}や
@samp{Y}で始まらない返答の場合，ファイルはスキップされます．前にある
@option{--force} (@option{-f})オプションを無視します．

@itemx --preserve-root
@opindex --preserve-root
@cindex root directory, disallow recursive destruction
@c Fail upon any attempt to remove the filesystem root, @file{/},
@c when used with the @option{--recursive} option.
@c Without @option{--recursive}, this option has no effect.
@c @xref{Treating / specially}.
@c 
@option{--recursive}オプションを使用しているとき，ファイルシステムのルー
ト，@file{/}の移動する試みを失敗させます．@option{--recursive}を用いて
いない場合，このオプションは効果がありません．@xref{Treating / specially}.

@itemx --no-preserve-root
@opindex --no-preserve-root
@cindex root directory, allow recursive destruction
@c Cancel the effect of any preceding @option{--preserve-root} option.
@c @xref{Treating / specially}.
@c 
それ以前の@option{--preserve-root}オプションの効果を取り消します．
@xref{Treating / specially}.

@item -r
@itemx -R
@itemx --recursive
@opindex -r
@opindex -R
@opindex --recursive
@cindex directories, removing (recursively)
@c Remove the contents of directories recursively.
@c 
ディレクトリの内容を再帰的に削除します．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Print the name of each file before removing it.
@c 
削除する前にそれぞれのファイル名を出力します．

@end table

@cindex files beginning with @samp{-}, removing
@cindex @samp{-}, removing files beginning with
@c One common question is how to remove files whose names begin with a
@c @samp{-}.  @sc{gnu} @command{rm}, like every program that uses the @code{getopt}
@c function to parse its arguments, lets you use the @samp{--} option to
@c indicate that all following arguments are non-options.  To remove a file
@c called @file{-f} in the current directory, you could type either:
@c 
よくある問題の一つは，@samp{-}で始まる名前を持つファイルの削除の方法で
す．@sc{gnu} @command{rm}では，引数を解析する@code{getopt}関数を使用す
るすべてのプログラムに似ていて，以下のすべての引数がオプションでないこ
とを示す@samp{--}オプションを使用します．現在のディレクトリの@file{-f} 
というファイル名を削除するため，以下のどちらかの入力で可能になります．

@example
rm -- -f
@end example

@noindent
@c or:
@c 
または以下のようにします．

@example
rm ./-f
@end example

@opindex - @r{and Unix @command{rm}}
@c The Unix @command{rm} program's use of a single @samp{-} for this purpose
@c predates the development of the getopt standard syntax.
@c 
この目的に対する，Unix @command{rm}プログラムの単一の@samp{-}の使用は，
getoptの標準構文の開発以前のものです．

@exitstatus


@node shred invocation
@c @section @command{shred}: Remove files more securely
@section @command{shred}: より安全なファイルの削除

@pindex shred
@cindex data, erasing
@cindex erasing data

@c @command{shred} overwrites devices or files, to help prevent even
@c very expensive hardware from recovering the data.
@c 
@command{shred}は，非常に高価なハードウェアを用いてもデータの復活を妨
げるように，デバイスやファイルを上書きします．

@c Ordinarily when you remove a file (@pxref{rm invocation}), the data is
@c not actually destroyed.  Only the index listing where the file is
@c stored is destroyed, and the storage is made available for reuse.
@c There are undelete utilities that will attempt to reconstruct the index
@c and can bring the file back if the parts were not reused.
@c 
通常，ファイルを削除するとき(@pxref{rm invocation})，データは実際には
破壊されません．ファイルが保存されている場所をリストアップしている索引
のみ破壊し，記憶装置は再利用可能になります．索引の再構築を試み，その部
分が再利用されていない場合，ファイルを元に戻すことが可能なアンデリート
ユーティリティがあります．

@c On a busy system with a nearly-full drive, space can get reused in a few
@c seconds.  But there is no way to know for sure.  If you have sensitive
@c data, you may want to be sure that recovery is not possible by actually
@c overwriting the file with non-sensitive data.
@c 
ほとんど満タンのドライブを使用している忙しいシステムでは，スペースは数
秒で再利用可能になります．しかし，それが確実であることを知る方法はあり
ません．機密データがあり，機密でないデータでファイルを実際に上書きする
ことでリカバリが不可能だということを確かめたいかもしれません．

@c However, even after doing that, it is possible to take the disk back
@c to a laboratory and use a lot of sensitive (and expensive) equipment
@c to look for the faint ``echoes'' of the original data underneath the
@c overwritten data.  If the data has only been overwritten once, it's not
@c even that hard.
@c 
しかし，そうした後でも，研究所へディスクを持っていき，上書きされたデー
タの下の元データのかすかな``残響''を探すために感度の高い(そして高価な)
多くの機器を使用することが可能です．データが一度上書きされただけでは，
それはさほど難しくありません．

@c The best way to remove something irretrievably is to destroy the media
@c it's on with acid, melt it down, or the like.  For cheap removable media
@c like floppy disks, this is the preferred method.  However, hard drives
@c are expensive and hard to melt, so the @command{shred} utility tries
@c to achieve a similar effect non-destructively.
@c 
取り返しができないように何かを削除する最前の方法は，メディアに酸をかけ
て破壊する，溶かしてしまう，またはそれに似たことをすることです．フロッ
ピーディスクのような，安い着脱可能なメディアに対しては，これは好ましい
方法です．しかし，ハードドライブは高価で，溶かすのが難しいため，
@command{shred}ユーティリティでは破壊することなく類似の効果を達成しよ
うとします．

@c This uses many overwrite passes, with the data patterns chosen to
@c maximize the damage they do to the old data.  While this will work on
@c floppies, the patterns are designed for best effect on hard drives.
@c For more details, see the source code and Peter Gutmann's paper
@c @cite{Secure Deletion of Data from Magnetic and Solid-State Memory},
@c from the proceedings of the Sixth USENIX Security Symposium (San Jose,
@c California, 22--25 July, 1996).  The paper is also available online
@c @url{http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html}.
@c 
これは，古いデータに対するダメージを最大にするように選ばれたデータパター
ンで，上書き動作を何回も使用します．これがフロッピーディスクで動作して
いても，パターンはハードドライブで最適な効果があるように設計されている
ものになります．詳細は，ソースコードと，Sixth USENIX Security
Symposium (San Jose, California, 22--25 July, 1996)の予稿から，Peter
Gutmannの論文@cite{Secure Deletion of Data from Magnetic and
Solid-State Memory}を参照してください．論文は
@url{http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html}で，オ
ンラインでも利用可能です．

@c @strong{Please note} that @command{shred} relies on a very important assumption:
@c that the filesystem overwrites data in place.  This is the traditional
@c way to do things, but many modern filesystem designs do not satisfy this
@c assumption.  Exceptions include:
@c 
@command{shred}は非常に重要な仮定に依存していることに@strong{注意して
ください}．それは，ファイルシステムがその場所のデータを上書きするとい
うことです．これは伝統的な方法ですが，現代の多くのファイルシステムはこ
の仮定を満足するように設計されていません．例外は以下を含みます．

@itemize @bullet

@item
@c Log-structured or journaled filesystems, such as those supplied with
@c AIX and Solaris, and JFS, ReiserFS, XFS, Ext3, etc.
@c 
AIXとSolarisが提供するような，Log-structureまたはjournalファイルシステ
ム．

@item
@c Filesystems that write redundant data and carry on even if some writes
@c fail, such as RAID-based filesystems.
@c 
RAIDベースのファイルシステムのように，重複したデータを書き込み，書き込
みで失敗した場合でも続けるファイルシステム．

@item
@c Filesystems that make snapshots, such as Network Appliance's NFS server.
@c 
Network ApplianceのNFSサーバのような，スナップショットを作成するファイ
ルシステム．

@item
@c Filesystems that cache in temporary locations, such as NFS version 3
@c clients.
@c 
NFSのバージョン3のクライアントのような，一時的な位置にキャッシュを作成
するファイルシステム．

@item
@c Compressed filesystems.
@c 
圧縮されているファイルシステム．
@end itemize

@c If you are not sure how your filesystem operates, then you should assume
@c that it does not overwrite data in place, which means that shred cannot
@c reliably operate on regular files in your filesystem.
@c 
ファイルシステムがどのように動作しているかよく分からない場合，その場所
に上書きされないと仮定すべきで，それは，そのファイルシステムの通常のファ
イルで，@command{shred}が信頼できる動作を行うことができないことを意味
します．

@c Generally speaking, it is more reliable to shred a device than a file,
@c since this bypasses the problem of filesystem design mentioned above.
@c However, even shredding devices is not always completely reliable.  For
@c example, most disks map out bad sectors invisibly to the application; if
@c the bad sectors contain sensitive data, @command{shred} won't be able to
@c destroy it.
@c 
一般的に言って，上記の手法で設計されたファイルシステムの問題をバイパス
するため，ファイルではなくデバイスに@command{shred}するとより信頼でき
ます．しかし，デバイスを@command{shred}してさえ，常に完全に信頼するこ
とはできません．例えば，ほとんどのディスクは，不良セクタがアプリケーショ
ンに見えないようにをマッピングします．不良セクタが機密データを含む場合，
@command{shred}ではそれを破壊することは不可能です．

@c @command{shred} makes no attempt to detect or report this problem, just as
@c it makes no attempt to do anything about backups.  However, since it is
@c more reliable to shred devices than files, @command{shred} by default does
@c not truncate or remove the output file.  This default is more suitable
@c for devices, which typically cannot be truncated and should not be
@c removed.
@c 
@command{shred}は，バックアップについて何もしないように，これらの問題
の検出も報告も試みません．しかし，ファイルではなくデバイスに
@command{shred}する方がより信頼できるので，@command{shred}はデフォルト
で出力ファイルを切り詰めたり削除したりしません．このデフォルトはデバイ
スに対しより適していて，それは通常切り詰めもできませんし，削除もすべき
ではありません．

@c Finally, consider the risk of backups and mirrors.
@c File system backups and remote mirrors may contain copies of the
@c file that cannot be removed, and that will allow a shredded file
@c to be recovered later.  So if you keep any data you may later want
@c to destroy using @command{shred}, be sure that it is not backed up or mirrored.
@c 
最後に，バックアップとミラーの危険性を検討します．ファイルシステムのバッ
クアップとリモートのミラーには，削除不可能なファイルのコピーが含まれ，
それで@command{shred}したファイルを後に復活させることが可能です．その
ため，その後@command{shred}を使用して破壊したいデータを保持している場
合，バックアップやミラーが無いことを確かめて下さい．

@example
shred [@var{option}]@dots{} @var{file}[@dots{}]
@end example

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -f
@itemx --force
@opindex -f
@opindex --force
@cindex force deletion
@c Override file permissions if necessary to allow overwriting.
@c 
上書き可能が必要な場合，ファイルの許可に優先させます．

@item -@var{NUMBER}
@itemx -n @var{NUMBER}
@itemx --iterations=@var{NUMBER}
@opindex -n @var{NUMBER}
@opindex --iterations=@var{NUMBER}
@cindex iterations, selecting the number of
@c By default, @command{shred} uses 25 passes of overwrite.  This is enough
@c for all of the useful overwrite patterns to be used at least once.
@c You can reduce this to save time, or increase it if you have a lot of
@c time to waste.
@c 
デフォルトで，@command{shred}は25回の上書きを使用します．これで，少な
くとも一回の使用で使用される有用な上書きパターンの全てに対して十分にな
ります．時間の節約のため減らしたり，時間の無駄遣いをする場合に増やすこ
とが可能です．

@item -s @var{BYTES}
@itemx --size=@var{BYTES}
@opindex -s @var{BYTES}
@opindex --size=@var{BYTES}
@cindex size of file to shred
@c Shred the first @var{BYTES} bytes of the file. The default is to shred
@c the whole file.  @var{BYTES} can be followed by a size specification like
@c @samp{K}, @samp{M}, or @samp{G} to specify a multiple. @xref{Block size}.
@c 
ファイルの最初の@var{BYTES}バイトを@command{shred}します．デフォルトは
ファイル全体を@command{shred}します．@var{BYTES}は乗数を指定するために，
@samp{k}，@samp{M}，または@samp{G}のようなサイズ指定を続けることができ
ます．@xref{Block size}.

@item -u
@itemx --remove
@opindex -u
@opindex --remove
@cindex removing files after shredding
@c After shredding a file, truncate it (if possible) and then remove it.
@c If a file has multiple links, only the named links will be removed.
@c 
ファイルを@command{shred}した後，(可能な場合は)それを切り詰め，そして
削除します．ファイルが複数のリンクを持つ場合，指名されたリンクのみ削除
されます．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Display status updates as sterilization proceeds.
@c 
バイ菌の増殖のようにステータスの表示を更新します．

@item -x
@itemx --exact
@opindex -x
@opindex --exact
@c By default, @command{shred} rounds the size of a regular file up to the next
@c multiple of the filesystem block size to fully erase the last block of the file.
@c Use @option{--exact} to suppress that behavior.
@c Thus, by default if you shred a 10-byte regular file on a system with 512-byte
@c blocks, the resulting file will be 512 bytes long.  With this option,
@c shred does not increase the apparent size of the file.
@c 
デフォルトで，@command{shred}は，ファイルの最後のブロックまで完全に消
去するため，通常のファイルのサイズをファイルシステムのブロックサイズの
次の乗数まで切り上げます．その動作を抑制するため，@option{--exact}を使
用して下さい．このため，デフォルトでは，512バイトのブロックを持つファ
イルシステム上の，10バイトの通常のファイルを@command{shred}する場合，
結果としてファイルは512バイトになります．このオプションを用いると，
@command{shred}はファイルのサイズを増加させません．

@item -z
@itemx --zero
@opindex -z
@opindex --zero
@c Normally, the last pass that @command{shred} writes is made up of
@c random data.  If this would be conspicuous on your hard drive (for
@c example, because it looks like encrypted data), or you just think
@c it's tidier, the @option{--zero} option adds an additional overwrite pass with
@c all zero bits.  This is in addition to the number of passes specified
@c by the @option{--iterations} option.
@c 
通常，@command{shred}の書き込みの最終動作は，ランダムデータの作成です．
これが(例えば，暗号化されたデータのように見えるため)ハードディスク上で
目立つ場合や，より整然とさせたいと考える場合，@option{--zero}オプショ
ンで全てをゼロビットを用いて上書きする動作を追加します．これは，
@option{--iterations}オプションで指定した動作数に追加されます．

@item -
@opindex -
@c Shred standard output.
@c 
標準出力を@command{shred}します．

@c This argument is considered an option.  If the common @samp{--} option has
@c been used to indicate the end of options on the command line, then @samp{-}
@c will be interpreted as an ordinary file name.
@c 
この引数はオプションと見なされます．一般的な@samp{--}オプションはコマ
ンドラインのオプションの終りを示すために使用されますが，@samp{-}は普通
のファイルとして解釈されます．

@c The intended use of this is to shred a removed temporary file.
@c For example
@c 
この使用目的は，削除された一時ファイルを@command{shred}することです．
例です．

@example
i=`tempfile -m 0600`
exec 3<>"$i"
rm -- "$i"
echo "Hello, world" >&3
shred - >&3
exec 3>-
@end example

@c Note that the shell command @samp{shred - >file} does not shred the
@c contents of @var{file}, since it truncates @var{file} before invoking
@c @command{shred}.  Use the command @samp{shred file} or (if using a
@c Bourne-compatible shell) the command @samp{shred - 1<>file} instead.
@c 
シェルコマンド@samp{shred - >file}は，@command{shred}の呼び出しの前に，
それが@var{file}を切り詰めるため，@var{file}の内容を@samp{shred}しない
ことに注意してください．コマンド@samp{shred file}，または(Bourne互換シェ
ルを使用している場合は)コマンド@samp{shred - 1<>file}を代わりに使用し
てください．

@end table

@c You might use the following command to erase all trace of the
@c filesystem you'd created on the floppy disk in your first drive.
@c That command takes about 20 minutes to erase a ``1.44MB'' (actually
@c 1440 KiB) floppy.
@c 
最初のドライブのフロッピーディスクに作成されたファイルシステムの，全て
の記録を消去するために，以下のコマンドを使用するかもしれません．そのコ
マンドは，1.44MBフロッピーを消去するために約20分かかります．

@example
shred --verbose /dev/fd0
@end example

@c Similarly, to erase all data on a selected partition of
@c your hard disk, you could give a command like this:
@c 
同様に，ハードディスクの選択されたパーティションの全てのデータを消去す
るために，以下のようなコマンドを与えることが可能です．

@example
shred --verbose /dev/sda5
@end example

@exitstatus


@node Special file types
@c @chapter Special file types
@chapter 特殊ファイルの形式

@cindex special file types
@cindex file types, special

@c This chapter describes commands which create special types of files (and
@c @command{rmdir}, which removes directories, one special file type).
@c 
この章は，特殊な形式のファイルを作成する方法(そして，特殊なファイル形
式の一つのディレクトリを削除する@command{rmdir}方法)を記述します．

@cindex special file types
@cindex file types
@c Although Unix-like operating systems have markedly fewer special file
@c types than others, not @emph{everything} can be treated only as the
@c undifferentiated byte stream of @dfn{normal files}.  For example, when a
@c file is created or removed, the system must record this information,
@c which it does in a @dfn{directory}---a special type of file.  Although
@c you can read directories as normal files, if you're curious, in order
@c for the system to do its job it must impose a structure, a certain
@c order, on the bytes of the file.  Thus it is a ``special'' type of file.
@c 
Unixのようなオペレーティングシステムでは，他のものより特殊なファイル形
式は著しく少ないのですが，@emph{すべて}のものを@dfn{通常のファイル
(normal files)}と差異の無いバイトストリームとして扱うことが可能だとい
うわけではありません．例えば，ファイルを作成したり削除したりするとき，
システムはこの情報を記録する必要があり，それは@dfn{ディレクトリ
(directory)} --- 特殊な形式のファイル --- で行います．興味があれば，ディ
レクトリを通常のファイルとして読み込むことも可能ですが，システムにその
作業をさせるために，ファイルのバイト上で，特定の順序になるよう，強制て
きな構造にする必要があります．このためそれは``特殊な''形式のファイルと
なります．

@c Besides directories, other special file types include named pipes
@c (FIFOs), symbolic links, sockets, and so-called @dfn{special files}.
@c 
ディレクトリ以外では，特殊なファイル形式は，名前付きパイプ(FIFO)，シン
ボリックリンク，ソケット，そして@dfn{特殊ファイル(special files)}と呼
ばれるものを含みます．

@menu
* link invocation::             Make a hard link via the link syscall
* ln invocation::               Make links between files.
* mkdir invocation::            Make directories.
* mkfifo invocation::           Make FIFOs (named pipes).
* mknod invocation::            Make block or character special files.
* readlink invocation::         Print the referent of a symbolic link.
* rmdir invocation::            Remove empty directories.
* unlink invocation::           Remove files via the unlink syscall
@end menu


@node link invocation
@c @section @command{link}: Make a hard link via the link syscall
@section @command{link}: linkシステムコールでハードリンクを作成する

@pindex link
@cindex links, creating
@cindex hard links, creating
@cindex creating links (hard only)

@c @command{link} creates a single hard link at a time.
@c It is a minimalist interface to the system-provided
@c @code{link} function.  @xref{Hard Links, , , libc,
@c The GNU C Library Reference Manual}.
@c Synopsis:
@c 
@command{link}は単一のハードリンクを一度に作成します．それは，システム
が提供する@code{link}関数への最小のインターフェースです．@xref{Hard
Links, , , libc, The GNU C Library Reference Manual}.  概要です．

@example
link @var{filename} @var{linkname}
@end example

@c @var{filename} must specify an existing file, and @var{linkname}
@c must specify a nonexistent entry in an existing directory.
@c @command{link} simply calls @code{link (@var{filename}, @var{linkname})}
@c to create the link.
@c 
@var{filename}は既存のファイルにする必要があり，@var{linkname}既存のディ
レクトリに存在しないものを指定する必要があります．@command{link}はリン
クを作成するために，単純に@code{link (@var{filename}, @var{linkname})} 
を呼び出します．

@exitstatus


@node ln invocation
@c @section @command{ln}: Make links between files
@section @command{ln}: ファイル間にリンクを作成

@pindex ln
@cindex links, creating
@cindex hard links, creating
@cindex symbolic (soft) links, creating
@cindex creating links (hard or soft)

@cindex filesystems and hard links
@c @command{ln} makes links between files.  By default, it makes hard links;
@c with the @option{-s} option, it makes symbolic (or @dfn{soft}) links.
@c Synopses:
@c 
@command{ln}は，ファイル間のリンクを作成します．デフォルトで，それはハー
ドリンクを作成します．@option{-s}を用いると，シンボリック(または
@dfn{ソフト(soft)})リンクを作成します．概要です．

@example
ln [@var{option}]@dots{} @var{target} [@var{linkname}]
ln [@var{option}]@dots{} @var{target}@dots{} @var{directory}
@end example

@itemize @bullet

@c @item If the last argument names an existing directory, @command{ln} creates a
@c link to each @var{target} file in that directory, using the
@c @var{target}s' names.  (But see the description of the
@c @option{--no-dereference} option below.)
@c 
@item
最後の引数が既存のディレクトリを示す場合，@command{ln}はそのディレクト
リ内のそれぞれの@var{target}ファイルに，@var{target}の名前を使用しなが
らリンクを作成します．(しかし，以下の@option{--no-dereference}オプショ
ンの記述を参照してください．)

@c @item If two filenames are given, @command{ln} creates a link from the
@c second to the first.
@c 
@item
二つのファイル名が与えられた場合，@command{ln}は二番目から一番目へのリ
ンクを作成します．

@c @item If one @var{target} is given, @command{ln} creates a link to that
@c file in the current directory.
@c 
@item
一つの@var{target}が与えられた場合，@command{ln}は，現在のディレクトリ
のそのファイルにリンクを作成します．

@c @item It is an error if the last argument is not a directory and more
@c than two files are given.  Without @option{-f} or @option{-i} (see below),
@c @command{ln} will not remove an existing file.  Use the @option{--backup}
@c option to make @command{ln} rename existing files.
@c 
@item
最後の引数がディレクトリでなく，二つ以上のファイルが与えられた場合はエ
ラーとなります．@option{-f}や@option{-i} (以下を参照)を用いない場合,
@command{ln}は既存のファイルを削除しません．@command{ln}に既存のファイ
ルの名前を変えさせるために，@option{--backup}オプションを使用してくだ
さい．

@end itemize

@cindex hard link, defined
@cindex inode, and hard links
@c A @dfn{hard link} is another name for an existing file; the link and the
@c original are indistinguishable.  Technically speaking, they share the
@c same inode, and the inode contains all the information about a
@c file---indeed, it is not incorrect to say that the inode @emph{is} the
@c file.  On all existing implementations, you cannot make a hard link to
@c a directory, and hard links cannot cross filesystem boundaries.  (These
@c restrictions are not mandated by @acronym{POSIX}, however.)
@c 
@dfn{ハードリンク(hard link)}は，既存のファイルの別名です．リンクとオ
リジナルは区別できません．技術的には，それらは同じinodeを共有し，inode 
はファイルに関する必要な情報をすべて含んでいます --- 実際，inodeがファ
イル@emph{である}と言っても間違いではありません．既存のすべての実装で
は，ディレクトリにハードリンクを作成できず，ハードリンクはファイルシス
テム間をまたぐことができません．(しかしながら，これらの制限は
@acronym{POSIX}とマッチしません．)

@cindex dereferencing symbolic links
@cindex symbolic link, defined
@c @dfn{Symbolic links} (@dfn{symlinks} for short), on the other hand, are
@c a special file type (which not all kernels support: System V release 3
@c (and older) systems lack symlinks) in which the link file actually
@c refers to a different file, by name.  When most operations (opening,
@c reading, writing, and so on) are passed the symbolic link file, the
@c kernel automatically @dfn{dereferences} the link and operates on the
@c target of the link.  But some operations (e.g., removing) work on the
@c link file itself, rather than on its target.  @xref{Symbolic Links,,,
@c libc, The GNU C Library Reference Manual}.
@c 
一方，@dfn{シンボリックリンク(Symbolic links)} (短く言うと
@dfn{symlinks})は，リンクファイルが実際には名前の異なるファイルを参照
する特殊なファイル形式です(すべてのカーネルがサポートしているわけでは
ありません．System V release 3(とそれより古いもの)はsymlinkがありませ
ん)．ほとんどの処理(開く，読み込む，書き出す等)は，シンボリックリンク
を通じて行われ，カーネルは自動的にリンクを@dfn{dereferences}し，リンク
先を処理します．しかし，リンク先ではなくリンクファイル自身に作用する
(例えば削除)処理もあります．@xref{Symbolic Links,,, library, The GNU C
Library Reference Manual}.

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@optBackup

@item -d
@itemx -F
@itemx --directory
@opindex -d
@opindex -F
@opindex --directory
@cindex hard links to directories
@c Allow the super-user to attempt to make hard links to directories.
@c However, note that this will probably fail due to
@c system restrictions, even for the super-user.
@c 
スーパーユーザによるディレクトリのハードリンク作成の試みができるように
します．しかし，スーパーユーザでもシステムの制限のため，失敗する可能性
があることに注意して下さい．

@item -f
@itemx --force
@opindex -f
@opindex --force
@c Remove existing destination files.
@c 
既存のリンク先ファイルを削除します．

@item -i
@itemx --interactive
@opindex -i
@opindex --interactive
@cindex prompting, and @command{ln}
@c Prompt whether to remove existing destination files.
@c 
既存リンク先ファイルを削除するかどうか，プロンプトを表示します．

@item -n
@itemx --no-dereference
@opindex -n
@opindex --no-dereference
@c When given an explicit destination that is a symlink to a directory,
@c treat that destination as if it were a normal file.
@c 
明示的な，ディレクトリへのシンボリックリンクとなるリンク先が与えられた
とき，リンク先を通常のファイルとして扱います．

@c When the destination is an actual directory (not a symlink to one),
@c there is no ambiguity.  The link is created in that directory.
@c But when the specified destination is a symlink to a directory,
@c there are two ways to treat the user's request.  @command{ln} can
@c treat the destination just as it would a normal directory and create
@c the link in it.  On the other hand, the destination can be viewed as a
@c non-directory---as the symlink itself.  In that case, @command{ln}
@c must delete or backup that symlink before creating the new link.
@c The default is to treat a destination that is a symlink to a directory
@c just like a directory.
@c 
リンク先が(シンボリックリンクではない)実際のディレクトリのとき，不明瞭
なことはありません．しかし，指定されたリンク先がディレクトリへのシンボ
リックリンクの時，ユーザの要求の扱い方は，二通りあります．@command{ln} 
は，リンク先を通常のディレクトリとして扱い，それに対するリンクを作成す
ることができます．一方，リンク先を非ディレクトリ --- シンボリックリン
ク --- として見ることもできます．その場合，@command{ln}は，新しいリン
クを作成する前に，そのシンボリックリンクを削除またはバックアップする必
要があります．デフォルトでは，ディレクトリへのシンボリックリンクである
リンク先を，ディレクトリと同様に扱います．

@item -s
@itemx --symbolic
@opindex -s
@opindex --symbolic
@c Make symbolic links instead of hard links.  This option merely produces
@c an error message on systems that do not support symbolic links.
@c 
ハードリンクの代わりにシンボリックリンクを作成します．このオプションは，
シンボリックリンクをサポートしていないシステムでは，単にエラーメッセー
ジを生成します．

@optBackupSuffix

@optTargetDirectory

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Print the name of each file before linking it.
@c 
リンクする前にそれぞれのファイル名を出力します．

@optVersionControl

@end table

@c Examples:
@c 
以下は例です．

@smallexample
ln -s /some/name  # creates link ./name pointing to /some/name
ln -s /some/name myname  # creates link ./myname pointing to /some/name
ln -s a b ..      # creates links ../a and ../b pointing to ./a and ./b
@end smallexample

@exitstatus


@node mkdir invocation
@c @section @command{mkdir}: Make directories
@section @command{mkdir}: ディレクトリの作成

@pindex mkdir
@cindex directories, creating
@cindex creating directories

@c @command{mkdir} creates directories with the specified names.  Synopsis:
@c 
@command{mkdir}は指定された名前でディレクトリを作成します．概要です．

@example
mkdir [@var{option}]@dots{} @var{name}@dots{}
@end example

@c If a @var{name} is an existing file but not a directory, @command{mkdir} prints
@c a warning message on stderr and will exit with a status of 1 after
@c processing any remaining @var{name}s.  The same is done when a @var{name} is an
@c existing directory and the -p option is not given.  If a @var{name} is an
@c existing directory and the -p option is given, @command{mkdir} will ignore it.
@c That is, @command{mkdir} will not print a warning, raise an error, or change
@c the mode of the directory (even if the -m option is given), and will
@c move on to processing any remaining @var{name}s.
@c 
@var{name}が既存のファイルでディレクトリではない場合，@command{mkdir} 
は標準エラー出力に警告メッセージを出力し，残っている@var{name}を処理し
た後，1のステータスで終了します．@var{name}が既存のディレクトリで，
@samp{-p}オプションが与えられていないときも同じです．@var{name}が既存
のディレクトリで，@samp{-p}オプションが与えられている場合，
@command{mkdir}はそれを無視します．すなわち，@command{mkdir}は警告の出
力も，エラーの発生も，(@samp{-m}オプションが与えられていても)ディレク
トリのモードの変更もせず，残りの@var{name}の処理を続けます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -m @var{mode}
@itemx --mode=@var{mode}
@opindex -m
@opindex --mode
@cindex modes of created directories, setting
@c Set the mode of created directories to @var{mode}, which is symbolic as
@c in @command{chmod} and uses @samp{a=rwx} (read, write and execute allowed for
@c everyone) minus the bits set in the umask for the point of the
@c departure.  @xref{File permissions}.
@c 
作成されるディレクトリのモードを@var{mode}で設定し，それは
@command{chmod}で設定する抽象的なもので，(読み書きと実行を全員に許可す
る)@samp{a=rwx}から目的のポイントのためにumaskのビットセットを引いたも
のを使用します．@xref{File permissions}.

@item -p
@itemx --parents
@opindex -p
@opindex --parents
@cindex parent directories, creating
@c Make any missing parent directories for each argument.  The mode for parent
@c directories is set to the umask modified by @samp{u+wx}.
@c Ignore arguments corresponding to existing directories.
@c 
それぞれの引数に対し，足りない親ディレクトリを作成します．親ディレクト
リのモードは@samp{u+wx}で編集されたumaskに設定します．既存のディレクト
リに対する引数は無視します．

@item -v
@item --verbose
@opindex -v
@opindex --verbose
@c Print a message for each created directory.  This is most useful with
@c @option{--parents}.
@c 
作成されるそれぞれのディレクトリに対しメッセージを出力します．これは
@option{--parents}とともに用いると最も便利です．
@end table

@exitstatus


@node mkfifo invocation
@c @section @command{mkfifo}: Make FIFOs (named pipes)
@section @command{mkfifo}: FIFO(名前付きパイプ)の作成

@pindex mkfifo
@cindex FIFOs, creating
@cindex named pipes, creating
@cindex creating FIFOs (named pipes)

@c @command{mkfifo} creates FIFOs (also called @dfn{named pipes}) with the
@c specified names.  Synopsis:
@c 
@command{mkfifo}はFIFO(@dfn{名前付きパイプ(named pipes)}とも呼ばれる)
を指定された名前で作成します．概要です．

@example
mkfifo [@var{option}] @var{name}@dots{}
@end example

@c A @dfn{FIFO} is a special file type that permits independent processes
@c to communicate.  One process opens the FIFO file for writing, and
@c another for reading, after which data can flow as with the usual
@c anonymous pipe in shells or elsewhere.
@c 
@dfn{FIFO}は，個別のプロセス間の通信を可能にする特殊なファイル形式です．
一つのプロセスは書き込みで，もう一つは読み込みでFIFOを開き，データは，
シェルやその他の通常の名前無しパイプのように流れます．

@c The program accepts the following option.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -m @var{mode}
@itemx --mode=@var{mode}
@opindex -m
@opindex --mode
@cindex modes of created FIFOs, setting
@c Set the mode of created FIFOs to @var{mode}, which is symbolic as in
@c @command{chmod} and uses @samp{a=rw} (read and write allowed for everyone) minus
@c the bits set in the umask for the point of departure.  @xref{File permissions}.
@c 
作成されるFIFOのモードを@var{mode}に設定し，それは@command{chmod}で設
定する抽象的なもので，(読み込みと書き出しを全員に許可する)@samp{a=rw}
から目的のポイントのためにumaskのビットセットを引いたものを使用します．
@xref{File permissions}.

@end table

@exitstatus


@node mknod invocation
@c @section @command{mknod}: Make block or character special files
@section @command{mknod}: ブロックやキャラクタ特殊ファイルの作成

@pindex mknod
@cindex block special files, creating
@cindex character special files, creating

@c @command{mknod} creates a FIFO, character special file, or block special
@c file with the specified name.  Synopsis:
@c 
@command{mknod}は，FIFO，キャラクタ特殊ファイルや，ブロック特殊ファイ
ルを指定された名前で作成します．概要です．

@example
mknod [@var{option}]@dots{} @var{name} @var{type} [@var{major} @var{minor}]
@end example

@cindex special files
@cindex block special files
@cindex character special files
@c Unlike the phrase ``special file type'' above, the term @dfn{special
@c file} has a technical meaning on Unix: something that can generate or
@c receive data.  Usually this corresponds to a physical piece of hardware,
@c e.g., a printer or a disk.  (These files are typically created at
@c system-configuration time.)  The @command{mknod} command is what creates
@c files of this type.  Such devices can be read either a character at a
@c time or a ``block'' (many characters) at a time, hence we say there are
@c @dfn{block special} files and @dfn{character special} files.
@c 
上記の``特殊ファイル形式''と異なり，@dfn{特殊ファイル(special file)}と
いう用語は，Unix上で技術的な意味があります．それはデータを生成または受
信するものです．これは通常，ハードウェアの物理的な部分に対応します．
(これらのファイルは，通常，システム設定時に作成されます．)
@command{mknod}コマンドは，この形式のファイルを作成するものです．その
ようなデバイスは，一度に一文字または一度に一``ブロック''(多くの文字)読
み込むことが可能で，そのため，@dfn{ブロック特殊(block special)}ファイ
ルと@dfn{キャラクタ特殊(character special)}ファイルがあると我々は述べ
ています．

@c The arguments after @var{name} specify the type of file to make:
@c 
@var{name}の後の引数は作成するファイルの形式を指定します．

@table @samp

@item p
@opindex p @r{for FIFO file}
@c for a FIFO
@c 
FIFOに対応します．

@item b
@opindex b @r{for block special file}
@c for a block special file
@c 
ブロック特殊ファイルに対応します．

@item c
@c Don't document the `u' option -- it's just a synonym for `c'.
@c Do *any* versions of mknod still use it?
@c @itemx u
@opindex c @r{for character special file}
@c @opindex u @r{for character special file}
@c for a character special file
@c 
キャラクタ特殊ファイルに対応します．

@end table

@c When making a block or character special file, the major and minor
@c device numbers must be given after the file type.
@c If a major or minor device number begins with @samp{0x} or @samp{0X},
@c it is interpreted as hexadecimal; otherwise, if it begins with @samp{0},
@c as octal; otherwise, as decimal.
@c 
ブロックやキャラクタ特殊ファイルを作成しているとき，メジャーとマイナー
デバイス番号をファイル形式の後に与える必要があります．メジャーまたはマ
イナーのデバイス番号が@samp{0x}や@samp{0X}で始まる場合，それは16進数と
して解釈されます．それ以外で@samp{0}で始まる場合は八進数，それ以外では
十進数です．

@c The program accepts the following option.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -m @var{mode}
@itemx --mode=@var{mode}
@opindex -m
@opindex --mode
@c Set the mode of created files to @var{mode}, which is symbolic as in
@c @command{chmod} and uses @samp{a=rw} minus the bits set in the umask as the point
@c of departure.  @xref{File permissions}.
@c 
作成されるファイルのモードを@var{mode}に設定し，それは@command{chmod}
で設定する抽象的なもので，@samp{a=rw}から目的のポイントのためにumaskの
ビットセットを引いたものを使用します．@xref{File permissions}.

@end table

@exitstatus


@node readlink invocation
@c @section @command{readlink}: Print the referent of a symbolic link
@section @command{readlink}: シンボリックリンクの対象を出力

@pindex readlink
@cindex displaying value of a symbolic link

@c @command{readlink} may work in one of two supported modes:
@c 
@command{readlink}は，サポートされている二つのモードの一つで動作します．

@table @samp

@c @item Readlink mode
@item readlinkモード

@c @command{readlink} outputs the value of the given symbolic link.
@c If @command{readlink} is invoked with an argument other than the pathname
@c of a symbolic link, it produces no output and exits with a nonzero exit code.
@c 
@command{readlink}は，与えられたシンボリックリンクの値を出力します．
@command{readlink}がシンボリックリンクのパス名以外の引数で呼び出される
場合，出力を生成せず，ゼロ以外の終了コードで終了します．

@c @item Canonicalize mode
@item canonicalizeモード

@c @command{readlink} outputs the absolute name of the given file which contains
@c no `.', `..' components nor any repeated path separators (`/') or symlinks.
@c If any path component is missing or unavailable,
@c it produces no output and exits with a nonzero exit code.
@c 
@command{readlink}は，`.'，`..' も，繰返されるパス分離子(`/')もシンボ
リックリンクも含めず，与えられた絶対的なファイル名を出力します．構成要
素が足りない，または利用不可能なパスでは，出力を生成せずゼロ以外の終了
コードで終了します．

@end table

@example
readlink [@var{option}] @var{file}
@end example

@c By default, @command{readlink} operates in readlink mode.
@c 
デフォルトで，@command{readlink}はreadlinkモードで処理します．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
して下さい．

@table @samp

@item -f
@itemx --canonicalize
@opindex -f
@opindex --canonicalize
@c Activate canonicalize mode.
@c 
canonicalizeモードで実行します．

@item -n
@itemx --no-newline
@opindex -n
@opindex --no-newline
@c Do not output the trailing newline.
@c 
後置される改行を出力しません．

@item -s
@itemx -q
@itemx --silent
@itemx --quiet
@opindex -s
@opindex -q
@opindex --silent
@opindex --quiet
@c Suppress most error messages.
@c 
ほとんどのエラーメッセージを抑制します．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Report error messages.
@c 
エラーメッセージを報告します．

@end table

@c The @command{readlink} utility first appeared in OpenBSD 2.1.
@c 
@command{readlink}は，OpenBSD 2.1で最初に書かれました．

@exitstatus


@node rmdir invocation
@c @section @command{rmdir}: Remove empty directories
@section @command{rmdir}: 空のディレクトリの削除

@pindex rmdir
@cindex removing empty directories
@cindex directories, removing empty

@c @command{rmdir} removes empty directories.  Synopsis:
@c 
@command{rmdir}は空のディレクトリを削除します．概要です．

@example
rmdir [@var{option}]@dots{} @var{directory}@dots{}
@end example

@c If any @var{directory} argument does not refer to an existing empty
@c directory, it is an error.
@c 
@var{directory}引数が既存の空のディレクトリを参照していない場合，エラー
となります．

@c The program accepts the following option.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item --ignore-fail-on-non-empty
@opindex --ignore-fail-on-non-empty
@cindex directory deletion, ignoring failures
@c Ignore each failure to remove a directory that is solely because
@c the directory is non-empty.
@c 
ディレクトリが空でないため，それぞれ単独であるディレクトリ削除の失敗を
無視します．

@item -p
@itemx --parents
@opindex -p
@opindex --parents
@cindex parent directories, removing
@c Remove @var{directory}, then try to remove each component of @var{directory}.
@c So, for example, @samp{rmdir -p a/b/c} is similar to @samp{rmdir a/b/c a/b a}.
@c As such, it fails if any of those directories turns out not to be empty.
@c Use the @option{--ignore-fail-on-non-empty} option to make it so such
@c a failure does not evoke a diagnostic and does not cause @command{rmdir} to
@c exit unsuccessfully.
@c 
@var{directory}を削除し，それぞれの@var{directory}の構成要素の削除を試
みます．そのため，例えば，@samp{rmdir -p a/b/c}は@samp{rmdir a/b/c a/b
a}に似ています．同様に，これらのディレクトリが空でないと判明した場合は
失敗します．そのような失敗で，診断を引き起こし，@command{rmdir}を失敗
で終了させないため，@option{--ignore-fail-on-non-empty}オプションを使
用してください．

@item -v
@item --verbose
@opindex -v
@opindex --verbose
@cindex directory deletion, reporting
@c Give a diagnostic for each successful removal.
@c @var{directory} is removed.
@c 
削除に成功したそれぞれの診断を提唱します．@var{directory}は削除されま
す．

@end table

@c @xref{rm invocation}, for how to remove non-empty directories (recursively).
@c 
空でないディレクトリの(再帰的な)削除方法は，@xref{rm invocation}.

@exitstatus


@node unlink invocation
@c @section @command{unlink}: Remove files via the unlink syscall
@section @command{unlink}: unlinkシステムコールでファイルを削除

@pindex unlink
@cindex removing files or directories (via the unlink syscall)

@c @command{unlink} deletes a single specified file name.
@c It is a minimalist interface to the system-provided
@c @code{unlink} function.  @xref{Deleting Files, , , libc,
@c The GNU C Library Reference Manual}.  Synopsis:
@c 
@command{unlink}は，単一の指定されたファイル名を削除します．それは，シ
ステムが提供する@code{unlink}関数の最小のインターフェースです．
@xref{Deleting Files, , , libc, The GNU C Library Reference
Manual}. 概要です．

@example
unlink @var{filename}
@end example

@c On some systems @code{unlink} can be used to delete the name of a
@c directory.  On others, it can be used that way only by a privileged user.
@c In the GNU system @code{unlink} can never delete the name of a directory.
@c 
システムには，@code{unlink}を削除するディレクトリ名として使用可能なも
のもあります．その他に，特権ユーザだけがそうすることが可能なものもあり
ます．GNUシステムでは，@code{unlink}でディレクトリ名を削除することはあ
りません．

@c By default, @command{unlink} honors the @option{--help} and @option{--version}
@c options.  That makes it a little harder to remove files named
@c @option{--help} and @option{--version}, so when the environment variable
@c @env{POSIXLY_CORRECT} is set, @command{unlink} treats such a command line
@c arguments not as an option, but as an operand.
@c 
デフォルトで，@command{unlink}は@option{--help}と@option{--version}オ
プションを尊重します．それによって，@option{--help}や
@option{--version}と命名されたファイルの削除がちょっと難しくなるので，
環境変数@env{POSIXLY_CORRECT}が設定されているときは，@command{unlink}
はそのようなコマンドライン引数をオプションではなくオペランドとして扱い
ます．

@exitstatus


@node Changing file attributes
@c @chapter Changing file attributes
@chapter ファイル属性の変更

@cindex changing file attributes
@cindex file attributes, changing
@cindex attributes, file

@c A file is not merely its contents, a name, and a file type
@c (@pxref{Special file types}).  A file also has an owner (a userid), a
@c group (a group id), permissions (what the owner can do with the file,
@c what people in the group can do, and what everyone else can do), various
@c timestamps, and other information.  Collectively, we call these a file's
@c @dfn{attributes}.
@c 
ファイルとは，その内容，名前，そしてファイル形式(@pxref{Special file
types})だけの存在ではありません．ファイルには，所有者(ユーザID)，グルー
プ(グループID)，許可(所有者がファイルに行えること，グループの人ができ
ること，そして，その他誰でも可能であること)，様々なタイムスタンプ，そ
してその他の情報があります．まとめて，これらをファイルの@dfn{属性
(attributes)}と呼びます．

@c These commands change file attributes.
@c 
これらのコマンドはファイルの属性を変更します．

@menu
* chgrp invocation::            Change file groups.
* chmod invocation::            Change access permissions.
* chown invocation::            Change file owners and groups.
* touch invocation::            Change file timestamps.
@end menu


@node chown invocation
@c @section @command{chown}: Change file owner and group
@section @command{chown}: ファイルの所有者とグループの変更

@pindex chown
@cindex file ownership, changing
@cindex group ownership, changing
@cindex changing file ownership
@cindex changing group ownership

@c @command{chown} changes the user and/or group ownership of each given @var{file}
@c to @var{new-owner} or to the user and group of an existing reference file.
@c Synopsis:
@c 
@command{chown}は，与えられたそれぞれの@var{file}のユーザと/またはグルー
プの所有権を，@var{new-owner}や，既存の参照ファイルのユーザとグループ
に変更します．概要です．

@example
chown [@var{option}]@dots{} @{@var{new-owner} | --reference=@var{ref_file}@} @var{file}@dots{}
@end example

@c If used, @var{new-owner} specifies the new owner and/or group as follows
@c (with no embedded white space):
@c 
@var{new-owner}が使用された場合，新しい所有者と/またはグループを以下の
ように指定します(空白は含みません)．

@example
[@var{owner}] [ [:] [@var{group}] ]
@end example

@c Specifically:
@c 
具体例です．

@table @var
@item owner
@c If only an @var{owner} (a user name or numeric user id) is given, that
@c user is made the owner of each given file, and the files' group is not
@c changed.
@c 
@var{owner} (ユーザ名または数値的なユーザID)のみ与えられた場合，そのユー
ザが与えられたそれぞれのファイルの所有者になり，ファイルのグループは変
更されません．

@itemx owner@samp{:}group
@c If the @var{owner} is followed by a colon and a @var{group} (a
@c group name or numeric group id), with no spaces between them, the group
@c ownership of the files is changed as well (to @var{group}).
@c 
@var{owner}にコロンと@var{group} (グループ名または数値的なグループID) 
が，それら間にスペースを置かずに続いている場合，ファイルのグループ所有
権を(@var{group}に)同様に変更します．

@itemx owner@samp{:}
@c If a colon but no group name follows @var{owner}, that user is
@c made the owner of the files and the group of the files is changed to
@c @var{owner}'s login group.
@c 
コロンはあるが，グループ名が@var{owner}に続かない場合，ユーザがファイ
ルの所有者になり，ファイルのグループは@var{owner}のログイングループに
変更されます．

@itemx @samp{:}group
@c If the colon and following @var{group} are given, but the owner
@c is omitted, only the group of the files is changed; in this case,
@c @command{chown} performs the same function as @command{chgrp}.
@c 
コロンとそれに続く@var{group}が与えられているが所有者が省略されている
場合，ファイルのグループのみ変更されます．この場合，@command{chown}は
@command{chgrp} と同じ機能を果たします．

@end table

@c Some older scripts may still use @samp{.} in place of the @samp{:} separator.
@c @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) does not
@c require support for that, but for backward compatibility @acronym{GNU}
@c @command{chown} supports @samp{.} so long as no ambiguity results.
@c New scripts should avoid the use of @samp{.} because it is not
@c portable, and because it has undesirable results if the entire
@c @var{owner@samp{.}group} happens to identify a user whose name
@c contains @samp{.}.
@c 
古いスクリプトでは，@samp{:}セパレータの場所に@samp{.}を使用している可
能性があります．@acronym{POSIX} 1003.1-2001 (@pxref{Standards
conformance})では，それをサポートすることを要求していませんが，後方互
換性のため，@acronym{GNU} @command{chown}は曖昧な結果にならない限り
@samp{.}をサポートします．互換性のため，そして，
@var{owner@samp{.}group}で@samp{.}を含む名前のユーザを識別してしまうと
好ましくない結果になるので，新しいスクリプトでは@samp{.}の使用を避ける
べきです．

@c Warning: The @command{chown} command may clear the set-user-ID or
@c set-group-ID bits on some systems.  The @command{chown} command is
@c dependent upon the policy and functionality of the underlying system
@c which may make system-dependent file mode modifications outside the
@c control of the @command{chown} command.  On some systems (e.g., Linux)
@c the @command{chown} command clears the set-UID and set-GID bits because
@c the underlying, system @code{chown} function clears them.  On other
@c systems (e.g., HP-UX and Solaris) the @command{chown} command does not
@c affect those bits when operated as the superuser.  On systems which allow
@c non-privileged use of chown those bits are always cleared by the system.
@c When in doubt, check the underlying system behavior.
@c 
警告：@command{chown}コマンドは，システムによってはセットユーザIDやセッ
トグループIDビットがクリアされているかもしれません．@command{chown}コ
マンドは，@command{chown}コマンドの制御下にないシステム依存のファイル
のモード変更する，基礎的なシステムのポリシーと機能に依存します．システ
ムによっては(例えばLinux)，基礎的なシステムの@code{chown}関数がクリア
しているので，@command{chown}コマンドのセットユーザIDやセットグループ
IDビットはクリアされてます．それ以外のシステム(例えばHP-UXとSolaris)で
は，スーパーユーザとして処理されるとき，@command{chown}コマンドはこれ
らのビットに影響しません．@command{chown}の利用が特権ユーザ以外に許可
されているシステムでは，これらのビットは常にシステムによってクリアされ
ています．そうでないとき，基礎的なシステムの動作を調査して下さい．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -c
@itemx --changes
@opindex -c
@opindex --changes
@cindex changed owners, verbosely describing
@c Verbosely describe the action for each @var{file} whose ownership
@c actually changes.
@c 
所有権が実際に変更されるそれぞれの@var{file}に対する動作を，冗長に記述
します．

@item -f
@itemx --silent
@itemx --quiet
@opindex -f
@opindex --silent
@opindex --quiet
@cindex error messages, omitting
@c Do not print error messages about files whose ownership cannot be
@c changed.
@c 
所有権を変更できないファイルについてのエラーメッセージを出力しません．

@itemx @w{@kbd{--from}=@var{old-owner}}
@opindex --from
@cindex symbolic links, changing owner
@c Change a @var{file}'s ownership only if it has current attributes specified
@c by @var{old-owner}.  @var{old-owner} has the same form as @var{new-owner}
@c described above.
@c This option is useful primarily from a security standpoint in that
@c it narrows considerably the window of potential abuse.
@c For example, to reflect a UID numbering change for one user's files
@c without an option like this, @code{root} might run
@c 
@var{old-owner}で指定されている現在の属性がある場合，@var{file}の所有
権を変更します．@var{old-owner}は，上記の@var{new-owner}の記述と同じ形
式です．このオプションは，潜在的な悪習の窓をかなり狭めるという点で，セ
キュリティの立場から主に役に立ちます．例えば，以下のように，このオプショ
ンを使用しないで，ユーザのファイルに対してUIDの変更を反映させるために，
@code{root}が実行したとします．

@smallexample
find / -owner OLDUSER -print0 | xargs -0 chown NEWUSER
@end smallexample

@c But that is dangerous because the interval between when the @command{find}
@c tests the existing file's owner and when the @command{chown} is actually run
@c may be quite large.
@c One way to narrow the gap would be to invoke chown for each file
@c as it is found:
@c 
しかし，@command{find}が既存のファイルの所有者をテストしたときと，
@command{chown}が実際に実行したときの間が非常に長い可能性があるので，
それは危険です．ギャップを小さくするひとつの方法は，それぞれのファイル
に対し見つかったときに@command{chown}を呼び出すことです．

@example
find / -owner OLDUSER -exec chown NEWUSER @{@} \;
@end example

@c But that is very slow if there are many affected files.
@c With this option, it is safer (the gap is narrower still)
@c though still not perfect:
@c 
しかし，影響されるファイルが多い場合は，それは非常に遅くなります．この
オプションを用いると，(ギャップを狭めたままで)完全ではありませんが，そ
れは安全になります．

@example
chown -R --from=OLDUSER NEWUSER /
@end example

@item --dereference
@opindex --dereference
@cindex symbolic links, changing owner
@findex lchown
@c Do not act on symbolic links themselves but rather on what they point to.
@c 
シンボリックリンク自身に動作せず，それが示すものに動作します．

@item -h
@itemx --no-dereference
@opindex -h
@opindex --no-dereference
@cindex symbolic links, changing owner
@findex lchown
@c Act on symbolic links themselves instead of what they point to.
@c This is the default.
@c This mode relies on the @code{lchown} system call.
@c On systems that do not provide the @code{lchown} system call,
@c @command{chown} fails when a file specified on the command line
@c is a symbolic link.
@c By default, no diagnostic is issued for symbolic links encountered
@c during a recursive traversal, but see @option{--verbose}.
@c 
シンボリックリンクが示すものではなく，それ自身に動作します．これはデフォ
ルトです．このモードは@code{lchown}システムコールに依存します．
@code{lchown}システムコールが提供されていないシステムでは，コマンドラ
インで指定されるファイルがシンボリックリンクの時，@command{chown}は失
敗します．デフォルトで，再帰的な処理の間に発見されるシンボリックリンク
に対する診断結果は表示されませんが，それについては@option{--verbose}は
参照してください．

@itemx --preserve-root
@opindex --preserve-root
@cindex root directory, disallow recursive modification
@c Fail upon any attempt to recursively change the filesystem root, @file{/}.
@c Without @option{--recursive}, this option has no effect.
@c @xref{Treating / specially}.
@c 
@option{--recursive}オプションを使用しているとき，ファイルシステムのルー
ト，@file{/}の移動する試みを失敗させます．@option{--recursive}を用いて
いない場合，このオプションは効果がありません．@xref{Treating / specially}.

@itemx --no-preserve-root
@opindex --no-preserve-root
@cindex root directory, allow recursive modification
@c Cancel the effect of any preceding @option{--preserve-root} option.
@c @xref{Treating / specially}.
@c 
それ以前の@option{--preserve-root}オプションの効果を取り消します．
@xref{Treating / specially}.

@item --reference=@var{ref_file}
@opindex --reference
@c Change the user and group of each @var{file} to be the same as those of
@c @var{ref_file}.  If @var{ref_file} is a symbolic link, do not use the
@c user and group of the symbolic link, but rather those of the file it
@c refers to.
@c 
それぞれの@var{file}のユーザとグループを，@var{ref_file}と同じになるよ
うに変更します．@var{ref_file}がシンボリックリンクの場合，シンボリック
リンクのユーザとグループではなく，それが参照するファイルのものを使用し
ます．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Output a diagnostic for every file processed.
@c If a symbolic link is encountered during a recursive traversal
@c on a system without the @code{lchown} system call, and @option{--no-dereference}
@c is in effect, then issue a diagnostic saying neither the symbolic link nor
@c its referent is being changed.
@c 
処理された全てのファイルに対し，診断結果を出力します．@code{lchown}シ
ステムコールがないシステムで，再帰的な処理の間にシンボリックリンクが見
つかり，@option{--no-dereference}の影響がある場合，シンボリックリンク
もその参照先も変更されないことを告げる診断結果を表示します．

@item -R
@itemx --recursive
@opindex -R
@opindex --recursive
@cindex recursively changing file ownership
@c Recursively change ownership of directories and their contents.
@c 
ディレクトリとその内容の所有権を再帰的に変更します．

@choptH
@xref{Traversing symlinks}.

@choptL
@xref{Traversing symlinks}.

@choptP
@xref{Traversing symlinks}.

@end table

@exitstatus


@node chgrp invocation
@c @section @command{chgrp}: Change group ownership
@section @command{chgrp}: グループの所有権の変更

@pindex chgrp
@cindex group ownership, changing
@cindex changing group ownership

@c @command{chgrp} changes the group ownership of each given @var{file}
@c to @var{group} (which can be either a group name or a numeric group id)
@c or to the group of an existing reference file.  Synopsis:
@c 
@command{chgrp}は，それぞれの与えられた@var{file}のグループ所有権を
@var{group}(グループ名またはグループIDのどちらかで与えられるはずです)，
または，既存の参照ファイルのグループに変更します．概要です．

@example
chgrp [@var{option}]@dots{} @{@var{group} | --reference=@var{ref_file}@} @var{file}@dots{}
@end example

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -c
@itemx --changes
@opindex -c
@opindex --changes
@cindex changed files, verbosely describing
@c Verbosely describe the action for each @var{file} whose group actually
@c changes.
@c 
グループが実際に変更されているそれぞれの@var{file}に対し，動作を冗長に
記述します．

@item -f
@itemx --silent
@itemx --quiet
@opindex -f
@opindex --silent
@opindex --quiet
@cindex error messages, omitting
@c Do not print error messages about files whose group cannot be
@c changed.
@c 
グループを変更できなかったファイルに関するエラーメッセージを出力しませ
ん．

@item --dereference
@opindex --dereference
@cindex symbolic links, changing owner
@findex lchown
@c Do not act on symbolic links themselves but rather on what they point to.
@c 
シンボリックリンク自身に作用するのではなく，それが指し示すものに作用し
ます．

@item -h
@itemx --no-dereference
@opindex -h
@opindex --no-dereference
@cindex symbolic links, changing group
@findex lchown
@c Act on symbolic links themselves instead of what they point to.
@c This is the default.
@c This mode relies on the @code{lchown} system call.
@c On systems that do not provide the @code{lchown} system call,
@c @command{chgrp} fails when a file specified on the command line
@c is a symbolic link.
@c By default, no diagnostic is issued for symbolic links encountered
@c during a recursive traversal, but see @option{--verbose}.
@c 
シンボリックリンクを，それが指し示すものの代わりにそれ自身に動作します．
これはデフォルトです．このモードは@code{lchown}システムコールに依存し
ます．コマンドラインで指定されているファイルがシンボリックリンクの時，
@command{chgrp}は失敗します．デフォルトで，再帰的な変換の間に見つかっ
たシンボリックリンクに対し診断結果は表示されませんが，それについては
@option{--verbose}を参照してください．

@itemx --preserve-root
@opindex --preserve-root
@cindex root directory, disallow recursive modification
@c Fail upon any attempt to recursively change the filesystem root, @file{/}.
@c Without @option{--recursive}, this option has no effect.
@c @xref{Treating / specially}.
@c 
@option{--recursive}オプションを使用しているとき，ファイルシステムのルー
ト，@file{/}の移動する試みを失敗させます．@option{--recursive}を用いて
いない場合，このオプションは効果がありません．@xref{Treating / specially}.

@itemx --no-preserve-root
@opindex --no-preserve-root
@cindex root directory, allow recursive modification
@c Cancel the effect of any preceding @option{--preserve-root} option.
@c @xref{Treating / specially}.
@c 
それ以前の@option{--preserve-root}オプションの効果を取り消します．
@xref{Treating / specially}.

@item --reference=@var{ref_file}
@opindex --reference
@c Change the group of each @var{file} to be the same as that of
@c @var{ref_file}.  If @var{ref_file} is a symbolic link, do not use the
@c group of the symbolic link, but rather that of the file it refers to.
@c 
それぞれの@var{file}のグループを，@var{ref_file}と同じになるように変更
します．@var{ref_file}がシンボリックリンクの場合，シンボリックリンクの
グループではなく，それが参照するファイルのものを使用します．

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Output a diagnostic for every file processed.
@c If a symbolic link is encountered during a recursive traversal
@c on a system without the @code{lchown} system call, and @option{--no-dereference}
@c is in effect, then issue a diagnostic saying neither the symbolic link nor
@c its referent is being changed.
@c 
処理した全てのファイルに対し，診断結果を出力します．@code{lchown}シス
テムコールがないシステムで，再帰的な変換の間にシンボリックリンクが見つ
かり，@option{--no-dereference}が有効でない場合，シンボリックリンクも
参照するものも変更されないことを告げる診断結果を表示します．

@item -R
@itemx --recursive
@opindex -R
@opindex --recursive
@cindex recursively changing group ownership
@c Recursively change the group ownership of directories and their contents.
@c 
ディレクトリとその内容のグループ所有権を再帰的に変更します．

@choptH
@xref{Traversing symlinks}.

@choptL
@xref{Traversing symlinks}.

@choptP
@xref{Traversing symlinks}.

@end table

@exitstatus


@node chmod invocation
@c @section @command{chmod}: Change access permissions
@section @command{chmod}: アクセス許可の変更

@pindex chmod
@cindex changing access permissions
@cindex access permissions, changing
@cindex permissions, changing access

@c @command{chmod} changes the access permissions of the named files.  Synopsis:
@c 
@command{chmod}は指名されたファイルのアクセス許可を変更します．概要で
す．

@example
chmod [@var{option}]@dots{} @{@var{mode} | --reference=@var{ref_file}@} @var{file}@dots{}
@end example

@cindex symbolic links, permissions of
@c @command{chmod} never changes the permissions of symbolic links, since
@c the @command{chmod} system call cannot change their permissions.
@c This is not a problem since the permissions of symbolic links are
@c never used.  However, for each symbolic link listed on the command
@c line, @command{chmod} changes the permissions of the pointed-to file.
@c In contrast, @command{chmod} ignores symbolic links encountered during
@c recursive directory traversals.
@c 
@command{chmod}システムコールは，シンボリックリンクの許可を変更できな
いため，@command{chmod}はそれらのの許可を決して変更しません．シンボリッ
クリンクの許可は決して使用されないので，これは問題ではありません．しか
し，コマンドラインでリストアップされたそれぞれのシンボリックリンクに対
し，@command{chmod}は指し示されたファイルの許可を変更します．その代わ
り，再帰的にディレクトリを横断している間，@command{chmod}は，遭遇した
シンボリックリンクを無視します．

@c If used, @var{mode} specifies the new permissions.
@c For details, see the section on @ref{File permissions}.
@c 
@var{mode}が使用されている場合，それは新しい許可を指定します．詳細は
@ref{File permissions}のセクションを参照してください．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -c
@itemx --changes
@opindex -c
@opindex --changes
@c Verbosely describe the action for each @var{file} whose permissions
@c actually changes.
@c 
許可が実際に変更されているそれぞれの@var{file}に対し，動作を冗長に記述
します．

@item -f
@itemx --silent
@itemx --quiet
@opindex -f
@opindex --silent
@opindex --quiet
@cindex error messages, omitting
@c Do not print error messages about files whose permissions cannot be
@c changed.
@c 
許可を変更できなかったファイルに関するエラーメッセージを出力しません．

@itemx --preserve-root
@opindex --preserve-root
@cindex root directory, disallow recursive modification
@c Fail upon any attempt to recursively change the filesystem root, @file{/}.
@c Without @option{--recursive}, this option has no effect.
@c @xref{Treating / specially}.
@c 
再帰的にファイルシステムのルート，@file{/}を変更する試みを失敗させます．
@option{--recursive}を用いていない場合，このオプションは効果がありませ
ん．@xref{Treating / specially}.

@itemx --no-preserve-root
@opindex --no-preserve-root
@cindex root directory, allow recursive modification
@c Cancel the effect of any preceding @option{--preserve-root} option.
@c @xref{Treating / specially}.
@c 
それ以前の@option{--preserve-root}オプションの効果を取り消します．
@xref{Treating / specially}.

@item -v
@itemx --verbose
@opindex -v
@opindex --verbose
@c Verbosely describe the action or non-action taken for every @var{file}.
@c 
与えられたすべての@var{file}に対し，動作，非動作の冗長な記述を行います．

@item --reference=@var{ref_file}
@opindex --reference
@c Change the mode of each @var{file} to be the same as that of @var{ref_file}.
@c @xref{File permissions}.
@c If @var{ref_file} is a symbolic link, do not use the mode
@c of the symbolic link, but rather that of the file it refers to.
@c 
それぞれの@var{file}のモードを，@var{ref_file}と同じになるように変更し
ます．@xref{File permissions}.  @var{ref_file}がシンボリックリンクの場
合，シンボリックリンクのモードではなく，それが参照するファイルのものを
使用します．

@item -R
@itemx --recursive
@opindex -R
@opindex --recursive
@cindex recursively changing access permissions
@c Recursively change permissions of directories and their contents.
@c 
ディレクトリとその内容の許可を再帰的に変更します．

@end table

@exitstatus


@node touch invocation
@c @section @command{touch}: Change file timestamps
@section @command{touch}: ファイルのタイプスタンプの変更

@pindex touch
@cindex changing file timestamps
@cindex file timestamps, changing
@cindex timestamps, changing file

@c @command{touch} changes the access and/or modification times of the
@c specified files.  Synopsis:
@c 
@command{touch}は，指定されたファイルのアクセスと/や編集された時間を変
更します．概要です．

@example
touch [@var{option}]@dots{} @var{file}@dots{}
@end example

@c On older systems, @command{touch} supports an obsolete syntax, as follows.
@c If the first @var{file} would be a valid argument to the @option{-t}
@c option and no timestamp is given with any of the @option{-d}, @option{-r},
@c or @option{-t} options and the @samp{--} argument is not given, that
@c argument is interpreted as the time for the other files instead of
@c as a file name.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})
@c does not allow this; use @option{-t} instead.
@c 
古いシステムでは，@command{touch}は以下のような時代遅れの構文ををサポー
トしています．最初の@var{file}が@option{-t}オプションの有効な引数で，
タイムスタンプが@option{-d}，@option{-r}，または@option{-t}オプション
で全く与えられておらず，@samp{--}引数が与えられていない場合，その引数
はファイル名としてではなく，その他のファイルに対する時間として解釈され
ます．@acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance})では，
これを許可していません．代わりに@option{-t}を使用してください．

@cindex empty files, creating
@c Any @var{file} that does not exist is created empty.
@c 
存在しない@var{file}はすべて空として作成されます．

@cindex permissions, for changing file timestamps
@c If changing both the access and modification times to the current
@c time, @command{touch} can change the timestamps for files that the user
@c running it does not own but has write permission for.  Otherwise, the
@c user must own the files.
@c 
アクセスと編集の時間の両方を現在の時間に変更するとき，@command{touch}
は実行しているユーザがファイルの所有者で無いが，書き込み許可があるもの
のタイムスタンプを変更することができます．それ以外では，ユーザはそのファ
イルの所有者である必要があります．

@c Although @command{touch} provides options for changing two of the times --
@c the times of last access and modification -- of a file, there is actually
@c a third one as well: the inode change time.  This is often referred to
@c as a file's @code{ctime}.
@c The inode change time represents the time when the file's meta-information
@c last changed.  One common example of this is when the permissions of a
@c file change.  Changing the permissions doesn't access the file, so
@c the atime doesn't change, nor does it modify the file, so the mtime
@c doesn't change.  Yet, something about the file itself has changed,
@c and this must be noted somewhere.  This is the job of the ctime field.
@c This is necessary, so that, for example, a backup program can make a
@c fresh copy of the file, including the new permissions value.
@c Another operation that modifies a file's ctime without affecting
@c the others is renaming.  In any case, it is not possible, in normal
@c operations, for a user to change the ctime field to a user-specified value.
@c 
@command{touch}は，ファイルの二つの時間 -- 最後のアクセスと編集 -- を
変更するオプションを提供しますが，実際には三番目のinodeの変更時間も同
じです．これはファイルの@code{ctime}としてよく参照されます．inodeの変
更時間は，ファイルのメタ情報が最後に変更された時間を表現します．一般的
な例の一つは，ファイルの許可を変更したときです．許可の変更は，ファイル
にアクセスしないのでatimeを変更しませんし，ファイルの編集もしないので
mtimeも変更しません．しかし，ファイル自身の何かは変っていまて，これは
どこかに記録する必要があります．これはctimeフィールドの仕事です．例え
ば，バックアッププログラムが新しい許可値まで含めてファイルの新しいコピー
を作成することを可能にするために，これが必要になります．他に影響しない
ようにファイルのctimeを編集するもう一つの処理は名前の変更です．通常の
処理では，ユーザがctimeフィールドをユーザが指定した値に変更することは，
いかなる場合でも不可能です．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
して下さい．

@table @samp

@item -a
@itemx --time=atime
@itemx --time=access
@itemx --time=use
@opindex -a
@opindex --time
@opindex atime@r{, changing}
@opindex access @r{time, changing}
@opindex use @r{time, changing}
@c Change the access time only.
@c 
アクセス時間だけ変更します．

@item -c
@itemx --no-create
@opindex -c
@opindex --no-create
@c Do not create files that do not exist.
@c 
存在していないファイルを作成しません．

@item -d
@itemx --date=time
@opindex -d
@opindex --date
@opindex time
@c Use @var{time} instead of the current time.  It can contain month names,
@c time zones, @samp{am} and @samp{pm}, etc.  @xref{Date input formats}.
@c 
現在の時間の代わりに@var{time}を指定します．それは，月名，タイムゾーン，
@samp{am}と@samp{pm}等を含めることが可能です．@xref{Date input
formats}.

@item -f
@opindex -f
@cindex BSD @command{touch} compatibility
@c Ignored; for compatibility with BSD versions of @command{touch}.
@c 
無視されます．BSD版の@command{touch}の互換性のためです．

@item -m
@itemx --time=mtime
@itemx --time=modify
@opindex -m
@opindex --time
@opindex mtime@r{, changing}
@opindex modify @r{time, changing}
@c Change the modification time only.
@c 
編集時間だけ変更します．

@item -r @var{file}
@itemx --reference=@var{file}
@opindex -r
@opindex --reference
@c Use the times of the reference @var{file} instead of the current time.
@c If this option is combined with the @option{--date=@var{time}}
@c (@option{-d @var{time}}) option, the reference @var{file}'s time is
@c the origin for any relative @var{time}s given, but is otherwise ignored.
@c For example, @samp{-r foo -d '-5 seconds'} specifies a time stamp
@c equal to five seconds before the corresponding time stamp for @file{foo}.
@c 
現在の時間の代わりに参照@var{file}の時間を使用します．このオプションが
@option{--date=@var{time}} (@option{-d @var{time}})オプションと組み合
わされている場合，参照する@var{file}の時間は，与えられたものの
@var{time}から相対的なものになりますが，それ以外では無視されます．例え
ば，@samp{-r foo -d '-5 seconds'}は，@file{foo}の対応するタイムスタン
プの五秒前と同じタイムスタンプを指定します．

@item -t [[CC]YY]MMDDhhmm[.ss]
@c Use the argument (optional four-digit or two-digit years, months,
@c days, hours, minutes, optional seconds) instead of the current time.
@c If the year is specified with only two digits, then @var{CC}
@c is 20 for years in the range 0 @dots{} 68, and 19 for years in
@c 69 @dots{} 99.  If no digits of the year are specified,
@c the argument is interpreted as a date in the current year.
@c 
現在の時間の代わりに引数(オプションの四桁または二桁の年，月，日，時間，
分，オプションの秒)を使用します．年が二桁のみで指定された場合，
@var{CC}は，0 @dots{} 68に対し20，69 @dots{} 99に対し19になります．年
の数字が指定されない場合，今年の日付として解釈されます．

@end table

@exitstatus


@node Disk usage
@c @chapter Disk usage
@chapter ディクスの使用

@cindex disk usage

@c No disk can hold an infinite amount of data.  These commands report on
@c how much disk storage is in use or available.  (This has nothing much to
@c do with how much @emph{main memory}, i.e., RAM, a program is using when
@c it runs; for that, you want @command{ps} or @command{pstat} or @command{swap}
@c or some such command.)
@c 
無限の量のデータを保てるディスクはありません．これらのコマンドは，ディ
スクストレージの使用や利用可能な量を報告します．(これは@emph{メインメ
モリ}，すなわち，プログラムが実行時に使用するRAMの量に対しては重要なこ
とはしません．そのため，@code{ps}や@code{pstat}や@code{swap}やそのよう
なコマンドが必要です．)

@menu
* df invocation::               Report filesystem disk space usage.
* du invocation::               Estimate file space usage.
* stat invocation::		Report file or filesystem status.
* sync invocation::             Synchronize memory and disk.
@end menu


@node df invocation
@c @section @command{df}: Report filesystem disk space usage
@section @command{df}: ファイルシステムのディスクスペースの使用の報告

@pindex df
@cindex filesystem disk usage
@cindex disk usage by filesystem

@c @command{df} reports the amount of disk space used and available on
@c filesystems.  Synopsis:
@c 
@command{df}は，ファイルシステムの使用されているディスクスペースと利用
可能なディスクスペースの量を報告します．概要です．

@example
df [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c With no arguments, @command{df} reports the space used and available on all
@c currently mounted filesystems (of all types).  Otherwise, @command{df}
@c reports on the filesystem containing each argument @var{file}.
@c 
引数を用いない場合，@command{df}は現在マウントされている(すべての形式
の)すべてのファイルシステムの使用されている，そして利用可能な空間を報
告します．それ以外では，@command{df}はそれぞれの引数の@var{file}を含む
ファイルシステム上の内容を報告します．

@c Normally the disk space is printed in units of
@c 1024 bytes, but this can be overridden (@pxref{Block size}).
@c Non-integer quantities are rounded up to the next higher unit.
@c 
通常ディスクスペースは1024バイト単位で出力されますが，これに優先するこ
とも可能です(@pxref{Block size})．整数ではない量は，次の単位まで切り上
げられます．

@cindex disk device file
@cindex device file, disk
@c If an argument @var{file} is a disk device file containing a mounted
@c filesystem, @command{df} shows the space available on that filesystem
@c rather than on the filesystem containing the device node (i.e., the root
@c filesystem).  @sc{gnu} @command{df} does not attempt to determine the disk usage
@c on unmounted filesystems, because on most kinds of systems doing so
@c requires extremely nonportable intimate knowledge of filesystem
@c structures.
@c 
引数の@var{file}がマウントされているファイルシステムを含むディスクデバ
イスファイルの場合，@command{df}はデバイスノードを含むファイルシステム
(すなわちルートファイルシステム)ではなく，そのファイルシステムの利用可
能な空間を表示します．@sc{gnu} @command{df}では，マウントしていないファ
イルシステムのディスクの使用を決定することは，ファイルシステム構造のほ
とんどのシステム間での極めて移植性のない緻密な知識が必要になるので，そ
うしようとしません．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -a
@itemx --all
@opindex -a
@opindex --all
@cindex automounter filesystems
@cindex ignore filesystems
@c Include in the listing filesystems that have a size of 0 blocks, which
@c are omitted by default.  Such filesystems are typically special-purpose
@c pseudo-filesystems, such as automounter entries.  Also, filesystems of
@c type ``ignore'' or ``auto'', supported by some operating systems, are
@c only included if this option is specified.
@c 
0ブロックの大きさのファイルシステムをリストに含め，それはデフォルトで
は省略されます．そのようなファイルシステムは，通常はオートマウントエン
トリーのような，特定の目的の疑似ファイルシステムです．また，サポートさ
れているシステムもある``ignore''や``auto''形式のファイルシステムは，こ
のオプションが指定されたときだけ含まれます．

@item -B @var{size}
@itemx --block-size=@var{size}
@opindex -B
@opindex --block-size
@cindex filesystem sizes
@c Scale sizes by @var{size} before printing them (@pxref{Block size}).
@c For example, @option{-BG} prints sizes in units of 1,073,741,824 bytes.
@c 
表示する前に，@var{size}で大きさを計ります(@pxref{Block size})．例えば，
@option{-BG}では，1,073,741,824バイト単位で大きさを表示します．

@optHumanReadable

@item -H
@opindex -H
@c Equivalent to @option{--si}.
@c 
@option{--si}と等価です．

@item -i
@itemx --inodes
@opindex -i
@opindex --inodes
@cindex inode usage
@c List inode usage information instead of block usage.  An inode (short
@c for index node) contains information about a file such as its owner,
@c permissions, timestamps, and location on the disk.
@c 
ブロックの使用の代わりに，inode使用の情報をリストアップします．
inode(index nodeの省略)は，ファイルに関する，所有者，許可，タイムスタ
ンプ，そしてディスクの位置のような情報を含みます．

@item -k
@opindex -k
@cindex kibibytes for filesystem sizes
@c Print sizes in 1024-byte blocks, overriding the default block size
@c (@pxref{Block size}).
@c This option is equivalent to @option{--block-size=1K}.
@c 
1024バイトブロックで出力し，デフォルトのブロックサイズに優先します
(@pxref{Block size})．このオプションは，@option{--block-size=1K}と等価
です．

@item -l
@itemx --local
@opindex -l
@opindex --local
@cindex filesystem types, limiting output to certain
@c Limit the listing to local filesystems.  By default, remote filesystems
@c are also listed.
@c 
ローカルファイルシステムのリストだけに制限します．デフォルトではリモー
トファイルシステムもリストアップされます．

@item --no-sync
@opindex --no-sync
@cindex filesystem space, retrieving old data more quickly
@c Do not invoke the @code{sync} system call before getting any usage data.
@c This may make @command{df} run significantly faster on systems with many
@c disks, but on some systems (notably SunOS) the results may be slightly
@c out of date.  This is the default.
@c 
使用データを取得する前に@code{sync}システムコールを呼び出しません．こ
れは多くのディスクを持つシステム上で@command{df}の実行をかなり速くする
かもしれませんが，システム(特にSunOS)によっては，結果が若干古いものに
なるかもしれません．これはデフォルトです．

@item -P
@itemx --portability
@opindex -P
@opindex --portability
@cindex one-line output format
@cindex @acronym{POSIX} output format
@cindex portable output format
@cindex output format, portable
@c Use the @acronym{POSIX} output format.  This is like the default format except
@c for the following:
@c 
@acronym{POSIX}出力形式を使用します．これは，以下を除いてデフォルトの
書式に似ています．

@enumerate
@item
@c The information about each filesystem is always printed on exactly
@c one line; a mount device is never put on a line by itself.  This means
@c that if the mount device name is more than 20 characters long (e.g., for
@c some network mounts), the columns are misaligned.
@c 
それぞれのファイルシステムの情報は常に正確に一行で出力されます．マウン
トデバイスはその行に書かれません．これはマウントデバイスの名前が20文字
以上(例えば，いくつかのネットワークマウント)の場合，列がきちんと並ばな
いことを意味します．

@item
@c The labels in the header output line are changed to conform to @acronym{POSIX}.
@c 
ヘッダ出力行のラベルは，@acronym{POSIX}に従い変更されます．
@end enumerate

@optSi

@item --sync
@opindex --sync
@cindex filesystem space, retrieving current data more slowly
@c Invoke the @code{sync} system call before getting any usage data.  On
@c some systems (notably SunOS), doing this yields more up to date results,
@c but in general this option makes @command{df} much slower, especially when
@c there are many or very busy filesystems.
@c 
あらゆる使用データの取得前に@code{sync}システムコールを呼び出します．
システム(特にSunOS)によってはこうすることで結果がより新しいものになり
ますが，一般的に言って，特に多くの，または非常に忙しいファイルシステム
があるとき，このオプションで@command{df}はかなり遅くなります．

@item -t @var{fstype}
@itemx --type=@var{fstype}
@opindex -t
@opindex --type
@cindex filesystem types, limiting output to certain
@c Limit the listing to filesystems of type @var{fstype}.  Multiple
@c filesystem types can be specified by giving multiple @option{-t} options.
@c By default, nothing is omitted.
@c 
@var{fstype}形式のファイルシステムのリストにだけ制限します．複数のファ
イルシステム形式は，複数の@option{-t}オプションを与えることで指定する
ことが可能です．デフォルトでは何も省略されません．

@item -T
@itemx --print-type
@opindex -T
@opindex --print-type
@cindex filesystem types, printing
@c Print each filesystem's type.  The types printed here are the same ones
@c you can include or exclude with @option{-t} and @option{-x}.  The particular
@c types printed are whatever is supported by the system.  Here are some of
@c the common names (this list is certainly not exhaustive):
@c 
それぞれのファイルシステムの形式を出力します．ここで出力される形式は，
@option{-t}と@option{-x}オプションで含めたり除外したりすることが可能な
ものと同じです．出力される特定の形式は，システムでサポートしているもの
すべてです．ここに共通の名前がいくつかあります(このリストはもちろん網
羅的なものではありません)．

@table @samp

@item nfs
@cindex NFS filesystem type
@c An NFS filesystem, i.e., one mounted over a network from another
@c machine.  This is the one type name which seems to be used uniformly by
@c all systems.
@c |０!|
NFSファイルシステム，すなわち，他のマシンからネットワークでマウントさ
れたものです．これは，すべてのシステムで同じように使用されると思われる，
一つの形式の名前です．

@item 4.2@r{, }ufs@r{, }efs@dots{}
@cindex Linux filesystem types
@cindex local filesystem types
@opindex 4.2 @r{filesystem type}
@opindex ufs @r{filesystem type}
@opindex efs @r{filesystem type}
@c A filesystem on a locally-mounted hard disk.  (The system might even
@c support more than one type here; Linux does.)
@c 
ローカルにマウントされたハードディスクのファイルシステムです．(システ
ムはこれらの一つ以上のものをサポートするかもしれません．Linuxはそうで
す．)

@item hsfs@r{, }cdfs
@cindex CD-ROM filesystem type
@cindex High Sierra filesystem
@opindex hsfs @r{filesystem type}
@opindex cdfs @r{filesystem type}
@c A filesystem on a CD-ROM drive.  HP-UX uses @samp{cdfs}, most other
@c systems use @samp{hsfs} (@samp{hs} for ``High Sierra'').
@c 
CD-ROMドライブのファイルシステムです．HP-UXは@samp{cdfs}を使用し，その
他のほとんどのシステムは@samp{hsfs} (@samp{hs}は``High Sierra''です)を
使用します．

@item pcfs
@cindex PC filesystem
@cindex DOS filesystem
@cindex MS-DOS filesystem
@cindex diskette filesystem
@opindex pcfs
@c An MS-DOS filesystem, usually on a diskette.
@c 
MS-DOSのファイルシステムで，通常ディスケット上です．

@end table

@item -x @var{fstype}
@itemx --exclude-type=@var{fstype}
@opindex -x
@opindex --exclude-type
@c Limit the listing to filesystems not of type @var{fstype}.
@c Multiple filesystem types can be eliminated by giving multiple
@c @option{-x} options.  By default, no filesystem types are omitted.
@c 
@var{fstype}形式でないファイルシステムにリストを制限します．複数のファ
イルシステムの形式は，複数の@option{-x}オプションを使用することで排除
することが可能です．デフォルトでは省略されるファイルシステム形式はあり
ません．

@item -v
@c Ignored; for compatibility with System V versions of @command{df}.
@c 
無視されます．System V版の@command{df}への互換性のためです．

@end table

@exitstatus


@node du invocation
@c @section @command{du}: Estimate file space usage
@section @command{du}: ファイルスペースの使用を推定

@pindex du
@cindex file space usage
@cindex disk usage for files

@c @command{du} reports the amount of disk space used by the specified files
@c and for each subdirectory (of directory arguments).  Synopsis:
@c 
@command{du}は，指定されているファイルとそれぞれの(ディレクトリ引数の)
サブディレクトリが使用しているディスクスペースの量を報告します．概要で
す．

@example
du [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c With no arguments, @command{du} reports the disk space for the current
@c directory.  Normally the disk space is printed in units of
@c 1024 bytes, but this can be overridden (@pxref{Block size}).
@c Non-integer quantities are rounded up to the next higher unit.
@c 
引数を用いない場合，@command{du}は現在のディレクトリのディスクスペース
を報告します．通常，ディスクスペースは1024バイト単位で出力されますが，
これに優先することも可能です(@pxref{Block size})．整数ではない量は，次
に大きな単位に切り上げられます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -a
@itemx --all
@opindex -a
@opindex --all
@c Show counts for all files, not just directories.
@c 
ディレクトリだけでなく，すべてのファイルを数えたものを表示します．

@itemx --apparent-size
@opindex --apparent-size
@c Print apparent sizes, rather than disk usage.  The apparent size of a
@c file is the number of bytes reported by @code{wc -c} on regular files,
@c or more generally, @code{ls -l --block-size=1} or @code{stat --format=%s}.
@c For example, a file containing the word @samp{zoo} with no newline would,
@c of course, have an apparent size of 3.  Such a small file may require
@c anywhere from zero to 16 or more kilobytes of disk space, depending on
@c the type and configuration of the file system on which the file resides.
@c However, a sparse file created with this command
@c 
ディスクを使用している大きさではなく見かけ上の大きさを出力します．ファ
イルの見かけ上の大きさは，通常のファイルに対し@code{wc -c}，またはより
一般的に，@code{ls -l --block-size=1}や@code{stat --format=%s}で報告さ
れるバイト数です．例えば，改行が無い単語@samp{zoo}を含んでいるファイル
はもちろん，見かけ上の大きさは3になります．そのような小さなファイルで
も，ファイルが存在するファイルシステムの形式や設定によっては，ゼロから
16バイト，またはより大きなキロバイトのディスク領域が必要かもしれません．
しかし，以下のコマンドで作成される疎らなファイルを考えてみます．
@example
: | dd bs=1 seek=`echo '2^31'|bc` of=big
@end example
@c has an apparent size of 2 gigabytes, yet on most modern
@c systems, it actually uses almost no disk space.
@c 
これは，見かけ上2ギガバイトですが，最近のほとんどのシステムでは，実際
にはほとんどディスク領域を使用しません．

@item -b
@itemx --bytes
@opindex -b
@opindex --bytes
@c Equivalent to @code{--apparent-size --block-size=1}.
@c 
@code{--apparent-size --block-size=1}と同じです．

@item -B @var{size}
@itemx --block-size=@var{size}
@opindex -B
@opindex --block-size
@cindex file sizes
@c Scale sizes by @var{size} before printing them (@pxref{Block size}).
@c For example, @option{-BG} prints sizes in units of 1,073,741,824 bytes.
@c 
大きさを出力する前に@var{size}で計測します(@pxref{Block size})．例えば，
@option{-BG}では1,073,741,824バイト単位で出力します．

@item -c
@itemx --total
@opindex -c
@opindex --total
@cindex grand total of disk space
@c Print a grand total of all arguments after all arguments have
@c been processed.  This can be used to find out the total disk usage of
@c a given set of files or directories.
@c 
すべての引数を処理した後，すべての引数の合計を出力します．これは，与え
られたファイルやディレクトリの集合の，ディスク使用の合計を知るために使
用することが可能です．

@item -D
@itemx --dereference-args
@opindex -D
@opindex --dereference-args
@c Dereference symbolic links that are command line arguments.
@c Does not affect other symbolic links.  This is helpful for finding
@c out the disk usage of directories, such as @file{/usr/tmp}, which
@c are often symbolic links.
@c 
コマンドライン引数のシンボリックリンクを間接参照します．その他のシンボ
リックリンクには影響しません．これは，@file{/usr/tmp}のように，シンボ
リックリンクにされることが多いディレクトリのディスクの使用状況を知りた
いとき役に立ちます．

@optHumanReadable

@item -H
@opindex -H
@c Currently, @option{-H} is the same as @option{--si},
@c except that @option{-H} evokes a warning.
@c This option will be changed to be equivalent to
@c @option{--dereference-args} (@option{-D}).
@c 
現在は，@option{-H}で警告される以外は@option{-H}は@option{--si}と同じ
です．このオプションは変更され，@option{--dereference-args}
(@option{-D})と等価になっています．

@item -k
@opindex -k
@cindex kibibytes for file sizes
@c Print sizes in 1024-byte blocks, overriding the default block size
@c (@pxref{Block size}).
@c This option is equivalent to @option{--block-size=1K}.
@c 
1024バイトブロックで出力し，デフォルトのブロックサイズに優先します
(@pxref{Block size})．このオプションは，@option{--block-size=1K}と等価
です．

@item -l
@itemx --count-links
@opindex -l
@opindex --count-links
@cindex hard links, counting in @command{du}
@c Count the size of all files, even if they have appeared already (as a
@c hard link).
@c 
すでに(ハードリンクとして)現れている場合でも，すべてのファイルのサイズ
を計算します．

@item -L
@itemx --dereference
@opindex -L
@opindex --dereference
@cindex symbolic links, dereferencing in @command{du}
@c Dereference symbolic links (show the disk space used by the file
@c or directory that the link points to instead of the space used by
@c the link).
@c 
シンボリックリンクを間接参照します(リンクで使用しているスペースの代わ
りに，リンクが示すファイルやディレクトリが使用しているディスクスペース
を表示します)．

@item -P
@itemx --no-dereference
@opindex -P
@opindex --no-dereference
@cindex symbolic links, dereferencing in @command{du}
@c For each symbolic links encountered by @command{du},
@c consider the disk space used by the symbolic link.
@c 
@command{du}が見つけたそれぞれのシンボリックリンクを，シンボリックリン
クが使用しているディスクスペースと考えます．

@item --max-depth=@var{DEPTH}
@opindex --max-depth=@var{DEPTH}
@cindex limiting output of @command{du}
@c Show the total for each directory (and file if --all) that is at
@c most MAX_DEPTH levels down from the root of the hierarchy.  The root
@c is at level 0, so @code{du --max-depth=0} is equivalent to @code{du -s}.
@c 
階層のルートから最大MAX_DEPTHレベルまで降りて，それぞれのディレクトリ
(そして@samp{--all}の場合はファイル)の合計を表示します．ルートはレベル
0なので，@code{du --max-depth=0}は@code{du -s}と同じです．

@item -0
@opindex -0
@itemx --null
@opindex --null
@cindex output NUL-terminated lines
@c Output the zero byte (@kbd{NUL}) at the end of each line, rather than a newline.
@c This option enables other programs to parse the output of @command{du}
@c even when that output would contain file names with embedded newlines.
@c 
それぞれの行の終りに，改行ではなくゼロバイト(@kbd{NUL})を出力します．
このオプションで，出力に改行が含まれているファイル名が含まれているとき
でも，他のプログラムが@command{du}の出力を構文解析することが可能になり
ます．

@itemx --si
@opindex --si
@cindex SI output
@c Append an SI-style abbreviation to each size, such as @samp{MB} for
@c megabytes.  Powers of 1000 are used, not 1024; @samp{MB} stands for
@c 1,000,000 bytes.  Use the @option{-h} or @option{--human-readable} option if
@c you prefer powers of 1024.
@c 
メガバイトに対する@samp{MB}のような，SI形式のサイズの略語を追加します．
1024倍ではなく1000倍が使用されます．@samp{MB}は1,000,000バイトを意味し
ます．1024倍を望む場合，@option{-h}または@option{--human-readable}オプ
ションを使用してください．

@item -s
@itemx --summarize
@opindex -s
@opindex --summarize
@c Display only a total for each argument.
@c 
それぞれの引数の合計のみ表示します．

@item -S
@itemx --separate-dirs
@opindex -S
@opindex --separate-dirs
@c Report the size of each directory separately, not including the sizes
@c of subdirectories.
@c 
サブディレクトリのサイズを含めず，それぞれのディレクトリのサイズを別々
に報告します．

@item -x
@itemx --one-file-system
@opindex -x
@opindex --one-file-system
@cindex one filesystem, restricting @command{du} to
@c Skip directories that are on different filesystems from the one that
@c the argument being processed is on.
@c 
処理を開始した引数のディレクトリと異なるファイルシステムを省略します．

@item --exclude=@var{PATTERN}
@opindex --exclude=@var{PATTERN}
@cindex excluding files from @command{du}
@c When recursing, skip subdirectories or files matching @var{PATTERN}.
@c For example, @code{du --exclude='*.o'} excludes files whose names
@c end in @samp{.o}.
@c 
再帰的なとき，@var{PATTERN}にマッチするサブディレクトリやファイルを省
略します．例えば，@code{du --exclude='*.o'}は@samp{.o}で終わる名前のファ
イルを除外します．

@item -X @var{FILE}
@itemx --exclude-from=@var{FILE}
@opindex -X @var{FILE}
@opindex --exclude-from=@var{FILE}
@cindex excluding files from @command{du}
@c Like @option{--exclude}, except take the patterns to exclude from @var{FILE},
@c one per line.  If @var{FILE} is @samp{-}, take the patterns from standard
@c input.
@c 
除外するパターンを@var{FILE}から受け取る以外，@option{--exclude}に似て
います．@var{FILE}が@samp{-}の場合，標準入力からパターンを受け取ります．

@end table

@cindex NFS mounts from BSD to HP-UX
@c On BSD systems, @command{du} reports sizes that are half the correct
@c values for files that are NFS-mounted from HP-UX systems.  On HP-UX
@c systems, it reports sizes that are twice the correct values for
@c files that are NFS-mounted from BSD systems.  This is due to a flaw
@c in HP-UX; it also affects the HP-UX @command{du} program.
@c 
BSDシステムでは，HP-UXシステムからのNFSマウントされているファイルの正
しい値の半分のサイズを，@command{du}は報告します．HP-UXシステムでは，
BSDシステムからのNFSマウントされているファイルの正しい値の二倍のサイズ
を報告します．これはHP-UXの欠陥です．それはHP-UX @command{du}プログラ
ムにも影響します．

@exitstatus


@node stat invocation
@c @section @command{stat}: Report file or filesystem status
@section @command{stat}: ファイルやファイルシステムのステータスを報告

@pindex stat
@cindex file status
@cindex filesystem status

@c @command{stat} displays information about the specified file(s).  Synopsis:
@c 
@command{stat}は，指定したファイルの情報を表示します．概要です．

@example
stat [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c With no option, @command{stat} reports all information about the given files.
@c But it also can be used to report the information of the filesystems the
@c given files are located on. If the files are links, @command{stat} can
@c also give information about the files the links point to.
@c 
オプションを用いていない場合，@command{stat}は与えられたファイルのすべ
ての情報を報告します．しかし，与えられたファイルが存在するファイルシス
テムの情報だけを報告するために使用することも可能です．ファイルがリンク
の場合，@command{stat}はリンク先のファイルの情報も与えてくれます．

@table @samp

@item -f
@itemx --filesystem
@opindex -f
@opindex --filesystem
@cindex filesystems
@c Report information about the filesystems where the given files are located
@c instead of information about the files themselves.
@c 
与えられたファイル自身の情報ではなく，ファイルが存在しているファイルシ
ステムの情報を報告します．

@item -L
@itemx --dereference
@opindex -L
@opindex --dereference
@cindex symbolic links, dereferencing in @command{stat}
@c Change how @command{stat} treats symbolic links.
@c With this option, @command{stat} acts on the file referenced
@c by each symbolic link argument.
@c Without it, @command{stat} acts on any symbolic link argument directly.
@c 
@command{stat}のシンボリックリンクの処理方法を変更します．このオプショ
ンを用いると，@command{stat}はそれぞれのシンボリックリンク引数の参照先
のファイルで動作します．そうでなければ，@command{stat}はシンボリックリ
ンクで直接動作します．

@item -t
@itemx --terse
@opindex -t
@opindex --terse
@cindex terse output
@c Print the information in terse form, suitable for parsing by other programs.
@c 
他のプログラムでパースするのに適した，簡潔な方式で情報を出力します．

@item -c
@itemx --format
@opindex -c
@opindex --format
@cindex output format
@c Allow user to specify the output format.
@c 
ユーザ指定の出力書式を可能にします．

@c Interpreted sequences for file stat are:
@c 
ファイルのステータスとして解釈されるものです．
@itemize @bullet
@c @item %a - Access rights in octal
@c @item %A - Access rights in human readable form
@c @item %b - Number of blocks allocated (see @samp{%B})
@c @item %B - The size in bytes of each block reported by @samp{%b}
@c @item %d - Device number in decimal
@c @item %D - Device number in hex
@c @item %f - raw mode in hex
@c @item %F - File type
@c @item %g - Group Id of owner
@c @item %G - Group name of owner
@c @item %h - Number of hard links
@c @item %i - Inode number
@c @item %n - File name
@c @item %N - Quoted File name with dereference if symbolic link
@c @item %o - IO block size
@c @item %s - Total size, in bytes
@c @item %t - Major device type in hex
@c @item %T - Minor device type in hex
@c @item %u - User Id of owner
@c @item %U - User name of owner
@c @item %x - Time of last access
@c @item %X - Time of last access as seconds since Epoch
@c @item %y - Time of last modification
@c @item %Y - Time of last modification as seconds since Epoch
@c @item %z - Time of last change
@c @item %Z - Time of last change as seconds since Epoch
@c 
@item %a - アクセス許可の八進数
@item %A - アクセス許可の人間が読める形式
@item %b - 領域のブロック数 (see @samp{%B})
@item %B - @samp{%b}で報告されるそれぞれのブロックのバイト数
@item %d - 十進数のデバイス番号
@item %D - 16進数のデバイス番号
@item %f - 16進数のraw mode
@item %F - ファイル形式
@item %g - 所有者のグループId
@item %G - 所有者のグループ名
@item %h - ハードリンク数
@item %i - inode番号
@item %n - ファイル名
@item %N - シンボリックリンクの場合，間接参照した引用符で囲まれたファイル名
@item %o - IOブロックサイズ
@item %s - バイト単位の全体の大きさ
@item %t - 16進数のメジャーデバイス形式
@item %T - 16進数のマイナーデバイス形式
@item %u - 所有者のユーザId
@item %U - 所有者のユーザ名
@item %x - 最後にアクセスした時間
@item %X - 最後にアクセスしたEpoch以来の秒数
@item %y - 最後に編集した時間
@item %Y - 最後に編集したEpoch以来の秒数
@item %z - 最後に変更した時間
@item %Z - 最後に変更したEpoch以来の秒数
@end itemize

@c Interpreted sequences for filesystem stat are:
@c 
ファイルシステムのステータスとして解釈されるものです．
@itemize @bullet
@c @item %n - File name
@c @item %i - File System id in hex
@c @item %l - Maximum length of filenames
@c @item %t - Type in hex
@c @item %T - Type in human readable form
@c @item %b - Total data blocks in file system
@c @item %f - Free blocks in file system
@c @item %a - Free blocks available to non-superuser
@c @item %s - Optimal transfer block size
@c @item %c - Total file nodes in file system
@c 
@item %n - ファイル名
@item %i - 16進数のファイルシステムid
@item %l - ファイル名の最大長さ
@item %t - 16進数の形式
@item %T - 人間が読める形式
@item %b - ファイルシステム全体のデータブロック
@item %f - ファイルシステムの空きブロック
@item %a - スーパーユーザ以外が利用可能な空きブロック
@item %s - 最適に移動されるブロックサイズ
@item %c - ファイルシステム全体のファイルノード
@end itemize
@end table

@exitstatus


@node sync invocation
@c @section @command{sync}: Synchronize data on disk with memory
@section @command{sync}: ディスクのデータとメモリの同期

@pindex sync
@cindex synchronize disk and memory

@cindex superblock, writing
@cindex inodes, written buffered
@c @command{sync} writes any data buffered in memory out to disk.  This can
@c include (but is not limited to) modified superblocks, modified inodes,
@c and delayed reads and writes.  This must be implemented by the kernel;
@c The @command{sync} program does nothing but exercise the @code{sync} system
@c call.
@c 
@command{sync}は，メモリに蓄えられているデータをすべてディスクに書き出
します．これは，(制限はあるものの)編集されたスーパーブロック，編集され
たinode，そして遅延された読み書きが含まれます．これはカーネルで実装さ
れている必要があります．@command{sync}プログラムは，@code{sync}システ
ムコールの呼び出し以外，何もしません．

@cindex crashes and corruption
@c The kernel keeps data in memory to avoid doing (relatively slow) disk
@c reads and writes.  This improves performance, but if the computer
@c crashes, data may be lost or the filesystem corrupted as a
@c result. @command{sync} ensures everything in memory is written to disk.
@c 
カーネルは，(相対的に遅い)ディクスの読み書きを避けるため，メモリのデー
タをそのままにします．これはパフォーマンスを改善しますが，コンピュータ
が壊れた場合，結果としてデータが失われたり，ファイルシステムが壊れるか
もしれません．@command{sync}は，メモリにあるものすべてを確実にディスク
に書き込みます．

@c Any arguments are ignored, except for a lone @option{--help} or
@c @option{--version} (@pxref{Common options}).
@c 
単独の@option{--help}や@option{--version} (@pxref{Common options})以外
のあらゆるオプションは無視されます．

@exitstatus


@node Printing text
@c @chapter Printing text
@chapter テキストの表示

@cindex printing text, commands for
@cindex commands for printing text

@c This section describes commands that display text strings.
@c 
このセクションは，テキスト文字列を画面に表示するコマンドを説明します．

@menu
* echo invocation::             Print a line of text.
* printf invocation::           Format and print data.
* yes invocation::              Print a string until interrupted.
@end menu


@node echo invocation
@c @section @command{echo}: Print a line of text
@section @command{echo}: テキストの行を表示

@pindex echo
@cindex displaying text
@cindex printing text
@cindex text, displaying
@cindex arbitrary text, displaying

@c @command{echo} writes each given @var{string} to standard output, with a
@c space between each and a newline after the last one.  Synopsis:
@c 
@command{echo}は，与えられたそれぞれの@var{string}を，それぞれの間にス
ペースを用い，最後のものの後に改行を用いて，標準出力に書き出します．概
要です．

@example
echo [@var{option}]@dots{} [@var{string}]@dots{}
@end example

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp
@item -n
@opindex -n
@c Do not output the trailing newline.
@c 
終りの改行を出力しません．

@item -e
@opindex -e
@cindex backslash escapes
@c Enable interpretation of the following backslash-escaped characters in
@c each @var{string}:
@c 
それぞれの@var{string}で，以下のバックスペースエスケープされた文字の解
釈を可能にします．

@table @samp
@item \a
@c alert (bell)
@c 
警報(ベル)
@item \b
@c backspace
@c 
バックスペース
@item \c
@c suppress trailing newline
@c 
終りの改行を抑制
@item \f
@c form feed
@c 
フォームフィード
@item \n
@c new line
@c 
改行
@item \r
@c carriage return
@c 
キャリッジリターン
@item \t
@c horizontal tab
@c 
水平タブ
@item \v
@c vertical tab
@c 
垂直タブ
@item \\
@c backslash
@c 
バックスラッシュ
@item \@var{nnn}
@c the character whose @acronym{ASCII} code is @var{nnn} (octal); if @var{nnn} is not
@c a valid octal number, it is printed literally.
@c 
@acronym{ASCII}コードが@var{nnn}(八進数)の文字．@var{nnn}が有効な数字
でない場合，それは文字通りに出力されます．
@end table

@end table

@exitstatus


@node printf invocation
@c @section @command{printf}: Format and print data
@section @command{printf}: データの書式化と出力

@pindex printf
@c @command{printf} does formatted printing of text. Synopsis:
@c 
@command{printf}はテキストの書式化された表示を行います．概要です．

@example
printf @var{format} [@var{argument}]@dots{}
@end example

@c @command{printf} prints the @var{format} string, interpreting @samp{%}
@c directives and @samp{\} escapes in the same way as the C @command{printf}
@c function.  The @var{format} argument is re-used as necessary to convert
@c all of the given @var{argument}s.
@c 
@command{printf}は，C @code{printf}関数と同じ方法で，@samp{%}指示語と
@samp{\}エスケープを解釈しながら@var{format}文字列を表示します．与えら
れた@var{argument}のすべてを変換する必要があるので，@var{format}引数は
再利用されます．

@vindex LC_NUMERIC
@c A floating-point argument must use a period before any fractional
@c digits, but is printed according to the @env{LC_NUMERIC} category of the
@c current locale.  For example, in a locale whose radix character is a
@c comma, the command @samp{printf %g 3.14} outputs @samp{3,14} whereas
@c the command @samp{printf %g 3,14} is an error.
@c 
浮動小数点の引数は，小数桁の前にピリオドを使用する必要がありますが，出
力は現在のロカールの@env{LC_NUMERIC}カテゴリに依存します．例えば，ロカー
ルの基数文字がカンマのとき，コマンド@samp{printf %g 3.14}で@samp{3,14} 
を出力しますが，コマンド@samp{printf %g 3,14}はエラーになります．

@c @command{printf} has one additional directive, @samp{%b}, which prints its
@c argument string with @samp{\} escapes interpreted in the same way as in
@c the @var{format} string, except that octal escapes are of the form
@c @samp{\0@var{ooo}} where @var{ooo} is 0 to 3 octal digits.
@c 
@command{printf}は追加の指示語@samp{%b}があり，それは，@var{format}文
字列と同じ方法で@samp{\}エスケープを解釈しながら，その引数文字列を表示
しますが，例外として，八進数のエスケープは@samp{\0@var{ooo}}の形式で，
@var{ooo}は0から3桁の八進数になります．

@kindex \@var{ooo}
@kindex \x@var{hh}

@c @command{printf} interprets @samp{\@var{ooo}} in @var{format} as an octal number
@c (if @var{ooo} is 1 to 3 octal digits) specifying a character to print,
@c and @samp{\x@var{hh}} as a hexadecimal number (if @var{hh} is 1 to 2 hex
@c digits) specifying a character to print.
@c 
@command{printf}は，表示文字を指定するとき，@var{format}内の
@samp{\0ooo}を(@var{ooo}が1から3桁の八進の場合)八進数として，そして，
表示文字を指定するとき，@samp{\xhhh}を(@var{hhh}が0から三桁の16進の場
合)16進数として解釈します．

@kindex \uhhhh
@kindex \Uhhhhhhhh
@c @command{printf} interprets two character syntaxes introduced in ISO C 99:
@c @samp{\u} for 16-bit Unicode characters, specified as 4 hex digits
@c @var{hhhh}, and @samp{\U} for 32-bit Unicode characters, specified as 8 hex
@c digits @var{hhhhhhhh}. @command{printf} outputs the Unicode characters
@c according to the LC_CTYPE part of the current locale, i.e. depending
@c on the values of the environment variables @env{LC_ALL}, @env{LC_CTYPE},
@c @env{LANG}.
@c 
@command{printf}は，@acronym{ISO} C 99で導入された二文字の構文を解釈し
ます．四桁の16進数@var{hhhh}で指定される16ビットのUnicode文字に対する
@samp{\u}，そして，四桁の16進数@var{hhhhhhhh}で指定される32ビットの
Unicode文字に対する@samp{\U}です．現在のロカールのLC_CTYPEの部分に依存
して@command{printf}はUnicode文字を出力し，すなわち，環境変数
@env{LC_ALL}，@env{LC_CTYPE}，@env{LANG}の値には依存しません．

@c The processing of @samp{\u} and @samp{\U} requires a full-featured
@c @code{iconv} facility. It is activated on systems with glibc 2.2 (or newer),
@c or when @code{libiconv} is installed prior to this package. Otherwise the
@c use of @samp{\u} and @samp{\U} will give an error message.
@c 
@samp{\u}と@samp{\U}の処理では，@code{iconv}の機能が完全になっている必
要があります．glibc 2.2(またはそれより新しいもの)を用いたシステムや，
このパッケージに優先する@code{libiconv}がインストールされているときは
動作します．それ以外で@samp{\u}と@samp{\U}を使用すると，エラーメッセー
ジが表示されます．

@kindex \c
@c An additional escape, @samp{\c}, causes @command{printf} to produce no
@c further output.
@c 
追加のエスケープ@samp{\c}は，@command{printf}にそれ以上の出力を生成さ
せません．

@c The only options are a lone @option{--help} or
@c @option{--version}.  @xref{Common options}.
@c 
オプションは，単独の@option{--help}や@option{--version}だけです．
@xref{Common options}.

@c The Unicode character syntaxes are useful for writing strings in a locale
@c independent way. For example, a string containing the Euro currency symbol
@c 
Unicode文字の構文は，ロカールに依存している文字列を書くとき役に立ちま
す．例えば，Euro通貨の記号を含む文字列です．

@example
$ /usr/local/bin/printf '\u20AC 14.95'
@end example

@noindent
@c will be output correctly in all locales supporting the Euro symbol
@c (ISO-8859-15, UTF-8, and others). Similarly, a Chinese string
@c 
これで，Euroの記号をサポートしているすべてのロカールで(ISO-8859-15，
UTF-8，他)正しく出力されます．同様に中国文字を利用します．

@example
$ /usr/local/bin/printf '\u4e2d\u6587'
@end example

@noindent
@c will be output correctly in all Chinese locales (GB2312, BIG5, UTF-8, etc).
@c 
これで，すべての中国のロカール(GB2312，BIG5，UTF-8，等)で正しく出力さ
れます．

@c Note that in these examples, the full pathname of @command{printf} has been
@c given, to distinguish it from the GNU @code{bash} builtin function
@c @command{printf}.
@c 
これらの例は，GNU @code{bash}の組み込み関数@command{printf}と区別する
ため，@command{printf}のフルパス名が与えられていることに注意して下さい．

@c For larger strings, you don't need to look up the hexadecimal code
@c values of each character one by one. @acronym{ASCII} characters mixed with \u
@c escape sequences is also known as the JAVA source file encoding. You can
@c use GNU recode 3.5c (or newer) to convert strings to this encoding. Here
@c is how to convert a piece of text into a shell script which will output
@c this text in a locale-independent way:
@c 
より長い文字列では，それぞれの文字一つ一つの16進数のコード値を探す必要
がありません．@samp{\u}エスケープシーケンスが混ざっている
@acronym{ASCII}文字は，JAVAのソースファイルのエンコードとして知られて
います．このエンコードされた文字列を変換するために，GNU recode 3.5c(ま
たはより新しいもの)を使用することが可能です．テキストの一部を，ロケー
ルに依存しない方法でこのテキストを出力するシェルスクリプトに変換する方
法は以下のようになります．

@smallexample
$ LC_CTYPE=zh_CN.big5 /usr/local/bin/printf \
    '\u4e2d\u6587\n' > sample.txt
$ recode BIG5..JAVA < sample.txt \
    | sed -e "s|^|/usr/local/bin/printf '|" -e "s|$|\\\\n'|" \
    > sample.sh
@end smallexample

@exitstatus


@node yes invocation
@c @section @command{yes}: Print a string until interrupted
@section @command{yes}: 中断するまで文字列を出力

@pindex yes
@cindex repeated output of a string

@c @command{yes} prints the command line arguments, separated by spaces and
@c followed by a newline, forever until it is killed.  If no arguments are
@c given, it prints @samp{y} followed by a newline forever until killed.
@c 
@command{yes}は，スペースで分離され改行後置されたコマンドライン引数を，
キルされるまで永遠に出力します．引数が与えられない場合は，改行後置され
た@samp{y}を，キルされるまで永遠に出力します．

@c Upon a write error, @command{yes} exits with status @samp{1}.
@c 
上記のエラーで，@command{yes}は@samp{1}のステータスで終了します．

@c The only options are a lone @option{--help} or @option{--version}.
@c @xref{Common options}.
@c 
オプションは，単独の@option{--help}や@option{--version}だけです．
@xref{Common options}.


@node Conditions
@c @chapter Conditions
@chapter 条件文

@cindex conditions
@cindex commands for exit status
@cindex exit status commands

@c This section describes commands that are primarily useful for their exit
@c status, rather than their output.  Thus, they are often used as the
@c condition of shell @code{if} statements, or as the last command in a
@c pipeline.
@c 
このセクションでは，その出力ではなく，終了ステータスが主に役に立つコマ
ンドを記述します．このためそれらは，シェルの@code{if}文の条件やパイプ
ラインの最後のコマンドとしてよく使用されます．

@menu
* false invocation::            Do nothing, unsuccessfully.
* true invocation::             Do nothing, successfully.
* test invocation::             Check file types and compare values.
* expr invocation::             Evaluate expressions.
@end menu


@node false invocation
@c @section @command{false}: Do nothing, unsuccessfully
@section @command{false}: 何もせず失敗します

@pindex false
@cindex do nothing, unsuccessfully
@cindex failure exit status
@cindex exit status of @command{false}

@c @command{false} does nothing except return an exit status of 1, meaning
@c @dfn{failure}.  It can be used as a place holder in shell scripts
@c where an unsuccessful command is needed.
@c 
@command{false}は，@dfn{失敗(failure)}を意味する1の終了ステータスを返
す以外何もしません．それは，シェルスクリプトの失敗のコマンドが必要な位
置で使用することが可能です．

@c By default, @command{false} honors the @option{--help} and @option{--version}
@c options.  However, that is contrary to @acronym{POSIX}, so when the environment
@c variable @env{POSIXLY_CORRECT} is set, @command{false} ignores @emph{all}
@c command line arguments, including @option{--help} and @option{--version}.
@c 
デフォルトで，@command{false}は@option{--help}と@option{--version}を尊
重します．しかし，それは@acronym{POSIX}に準拠していないので，環境変数
@env{POSIXLY_CORRECT}が設定されているとき，@command{false}は，
@option{--help}と@option{--version}を含む，すべてのコマンドライン引数
を無視します．

@c This version of @command{false} is implemented as a C program, and is thus
@c more secure and faster than a shell script implementation, and may safely
@c be used as a dummy shell for the purpose of disabling accounts.
@c 
このバージョンの@command{false}は，Cプログラムとして実装されていて，そ
のため，シェルスクリプトの実装より安全かつ高速になり，アカウントの使用
を禁止する目的のダミーシェルとして使用しても安全でしょう．

@c Note that @command{false} (unlike all other programs documented herein)
@c exits unsuccessfully, even when invoked with
@c @option{--help} or @option{--version}.
@c 
@command{false}は，(ここで説明されている他のすべてのプログラムとは異な
り) @option{--help}や@option{--version}を用いて呼び出されても，失敗の
終了ステータスを返しすことに注意して下さい．


@node true invocation
@c @section @command{true}: Do nothing, successfully
@section @command{true}: 何もせず成功します

@pindex true
@cindex do nothing, successfully
@cindex no-op
@cindex successful exit
@cindex exit status of @command{true}

@c @command{true} does nothing except return an exit status of 0, meaning
@c @dfn{success}.  It can be used as a place holder in shell scripts
@c where a successful command is needed, although the shell built-in
@c command @code{:} (colon) may do the same thing faster.
@c In most modern shells, @command{true} is a built-in command, so when
@c you use @samp{true} in a script, you're probably using the built-in
@c command, not the one documented here.
@c 
@command{true}は，@dfn{成功(success)}を意味する0の終了ステータスを返す
以外何もしません．それは，シェルスクリプトの成功のコマンドが必要な位置
で使用することが可能ですが，シェル組み込みコマンド @code{:} (コロン)は
同じことをより高速に行います．最近のほとんどのシェルでは，
@command{true}が組み込みコマンドなので，スクリプトで@samp{true}を使用
するとき，おそらくここで説明しているものではなく組み込みコマンドを使用
することになります．

@c By default, @command{true} honors the @option{--help} and @option{--version}
@c options.  However, that is contrary to @acronym{POSIX}, so when the environment
@c variable @env{POSIXLY_CORRECT} is set, @command{true} ignores @emph{all}
@c command line arguments, including @option{--help} and @option{--version}.
@c 
デフォルトで，は@option{--help}と@option{--version}を尊重します．しか
し，それは@acronym{POSIX}に準拠していないので，環境変数
@env{POSIXLY_CORRECT}が設定されているとき，@command{true}は
@option{--help}と@option{--version}を含む，すべてのコマンドライン引数
を無視します．

@c Note, however, that it is possible to cause @command{true}
@c to exit with nonzero status: when invoked in non-@acronym{POSIX} mode,
@c with the @option{--help} or @option{--version} option, and with standard
@c output already closed or redirected to a file that evokes an I/O error.
@c For example, using a Bourne-compatible shell:
@c 
しかし，@command{true}にゼロ以外のステータスで終了させることも可能であ
ることに注意して下さい．非@acronym{POSIX}モードで呼び出され，
@option{--help}や@option{--version}オプションを用い，標準出力が閉じら
れている，またはI/Oエラーとなるファイルにリダイレクトするときがそうで
す．例えば，Bouene互換シェルでの使用例です．

@example
$ ./true --version >&-
./true: write error: Bad file number
$ ./true --version > /dev/full
./true: write error: No space left on device
@end example

@c This version of @command{true} is implemented as a C program, and is thus
@c more secure and faster than a shell script implementation, and may safely
@c be used as a dummy shell for the purpose of disabling accounts.
@c 
このバージョンの@command{true}は，Cプログラムとして実装されていて，そ
のため，シェルスクリプトの実装より安全かつ高速になり，アカウントの使用
を禁止する目的のダミーシェルとして使用しても安全でしょう．

@node test invocation
@c @section @command{test}: Check file types and compare values
@section @command{test}: ファイル形式の調査と値の比較

@pindex test
@cindex check file types
@cindex compare values
@cindex expression evaluation

@c @command{test} returns a status of 0 (true) or 1 (false) depending on the
@c evaluation of the conditional expression @var{expr}.  Each part of the
@c expression must be a separate argument.
@c 
条件式@var{expr}の評価に依存して，0(真)または1(偽)のステータスを返しま
す．式のそれぞれの部分は，分離された引数にする必要があります．

@c @command{test} has file status checks, string operators, and numeric
@c comparison operators.
@c 
@command{test}には，ファイルのステータスの調査，文字演算子，そして数字
比較の演算子があります．

@c @command{test} has an alternate form that uses opening and closing
@c square brackets instead a leading @samp{test}.  For example, instead
@c of @samp{test -d /}, you can write @samp{[ -d / ]}.  The square
@c brackets must be separate arguments; for example, @samp{[-d /]} does
@c not have the desired effect.  Since @samp{test @var{expr}} and @samp{[
@c @var{expr} ]} have the same meaning, only the former form is discussed
@c below.
@c 
@command{test}には，@samp{test}を前置する代わりに四角い開括弧，閉括弧
と使用する，もう一つの形式があります．例えば，@samp{test -d /}の代わり
に@samp{[ -d / ]}と書くことも可能です．四角い括弧は分離されている引数
にする必要があります．例えば，@samp{[-d /]}では期待した効果になりませ
ん． @samp{test @var{expr}}と@samp{[ @var{expr} ]}には同じ意味があるの
で，以下では前者の形式だけを議論していきます．

@cindex conflicts with shell built-ins
@cindex built-in shell commands, conflicts with
@c Because most shells have a built-in command by the same name, using the
@c unadorned command name in a script or interactively may get you
@c different functionality than that described here.
@c 
ほとんどのシェルには同じ名前の組み込みコマンドがあるため，スクリプト内
や対話的に簡素なコマンド名を使用すると，ここで記述するものと異なる機能
となる可能性があります．

@c Besides the options below, a single argument is also allowed:
@c @command{test} returns true if the argument is not null.  The argument
@c can be any string, including strings like @samp{-d}, @samp{-1},
@c @samp{--}, @samp{--help}, and @samp{--version} that most other
@c programs would treat as options.  To get help and version information,
@c invoke the commands @samp{[ --help} and @samp{[ --version}, without
@c the usual closing brackets.  @xref{Common options}.
@c 
以下のオプションの他に，単一の引数も可能です．引数が空でない場合，
@command{test}はtrueを返します．任意の文字列の引数が可能で，それらの文
字列には@samp{-d}，@samp{-1}，@samp{--}，@samp{--help}，そして
@samp{--version}といった，他のプログラムのほとんどがオプションとして処
理するものも含まれます．ヘルプやバージョン情報を取得するため，コマンド
@samp{[ --help}と@samp{[ --version}を，いつもの閉じ括弧を用いずに呼び
出して下さい．@xref{Common options}.

@cindex exit status of @command{test}
@c Exit status:
@c 
終了ステータスです．
@display
@c 0 if the expression is true,
@c 1 if the expression is false,
@c 2 if an error occurred.
@c 
0 式がtrueの場合．
1 式がfalseの場合．
2 エラーが生じた場合．
@end display

@menu
* File type tests::             -[bcdfhLpSt]
* Access permission tests::     -[gkruwxOG]
* File characteristic tests::   -e -s -nt -ot -ef
* String tests::                -z -n = !=
* Numeric tests::               -eq -ne -lt -le -gt -ge
* Connectives for test::        ! -a -o
@end menu


@node File type tests
@c @subsection File type tests
@subsection ファイル形式のテスト

@cindex file type tests

@c These options test for particular types of files.  (Everything's a file,
@c but not all files are the same!)
@c 
これらのオプションは，ファイルの特定の形式をテストします．(ファイルの
すべてですが，すべてのファイルが同じではありません！)

@table @samp

@item -b @var{file}
@opindex -b
@cindex block special check
@c True if @var{file} exists and is a block special device.
@c 
@var{file}が存在し，ブロックスペシャルデバイスの場合は真です．

@item -c @var{file}
@opindex -c
@cindex character special check
@c True if @var{file} exists and is a character special device.
@c 
@var{file}が存在し，キャラクタスペシャルデバイスの場合は真です．

@item -d @var{file}
@opindex -d
@cindex directory check
@c True if @var{file} exists and is a directory.
@c 
@var{file}が存在し，ディレクトリの場合は真です．

@item -f @var{file}
@opindex -f
@cindex regular file check
@c True if @var{file} exists and is a regular file.
@c 
@var{file}が存在し，通常のファイルの場合は真です．

@item -h @var{file}
@itemx -L @var{file}
@opindex -L
@opindex -h
@cindex symbolic link check
@c True if @var{file} exists and is a symbolic link.
@c 
@var{file}が存在し，シンボリックリンクの場合は真です．

@item -p @var{file}
@opindex -p
@cindex named pipe check
@c True if @var{file} exists and is a named pipe.
@c 
@var{file}が存在し，名前付きパイプの場合は真です．

@item -S @var{file}
@opindex -S
@cindex socket check
@c True if @var{file} exists and is a socket.
@c 
@var{file}が存在し，ソケットの場合は真です．

@item -t @var{fd}
@opindex -t
@cindex terminal check
@c True if @var{fd} is a file descriptor that is associated with a
@c terminal.
@c 
@var{fd}が端末に関連づけられているファイル記述子の場合は真です．

@end table


@node Access permission tests
@c @subsection Access permission tests
@subsection アクセス許可のテスト

@cindex access permission tests
@cindex permission tests

@c These options test for particular access permissions.
@c 
これらのオプションは，特定のアクセス許可をテストします．

@table @samp

@item -g @var{file}
@opindex -g
@cindex set-group-id check
@c True if @var{file} exists and has its set-group-id bit set.
@c 
@var{file}が存在し，そのセットグループidビットが設定されている場合は真
です．

@item -k @var{file}
@opindex -k
@cindex sticky bit check
@c True if @var{file} has its @dfn{sticky} bit set.
@c 
@var{file}が存在し，@dfn{スティッキー(sticky)}ビットが設定されている場
合は真です．

@item -r @var{file}
@opindex -r
@cindex readable file check
@c True if @var{file} exists and is readable.
@c 
@var{file}が存在し，読み込み可能な場合は真です．

@item -u @var{file}
@opindex -u
@cindex set-user-id check
@c True if @var{file} exists and has its set-user-id bit set.
@c 
@var{file}が存在し，セットユーザidビットが設定されている場合は真です．

@item -w @var{file}
@opindex -w
@cindex writable file check
@c True if @var{file} exists and is writable.
@c 
@var{file}が存在し，書き込み可能な場合は真です．

@item -x @var{file}
@opindex -x
@cindex executable file check
@c True if @var{file} exists and is executable.
@c 
@var{file}が存在し，実行可能な場合は真です．

@item -O @var{file}
@opindex -O
@cindex owned by effective uid check
@c True if @var{file} exists and is owned by the current effective user id.
@c 
@var{file}が存在し，現在実施中のユーザidに所有されている場合は真です．

@item -G @var{file}
@opindex -G
@cindex owned by effective gid check
@c True if @var{file} exists and is owned by the current effective group id.
@c 
@var{file}が存在し，現在実施中のグループidに所有されている場合は真です．

@end table

@node File characteristic tests
@c @subsection File characteristic tests
@subsection ファイルの特徴テスト

@cindex file characteristic tests

@c These options test other file characteristics.
@c 
これらのオプションはその他のファイルの特徴を調査します．

@table @samp

@item -e @var{file}
@opindex -e
@cindex existence-of-file check
@c True if @var{file} exists.
@c 
@var{file}が存在している場合は真です．

@item -s @var{file}
@opindex -s
@cindex nonempty file check
@c True if @var{file} exists and has a size greater than zero.
@c 
@var{file}が存在し，大きさがゼロより大きい場合は真です．

@item @var{file1} -nt @var{file2}
@opindex -nt
@cindex newer-than file check
@c True if @var{file1} is newer (according to modification date) than
@c @var{file2}, or if @var{file1} exists and @var{file2} does not.
@c 
@var{file1}が@var{file2}より(修正日で)新しい場合，または，@var{file1}
が存在し@var{file2}が存在しない場合は真です．

@item @var{file1} -ot @var{file2}
@opindex -ot
@cindex older-than file check
@c True if @var{file1} is older (according to modification date) than
@c @var{file2}, or if @var{file2} exists and @var{file1} does not.
@c 
@var{file1}が@var{file2}より(修正日で)古い場合，または，@var{file2}が
存在し@var{file1}が存在しない場合は真です．

@item @var{file1} -ef @var{file2}
@opindex -ef
@cindex same file check
@cindex hard link check
@c True if @var{file1} and @var{file2} have the same device and inode
@c numbers, i.e., if they are hard links to each other.
@c 
@var{file1}と@var{file2}が同じデバイスとi-node番号を持つ場合，すなわち，
それらがお互いにハードリンクの場合は真です．

@end table


@node String tests
@c @subsection String tests
@subsection 文字列のテスト

@cindex string tests

@c These options test string characteristics.  Strings are not quoted for
@c @command{test}, though you may need to quote them to protect characters
@c with special meaning to the shell, e.g., spaces.
@c 
これらのオプションは文字列の特徴をテストします．文字列は@command{test} 
に対して引用符で囲みませんが，例えばスペースのような，シェルで特別な意
味を持つ文字を保護するために，それらを引用符で囲む必要があるかもしれま
せん．

@table @samp

@item -z @var{string}
@opindex -z
@cindex zero-length string check
@c True if the length of @var{string} is zero.
@c 
@var{string}の長さがゼロの場合は真です．

@item -n @var{string}
@itemx @var{string}
@opindex -n
@cindex nonzero-length string check
@c True if the length of @var{string} is nonzero.
@c 
@var{string}の長さがゼロではないの場合は真です．

@item @var{string1} = @var{string2}
@opindex =
@cindex equal string check
@c True if the strings are equal.
@c 
文字列が等しい場合は真です．

@item @var{string1} != @var{string2}
@opindex !=
@cindex not-equal string check
@c True if the strings are not equal.
@c 
文字列が等しくない場合は真です．

@end table


@node Numeric tests
@c @subsection Numeric tests
@subsection 数値テスト

@cindex numeric tests
@cindex arithmetic tests

@c Numeric relationals.  The arguments must be entirely numeric (possibly
@c negative), or the special expression @w{@code{-l @var{string}}}, which
@c evaluates to the length of @var{string}.
@c 
数値の関係です．引数は，完全な数値(負も可能です)，または，@var{string}
の長さを評価する特別な式@w{@code{-l @var{string}}}にする必要があります．

@table @samp

@item @var{arg1} -eq @var{arg2}
@itemx @var{arg1} -ne @var{arg2}
@itemx @var{arg1} -lt @var{arg2}
@itemx @var{arg1} -le @var{arg2}
@itemx @var{arg1} -gt @var{arg2}
@itemx @var{arg1} -ge @var{arg2}
@opindex -eq
@opindex -ne
@opindex -lt
@opindex -le
@opindex -gt
@opindex -ge
@c These arithmetic binary operators return true if @var{arg1} is equal,
@c not-equal, less-than, less-than-or-equal, greater-than, or
@c greater-than-or-equal than @var{arg2}, respectively.
@c 
これらの算数の二項演算子は，それぞれ，@var{arg1}が@var{arg2}に比べて，
等しい，等しくない，小さい，以下，大きい，または以上の場合に真を返しま
す．

@end table

@c For example:
@c 
例えば以下のようにします．

@example
test -1 -gt -2 && echo yes
@result{} yes
test -l abc -gt 1 && echo yes
@result{} yes
test 0x100 -eq 1
@error{} test: integer expression expected before -eq
@end example


@node Connectives for test
@c @subsection Connectives for @command{test}
@subsection @command{test}の連結

@cindex logical connectives
@cindex connectives, logical

@c The usual logical connectives.
@c 
通常の論理結合子です．

@table @samp

@item ! @var{expr}
@opindex !
@c True if @var{expr} is false.
@c 
@var{expr}が偽の場合は真です．

@item @var{expr1} -a @var{expr2}
@opindex -a
@cindex logical and operator
@cindex and operator
@c True if both @var{expr1} and @var{expr2} are true.
@c 
@var{expr1}と@var{expr2}の両方が真の場合は真です．

@item @var{expr1} -o @var{expr2}
@opindex -o
@cindex logical or operator
@cindex or operator
@c True if either @var{expr1} or @var{expr2} is true.
@c 
@var{expr1}または@var{expr2}のどちらかが真の場合は真です．

@end table


@node expr invocation
@c @section @command{expr}: Evaluate expressions
@section @command{expr}: 式の評価

@pindex expr
@cindex expression evaluation
@cindex evaluation of expressions

@c @command{expr} evaluates an expression and writes the result on standard
@c output.  Each token of the expression must be a separate argument.
@c 
@command{expr}は式を評価し，結果を標準出力に書き出します．それぞれの式
のトークンは，分離している引数にする必要があります．

@c Operands are either integers or strings.  Integers consist of one or
@c more decimal digits, with an optional leading @samp{-}.
@c @command{expr} converts
@c anything appearing in an operand position to an integer or a string
@c depending on the operation being applied to it.
@c 
オペランドは整数または文字列のいずれかになります．整数は，一桁以上の十
進数と，追加で@samp{-}を前置したものから成り立ちます．@command{expr}は，
あらゆるものが，適用されているオペレーションに依存して，オペランドの位
置に存在する整数または文字列を変換します．

@c Strings are not quoted for @command{expr} itself, though you may need to
@c quote them to protect characters with special meaning to the shell,
@c e.g., spaces.  However, regardless of whether it is quoted, a string
@c operand should not be a parenthesis or any of @command{expr}'s
@c operators like @code{+}, so you cannot safely pass an arbitrary string
@c @code{$str} to expr merely by quoting it to the shell.  One way to
@c work around this is to use the @command{GNU} extension @code{+},
@c (e.g., @code{+ "$str" = foo}); a more portable way is to use
@c @code{@w{" $str"}} and to adjust the rest of the expression to take
@c the leading space into account (e.g., @code{@w{" $str" = " foo"}}).
@c 
文字列は@command{expr}対し引用符で囲みませんが，例えばスペースのような，
シェルで特別な意味を持つ文字を保護するために，それらを引用符で囲む必要
があるかもしれません．しかし，引用符で囲まれているかどうかに依存せず，
文字列オペランドは，括弧や@code{+}のような@command{expr}の演算子にすべ
きではなく，引用符で囲まれているものを評価するために，任意の文字列を
@code{$str}をシェルに渡すことは安全ではありません．これを排比する方法
の一つは，@command{GNU}の拡張@code{+} (例えば@code{+ "$str" = foo})で
す．より移植性の高い方法は，@code{@w{" $str"}}を使用し，前置するスペー
スを数に入れるため式の結果を調整することです(例えば@code{@w{" $str" =
" foo"}})．

@c You should not pass a negative integer or a string with leading
@c @samp{-} as @command{expr}'s first argument, as it might be
@c misinterpreted as an option; this can be avoided by parenthesization.
@c Also, portable scripts should not use a string operand that happens to
@c take the form of an integer; this can be worked around by inserting
@c leading spaces as mentioned above.
@c 
オプションとして間違って解釈される可能性があるので，符の整数や前に
@samp{-}が付く文字列を@command{expr}の最初の引数として渡すべきではあり
ません．これは，括弧で避けることが可能です．また，移植性の高いスクリプ
トでは，整数の形式となりうる文字列演算子を使用すべきではありません．こ
れは，上記のスペースを前置する方法で回避可能です．

@cindex parentheses for grouping
@c Operators may be given as infix symbols or prefix keywords.  Parentheses
@c may be used for grouping in the usual manner.  You must quote
@c parentheses and many operators to avoid the shell evaluating them,
@c however.
@c 
演算子は，挿入辞シンボルや前置キーワードとして与えることができます．カッ
コは，通常の方法のグループとして使用してもかまいません．しかし，シェル
が評価することを避けるために，カッコと多くのオペレータを引用符で囲む必
要があります．

@cindex exit status of @command{expr}
@c Exit status:
@c 
終了ステータスは，以下のようになります．

@display
@c 0 if the expression is neither null nor 0,
@c 1 if the expression is null or 0,
@c 2 if the expression is syntactically invalid,
@c 3 if an error occurred.
@c 
0 式がnullでも0でもない場合．
1 式がnullまたは0の場合．
2 式が構文上有効な場合．
3 エラーが生じた場合．
@end display

@menu
* String expressions::          + : match substr index length
* Numeric expressions::         + - * / %
* Relations for expr::          | & < <= = == != >= >
* Examples of expr::            Examples.
@end menu


@node String expressions
@c @subsection String expressions
@subsection 文字列式

@cindex string expressions
@cindex expressions, string

@c @command{expr} supports pattern matching and other string operators.  These
@c have lower precedence than both the numeric and relational operators (in
@c the next sections).
@c 
@command{expr}は，パターンマッチングと，その他の文字列演算子をサポート
します．これらは，(次のセクションの)数字と関係の両演算子より低い優先順
位になります．

@table @samp

@item @var{string} : @var{regex}
@cindex pattern matching
@cindex regular expression matching
@cindex matching patterns
@c Perform pattern matching.  The arguments are converted to strings and the
@c second is considered to be a (basic, a la GNU @code{grep}) regular
@c expression, with a @code{^} implicitly prepended.  The first argument is
@c then matched against this regular expression.
@c 
パターンマッチングを実行します．引数は文字列に制限され，二番目は，
@code{^}が暗黙に前置された(基本的にGNU流の@command{grep}の)正規表現と
考えられます．最初の引数は，この正規表現に対しマッチの評価がなされます．

@c If the match succeeds and @var{regex} uses @samp{\(} and @samp{\)}, the
@c @code{:} expression returns the part of @var{string} that matched the
@c subexpression; otherwise, it returns the number of characters matched.
@c 
マッチの評価が成功し，@var{regex}が@samp{\(}と@samp{\)}を使用している
場合，@code{:}式は，サブ式にマッチした@var{string}の一部となります．そ
れ以外の場合はマッチした文字の数を返します．

@c If the match fails, the @code{:} operator returns the null string if
@c @samp{\(} and @samp{\)} are used in @var{regex}, otherwise 0.
@c 
マッチの評価に失敗した場合，@var{regex}で@samp{\(}と@samp{\)}が使用さ
れていれば@code{:}演算子はnull文字を返し，それ以外では0を返します．

@kindex \( @r{regexp operator}
@c Only the first @samp{\( @dots{} \)} pair is relevant to the return
@c value; additional pairs are meaningful only for grouping the regular
@c expression operators.
@c 
最初の@samp{\( @dots{} \)}の組のみ，戻り値に関係します．追加の組は，正
規表現演算子のグループ化の意味しかありません．

@kindex \+ @r{regexp operator}
@kindex \? @r{regexp operator}
@kindex \| @r{regexp operator}
@c In the regular expression, @code{\+}, @code{\?}, and @code{\|} are
@c operators which respectively match one or more, zero or one, or separate
@c alternatives.  SunOS and other @command{expr}'s treat these as regular
@c characters.  (@acronym{POSIX} allows either behavior.)
@c @xref{Top, , Regular Expression Library, regex, Regex}, for details of
@c regular expression syntax.  Some examples are in @ref{Examples of expr}.
@c 
正規表現内では，@code{\+}，@code{\?}，そして@code{\|}は，それぞれ，1以
上，ゼロ以上，オア分離の選択肢の演算子です．SunOSとその他の
@command{expr}はこれらを通常の文字として扱います．(@acronym{POSIX}は，
どちらの動作も許可します．) 正規表現の構文の詳細は，@xref{Top, ,
Regular Expression Library, regex, Regex}.  例は@ref{Examples of expr} 
にあります．

@item match @var{string} @var{regex}
@findex match
@c An alternative way to do pattern matching.  This is the same as
@c @w{@samp{@var{string} : @var{regex}}}.
@c 
パターンマッチングを行う別の方法です．これは，@w{@samp{@var{string} :
@var{regex}}}と同じです．

@item substr @var{string} @var{position} @var{length}
@findex substr
@c Returns the substring of @var{string} beginning at @var{position}
@c with length at most @var{length}.  If either @var{position} or
@c @var{length} is negative, zero, or non-numeric, returns the null string.
@c 
少なくとも@var{length}の長さの，@var{position}から始まる，@var{string}
のサブ文字列を返します．@var{position}または@var{length}のどちらかが，
負，ゼロ，または数字以外の場合，null文字列を返します．

@item index @var{string} @var{charset}
@findex index
@c Returns the first position in @var{string} where the first character in
@c @var{charset} was found.  If no character in @var{charset} is found in
@c @var{string}, return 0.
@c 
@var{charset}の最初の文字が見つかった，@var{string}の最初の位置を返し
ます．@var{charset}の文字が@var{string}で見つからない場合は，0を返しま
す．

@item length @var{string}
@findex length
@c Returns the length of @var{string}.
@c 
@var{string}の長さを返します．

@item + @var{token}
@kindex +
@c Interpret @var{token} as a string, even if it is a keyword like @var{match}
@c or an operator like @code{/}.
@c This makes it possible to test @code{expr length + "$x"} or
@c @code{expr + "$x" : '.*/\(.\)'} and have it do the right thing even if
@c the value of @var{$x} happens to be (for example) @code{/} or @code{index}.
@c This operator is a GNU extension.  Portable shell scripts should use
@c @code{@w{" $token"} : @w{' \(.*\)'}} instead of @code{+ "$token"}.
@c 
キーワードのような@var{match}や，演算子のような@code{/}の場合でも，
@var{token}を文字列として解釈します．これで，@code{expr length + "$x"} 
や@code{expr + "$x" : '.*/\(.\)'}のテストが可能となり，@var{$x}の値が
(例えば)@code{/}や@code{index}に偶然なった場合でも，正しく動作します．
この演算子はGNUの拡張です．移植性の高いシェルスクリプトでは，@code{+
"$token"}の代わりに@code{@w{" $token"} : @w{' \(.*\)'}}を使用すべきで
す．

@end table

@c To make @command{expr} interpret keywords as strings, you must use the
@c @code{quote} operator.
@c 
@command{expr}にキーワードとして文字列を解釈させるために，@code{quote}
演算子を使用する必要があります．


@node Numeric expressions
@c @subsection Numeric expressions
@subsection 数式

@cindex numeric expressions
@cindex expressions, numeric

@c @command{expr} supports the usual numeric operators, in order of increasing
@c precedence.  The string operators (previous section) have lower precedence,
@c the connectives (next section) have higher.
@c 
@command{expr}は，通常の算術演算子をサポートし，優先順位は順に増加しま
す．(前のセクションの)文字列演算子は，より順位の低い演算子で，(次のセ
クションの)連結子は，より順位が高くなります．

@table @samp

@item + -
@kindex +
@kindex -
@cindex addition
@cindex subtraction
@c Addition and subtraction.  Both arguments are converted to integers;
@c an error occurs if this cannot be done.
@c 
加算と減算です．どちらの引数も整数に変換されます．そうでない場合はエラー
を生じます．

@item * / %
@kindex *
@kindex /
@kindex %
@cindex multiplication
@cindex division
@cindex remainder
@c Multiplication, division, remainder.  Both arguments are converted to
@c integers; an error occurs if this cannot be done.
@c 
乗算，除算，剰余です．どちらの引数も整数に変換されます．そうでない場合
はエラーを生じます．

@end table


@node Relations for expr
@c @subsection Relations for @command{expr}
@subsection @command{expr}の関係式

@cindex connectives, logical
@cindex logical connectives
@cindex relations, numeric or string

@c @command{expr} supports the usual logical connectives and relations.  These
@c are higher precedence than either the string or numeric operators
@c (previous sections).  Here is the list, lowest-precedence operator first.
@c 
@command{expr}は，通常の論理結合と関係式をサポートします．これらは(前
のセクションの)文字や数字の演算子より優先順位が高くなっています．ここ
に，低い優先順位を最初にしたリストがあります．

@table @samp

@item |
@kindex |
@cindex logical or operator
@cindex or operator
@c Returns its first argument if that is neither null nor zero, otherwise
@c its second argument if it is neither null nor zero, otherwise 0.  It
@c does not evaluate its second argument if its first argument is neither
@c null nor zero.
@c 
最初の引数がnullでもゼロでもない場合はそれを，それ以外では，二番目の引
数がnullでもゼロでもない場合はそれを，それ以外では0を返します．最初の
引数がnullでもゼロでもない場合，二番目の引数と同じにはなりません．

@item &
@kindex &
@cindex logical and operator
@cindex and operator
@c Return its first argument if neither argument is null or zero, otherwise
@c 0.  It does not evaluate its second argument if its first argument is
@c null or zero.
@c 
どちらの引数もnullやゼロでない場合は最初の引数を，それ以外では0を返し
ます．最初の引数がnullでもゼロでもない場合，二番目の引数と同じにはなり
ません．

@item < <= = == != >= >
@kindex <
@kindex <=
@kindex =
@kindex ==
@kindex >
@kindex >=
@cindex comparison operators
@vindex LC_COLLATE
@c Compare the arguments and return 1 if the relation is true, 0 otherwise.
@c @code{==} is a synonym for @code{=}.  @command{expr} first tries to convert
@c both arguments to integers and do a numeric comparison; if either
@c conversion fails, it does a lexicographic comparison using the character
@c collating sequence specified by the @env{LC_COLLATE} locale.
@c 
引数を比較し，関係が真の場合は1を，それ以外では0を返します．@code{==} 
は@code{=}の同義語です．@command{expr}は最初に，両方の引数を整数に変換
しようとし，数値の比較を行います．どちらかの変換が失敗した場合，
@env{LC_COLLATE}で指定されている文字の対応表の順序を使用して，辞書的な
比較を行います．

@end table


@node Examples of expr
@c @subsection Examples of using @command{expr}
@subsection @command{expr}の使用例

@cindex examples of @command{expr}
@c Here are a few examples, including quoting for shell metacharacters.
@c 
シェルのメタ文字を引用符で囲むものを含む例として以下のようなものがあり
ます．

@c To add 1 to the shell variable @code{foo}, in Bourne-compatible shells:
@c 
Bourne互換シェルで，シェル変数@code{foo}に1を加えます．
@example
foo=`expr $foo + 1`
@end example

@c To print the non-directory part of the file name stored in
@c @code{$fname}, which need not contain a @code{/}.
@c 
@code{$fname}に保存されているファイル名のディレクトリ以外の部分を，
@code{/}を含めずに出力します．
@example
expr $fname : '.*/\(.*\)' '|' $fname
@end example

@c An example showing that @code{\+} is an operator:
@c 
@code{\+}が演算子だということを表示する例です．
@example
expr aaa : 'a\+'
@result{} 3
@end example

@example
expr abc : 'a\(.\)c'
@result{} b
expr index abcdef cz
@result{} 3
expr index index a
@error{} expr: syntax error
expr index quote index a
@result{} 0
@end example


@node Redirection
@c @chapter Redirection
@chapter リダイレクション

@cindex redirection
@cindex commands for redirection

@c Unix shells commonly provide several forms of @dfn{redirection}---ways
@c to change the input source or output destination of a command.  But one
@c useful redirection is performed by a separate command, not by the shell;
@c it's described here.
@c 
Unixシェルは，通常いくつかの形式の@dfn{リダイレクション(redirection)} 
を提供します --- コマンドの入力元や出力先を変更する方法です．しかし，
一つの便利なリダイレクションでは，シェルではなく，別々のコマンドで実行
されます．以下ではそれを記述します．

@menu
* tee invocation::              Redirect output to multiple files.
@end menu


@node tee invocation
@c @section @command{tee}: Redirect output to multiple files
@section @command{tee}: 出力を複数のファイルにリダイレクトする

@pindex tee
@cindex pipe fitting
@cindex destinations, multiple output
@cindex read from stdin and write to stdout and files

@c The @command{tee} command copies standard input to standard output and also
@c to any files given as arguments.  This is useful when you want not only
@c to send some data down a pipe, but also to save a copy.  Synopsis:
@c 
@command{tee}コマンドは，標準入力を標準出力と引数で与えられた任意のファ
イルにコピーします．これは，データをパイプに送るだけでなく，コピーを保
存したいときに役に立ちます．概要です．

@example
tee [@var{option}]@dots{} [@var{file}]@dots{}
@end example

@c If a file being written to does not already exist, it is created.  If a
@c file being written to already exists, the data it previously contained
@c is overwritten unless the @option{-a} option is used.
@c 
存在しないファイルに書き出す場合，ファイルが作成されます．既存のファイ
ルに書き出す場合，前から含まれているデータは，@option{-a}オプションが
使用されない場合は上書きされます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp
@item -a
@itemx --append
@opindex -a
@opindex --append
@c Append standard input to the given files rather than overwriting
@c them.
@c 
標準入力を与えられたファイルに，上書きせずに追加します．

@item -i
@itemx --ignore-interrupts
@opindex -i
@opindex --ignore-interrupts
@c Ignore interrupt signals.
@c 
中断シグナルを無視します．

@end table

@exitstatus


@node File name manipulation
@c @chapter File name manipulation
@chapter ファイル名の操作

@cindex file name manipulation
@cindex manipulation of file names
@cindex commands for file name manipulation

@c This section describes commands that manipulate file names.
@c 
このセクションはファイル名を操作するコマンドを記述します．

@menu
* basename invocation::         Strip directory and suffix from a file name.
* dirname invocation::          Strip non-directory suffix from a file name.
* pathchk invocation::          Check file name portability.
@end menu


@node basename invocation
@c @section @command{basename}: Strip directory and suffix from a file name
@section @command{basename}: ディレクトリと接尾子をファイル名から除去

@pindex basename
@cindex strip directory and suffix from file names
@cindex directory, stripping from file names
@cindex suffix, stripping from file names
@cindex file names, stripping directory and suffix
@cindex leading directory components, stripping

@c @command{basename} removes any leading directory components from
@c @var{name}.  Synopsis:
@c 
@command{basename}は，前置されるディレクトリ要素を@var{name}から削除し
ます．概要です．

@example
basename @var{name} [@var{suffix}]
@end example

@c If @var{suffix} is specified and is identical to the end of @var{name},
@c it is removed from @var{name} as well.  @command{basename} prints the
@c result on standard output.
@c 
@var{suffix}が指定され，@var{name}の終りが同じ場合，それは@var{name}か
ら同様に削除されます．@command{basename}は結果を標準出力に出力します．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}だけです．@xref{Common
options}.

@exitstatus


@node dirname invocation
@c @section @command{dirname}: Strip non-directory suffix from a file name
@section @command{dirname}: ディレクトリ以外の接尾子をファイル名から除去

@pindex dirname
@cindex directory components, printing
@cindex stripping non-directory suffix
@cindex non-directory suffix, stripping

@c @command{dirname} prints all but the final slash-delimited component of
@c a string (presumably a filename).  Synopsis:
@c 
@command{dirname}は，最後のスラッシュで分離されている(おそらくファイル
名となる)文字列の内容以外をすべて出力します．概要です．

@example
dirname @var{name}
@end example

@c If @var{name} is a single component, @command{dirname} prints @samp{.}
@c (meaning the current directory).
@c 
@var{name}は単一の要素で，@command{dirname}は(現在のディレクトリを意味
する) @samp{.}を表示します．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}だけです．@xref{Common
options}.

@exitstatus


@node pathchk invocation
@c @section @command{pathchk}: Check file name portability
@section @command{pathchk}: ファイル名の移植性を調査

@pindex pathchk
@cindex file names, checking validity and portability
@cindex valid file names, checking for
@cindex portable file names, checking for

@c @command{pathchk} checks portability of filenames.  Synopsis:
@c 
@command{pathchk}は，ファイル名の移植性を調査します．概要です．

@example
pathchk [@var{option}]@dots{} @var{name}@dots{}
@end example

@c For each @var{name}, @command{pathchk} prints a message if any of
@c these conditions is true:
@c 
それぞれの@var{name}に対し，@command{pathchk}はこれらの条件が真かどう
かのメッセージを出力します．
@enumerate
@item
@c one of the existing directories in @var{name} does not have search
@c (execute) permission,
@c 
@var{name}に存在するディレクトリの一つが検索(実行)許可を持たない．
@item
@c the length of @var{name} is larger than its filesystem's maximum
@c file name length,
@c 
@var{name}の長さが，ファイルシステムのファイル名の長さの最大より長い．
@item
@c the length of one component of @var{name}, corresponding to an
@c existing directory name, is larger than its filesystem's maximum
@c length for a file name component.
@c 
既存のディレクトリ名にマッチする@var{name}の一つの要素の長さが，ファイ
ルシステムのファイル名の要素の長さの最大より長い．
@end enumerate

@c The program accepts the following option.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -p
@itemx --portability
@opindex -p
@opindex --portability
@c Instead of performing length checks on the underlying filesystem,
@c test the length of each file name and its components against the
@c @acronym{POSIX} minimum limits for portability.  Also check that the file
@c name contains no characters not in the portable file name character set.
@c 
根底にあるファイルシステムの長さ調査を実行する代わりに，
@acronym{POSIX}の移植性のための最小制限に対し，それぞれのファイル名と
その要素の長さをテストします．ファイル名に，移植性のあるファイル名文字
セットに無い文字が含まれていないことも調査します．

@end table

@cindex exit status of @command{pathchk}
@c Exit status:
@c 
終了ステータス．

@display
@c 0 if all specified file names passed all of the tests,
@c 1 otherwise.
@c 
0 すべての指定されたファイル名が，すべてのテストを通過した場合．
1 それ以外．
@end display


@node Working context
@c @chapter Working context
@chapter 作業の状況

@cindex working context
@cindex commands for printing the working context

@c This section describes commands that display or alter the context in
@c which you are working: the current directory, the terminal settings, and
@c so forth.  See also the user-related commands in the next section.
@c 
このセクションは，作業している状況を表示または変更するコマンドを記述し
ます．現在のディレクトリ，端末設定，その他です．次のセクションのユーザ
関連のコマンドも参照してください．

@menu
* pwd invocation::              Print working directory.
* stty invocation::             Print or change terminal characteristics.
* printenv invocation::         Print environment variables.
* tty invocation::              Print file name of terminal on standard input.
@end menu


@node pwd invocation
@c @section @command{pwd}: Print working directory
@section @command{pwd}: 作業中のディレクトリを表示

@pindex pwd
@cindex print name of current directory
@cindex current working directory, printing
@cindex working directory, printing

@cindex symbolic links and @command{pwd}
@c @command{pwd} prints the fully resolved name of the current directory.
@c That is, all components of the printed name will be actual directory
@c names---none will be symbolic links.
@c 
@command{pwd}は，現在のディレクトリの完全に解決された名前を出力します．
すなわち，出力される名前のすべての要素は，実際のディレクトリ名です --- 
シンボリックリンクではありません．

@cindex conflicts with shell built-ins
@cindex built-in shell commands, conflicts with
@c Because most shells have a built-in command by the same name, using the
@c unadorned command name in a script or interactively may get you
@c different functionality than that described here.
@c 
ほとんどのシェルには同じ名前の組み込みコマンドがあるので，装飾なしのス
クリプト内や対話的なコマンド名を用いると，ここで記述しているものとは異
なる機能になる可能性があります．

@c The only options are a lone @option{--help} or
@c @option{--version}.  @xref{Common options}.
@c 
オプションは単独の@option{--help}と@option{--version}だけです．
@xref{Common options}.
@exitstatus


@node stty invocation
@c @section @command{stty}: Print or change terminal characteristics
@section @command{stty}: 端末の特徴を表示または変更

@pindex stty
@cindex change or print terminal settings
@cindex terminal settings
@cindex line settings of terminal

@c @command{stty} prints or changes terminal characteristics, such as baud rate.
@c Synopses:
@c 
@command{stty}は，ボーレートのような，端末の特徴を表示または変更します．
概要です．

@example
stty [@var{option}] [@var{setting}]@dots{}
stty [@var{option}]
@end example

@c If given no line settings, @command{stty} prints the baud rate, line
@c discipline number (on systems that support it), and line settings
@c that have been changed from the values set by @samp{stty sane}.
@c By default, mode reading and setting are performed on the tty line
@c connected to standard input, although this can be modified by the
@c @option{--file} option.
@c 
設定行がない場合，@command{stty}は，ボーレート，(システムがサポートす
る)回線制御数，そして@samp{stty sane}で設定された値から変更された回線
設定を表示します．デフォルトで，モードの読み込みと設定は標準入力に接続
されているtty回線で実行されますが，これは@option{--file}オプションで修
正することが可能です．

@c @command{stty} accepts many non-option arguments that change aspects of
@c the terminal line operation, as described below.
@c 
@command{stty}は，端末回線処理の状況を変更する，以下で記述するようなオ
プションではない多くの引数を受け入れます．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp
@item -a
@itemx --all
@opindex -a
@opindex --all
@c Print all current settings in human-readable form.  This option may not
@c be used in combination with any line settings.
@c 
すべての現在の設定を人間が読める形式で出力します．このオプションは，あ
らゆる回線設定と組み合わせて使用することはできません．

@item -F @var{device}
@itemx --file=@var{device}
@opindex -F
@opindex --file
@c Set the line opened by the filename specified in @var{device} instead of
@c the tty line connected to standard input.  This option is necessary
@c because opening a @acronym{POSIX} tty requires use of the @code{O_NONDELAY} flag to
@c prevent a @acronym{POSIX} tty from blocking until the carrier detect line is high if
@c the @code{clocal} flag is not set.  Hence, it is not always possible
@c to allow the shell to open the device in the traditional manner.
@c 
標準入力に接続しているtty回線の代わりに，@var{device}で指定されている
ファイル名で開かれた回線を設定します．このオプションは，@code{clocal} 
が設定されていない場合，キャリア検出回線が高速ではないので，
@acronym{POSIX} ttyのブロッキングを避けるために，@code{O_NONDELAY}フラ
グの使用を要求する@acronym{POSIX} ttyを開くために必要です．そのため，
従来の方法でシェルがデバイスを開くことが，常に可能なわけではありません．

@item -g
@itemx --save
@opindex -g
@opindex --save
@cindex machine-readable @command{stty} output
@c Print all current settings in a form that can be used as an argument to
@c another @command{stty} command to restore the current settings.  This option
@c may not be used in combination with any line settings.
@c 
他の@command{stty}コマンドが現在の設定を復元するための引数として使用可
能な形式で，すべての現在の設定を表示します．このオプションは，あらゆる
回線設定と組み合わせて使用することはできません．

@end table

@c Many settings can be turned off by preceding them with a @samp{-}.
@c Such arguments are marked below with ``May be negated'' in their
@c description.  The descriptions themselves refer to the positive
@c case, that is, when @emph{not} negated (unless stated otherwise,
@c of course).
@c 
多くの設定は，前置される@samp{-}で停止することが可能です．そのような引
数は，それら記述で``取り消し可能''として以下では印がついています．記述
自身は，肯定の場合を述べていて，すなわち，(もちろん，明言されていなけ
れば)取り消しでは@emph{ありません}．

@c Some settings are not available on all @acronym{POSIX} systems, since they use
@c extensions.  Such arguments are marked below with ``Non-@acronym{POSIX}'' in their
@c description.  On non-@acronym{POSIX} systems, those or other settings also may not
@c be available, but it's not feasible to document all the variations: just
@c try it and see.
@c 
設定には，拡張を使用しているため，すべての@acronym{POSIX}システムで利
用可能ではないものもあります．そのような引数はその記述で``非
@acronym{POSIX}''という印がついています．非@acronym{POSIX}システムでは，
これらやその他の設定も利用可能ではありませんが，すべてのバリエーション
を説明するのは実行不可能です．まずは，試してみてください．

@exitstatus

@menu
* Control::                     Control settings
* Input::                       Input settings
* Output::                      Output settings
* Local::                       Local settings
* Combination::                 Combination settings
* Characters::                  Special characters
* Special::                     Special settings
@end menu


@node Control
@c @subsection Control settings
@subsection 制御設定

@cindex control settings
@c Control settings:
@c 
制御設定です．

@table @samp
@item parenb
@opindex parenb
@cindex two-way parity
@c Generate parity bit in output and expect parity bit in input.
@c May be negated.
@c 
出力の一般的なパリティビットと，入力の期待するパリティビットです．取り
消し可能です．

@item parodd
@opindex parodd
@cindex odd parity
@cindex even parity
@c Set odd parity (even if negated).  May be negated.
@c 
(取り消す場合も)偶パリティです．取り消し可能です．

@item cs5
@itemx cs6
@itemx cs7
@itemx cs8
@opindex cs@var{n}
@cindex character size
@cindex eight-bit characters
@c Set character size to 5, 6, 7, or 8 bits.
@c 
文字サイズを5，6，7，または8ビットに設定します．

@item hup
@itemx hupcl
@opindex hup[cl]
@c Send a hangup signal when the last process closes the tty.  May be
@c negated.
@c 
最後の処理がttyを閉じるとき，ハングアップシグナルを送ります．取り消し
可能です．

@item cstopb
@opindex cstopb
@cindex stop bits
@c Use two stop bits per character (one if negated).  May be negated.
@c 
二つのストップビット(取消しの場合は一つ)を使用します．取り消し可能です．

@item cread
@opindex cread
@c Allow input to be received.  May be negated.
@c 
入力の受信を許可します．取り消し可能です．

@item clocal
@opindex clocal
@cindex modem control
@c Disable modem control signals.  May be negated.
@c 
モデム制御シグナルを利用不可能にします．取り消し可能です．

@item crtscts
@opindex crtscts
@cindex hardware flow control
@cindex flow control, hardware
@cindex RTS/CTS flow control
@c Enable RTS/CTS flow control.  Non-@acronym{POSIX}.  May be negated.
@c 
RTS/CTSフロー制御を利用可能にします．非@acronym{POSIX}です．取り消し可
能です．
@end table


@node Input
@c @subsection Input settings
@subsection 入力設定

@cindex input settings

@table @samp
@item ignbrk
@opindex ignbrk
@cindex breaks, ignoring
@c Ignore break characters.  May be negated.
@c 
ブレーク文字を無視します．取り消し可能です．

@item brkint
@opindex brkint
@cindex breaks, cause interrupts
@c Make breaks cause an interrupt signal.  May be negated.
@c 
ブレークを中断シグナルにします．取り消し可能です．

@item ignpar
@opindex ignpar
@cindex parity, ignoring
@c Ignore characters with parity errors.  May be negated.
@c 
パリティエラーの文字を無視します．取り消し可能です．

@item parmrk
@opindex parmrk
@cindex parity errors, marking
@c Mark parity errors (with a 255-0-character sequence).  May be negated.
@c 
(255-0の文字の順に)パリティーエラーに印を付けます．取り消し可能です．

@item inpck
@opindex inpck
@c Enable input parity checking.  May be negated.
@c 
入力パリティチェックを可能にします．取り消し可能です．

@item istrip
@opindex istrip
@cindex eight-bit input
@c Clear high (8th) bit of input characters.  May be negated.
@c 
入力文字のハイビット(八番目)をクリアします．取り消し可能です．

@item inlcr
@opindex inlcr
@cindex newline, translating to return
@c Translate newline to carriage return.  May be negated.
@c 
ニューラインをキャリッジリターンに変換します．取り消し可能です．

@item igncr
@opindex igncr
@cindex return, ignoring
@c Ignore carriage return.  May be negated.
@c 
キャリッジリターンを無視します．取り消し可能です．

@item icrnl
@opindex icrnl
@cindex return, translating to newline
@c Translate carriage return to newline.  May be negated.
@c 
キャリッジリターンをニューラインに変換します．取り消し可能です．

@item ixon
@opindex ixon
@kindex C-s/C-q flow control
@cindex XON/XOFF flow control
@c Enable XON/XOFF flow control (that is, @kbd{CTRL-S}/@kbd{CTRL-Q}).  May
@c be negated.
@c 
XON/XOFFフロー制御(すなわち，@kbd{CTRL-S}/@kbd{CTRL-Q})を可能にします．
取り消し可能です．

@item ixoff
@itemx tandem
@opindex ixoff
@opindex tandem
@cindex software flow control
@cindex flow control, software
@c Enable sending of @code{stop} character when the system input buffer
@c is almost full, and @code{start} character when it becomes almost
@c empty again.  May be negated.
@c 
システム入力バッファがほぼいっぱいのときの@code{stop}文字と，再びほと
んど空になったときの@code{start}文字の送信を可能にします．取り消し可能
です．

@item iuclc
@opindex iuclc
@cindex uppercase, translating to lowercase
@c Translate uppercase characters to lowercase.  Non-@acronym{POSIX}.  May be
@c negated.
@c 
大文字を小文字に変換します．非@acronym{POSIX}です．取り消し可能です．

@item ixany
@opindex ixany
@c Allow any character to restart output (only the start character
@c if negated).  Non-@acronym{POSIX}.  May be negated.
@c 
あらゆる文字の出力の再開を許可します(取消しの場合は開始文字のみです)．
非@acronym{POSIX}です．取り消し可能です．

@item imaxbel
@opindex imaxbel
@cindex beeping at input buffer full
@c Enable beeping and not flushing input buffer if a character arrives
@c when the input buffer is full.  Non-@acronym{POSIX}.  May be negated.
@c 
入力バッファがいっぱいになったときに文字が届いた場合，ビープを鳴し，入
力バッファをフラッシュしないことを可能にします．非@acronym{POSIX}です．
取り消し可能です．
@end table


@node Output
@c @subsection Output settings
@subsection 出力設定

@cindex output settings
@c These arguments specify output-related operations.
@c 
以下の引数は出力に関連する処理です．

@table @samp
@item opost
@opindex opost
@c Postprocess output.  May be negated.
@c 
出力を後処理します．取り消し可能です．

@item olcuc
@opindex olcuc
@cindex lowercase, translating to output
@c Translate lowercase characters to uppercase.  Non-@acronym{POSIX}.  May be
@c negated.
@c 
小文字を大文字に変換します．非@acronym{POSIX}です．取り消し可能です．

@item ocrnl
@opindex ocrnl
@cindex return, translating to newline
@c Translate carriage return to newline.  Non-@acronym{POSIX}.  May be negated.
@c 
キャリッジリターンをニューラインに変換します．非@acronym{POSIX}です．
取り消し可能です．

@item onlcr
@opindex onlcr
@cindex newline, translating to crlf
@c Translate newline to carriage return-newline.  Non-@acronym{POSIX}.  May be
@c negated.
@c 
ニューラインをキャリッジリターンに変換します．非@acronym{POSIX}です．
取り消し可能です．

@item onocr
@opindex onocr
@c Do not print carriage returns in the first column.  Non-@acronym{POSIX}.
@c May be negated.
@c 
最初の列のキャリッジリターンを出力しません．非@acronym{POSIX}です．取
り消し可能です．

@item onlret
@opindex onlret
@c Newline performs a carriage return.  Non-@acronym{POSIX}.  May be negated.
@c 
ニューラインがキャリッジリターンを実行します．非@acronym{POSIX}です．
取り消し可能です．

@item ofill
@opindex ofill
@cindex pad instead of timing for delaying
@c Use fill (padding) characters instead of timing for delays.  Non-@acronym{POSIX}.
@c May be negated.
@c 
遅延に対する時間調整の代わりに，文字の補充(パディング)を使用します．非
@acronym{POSIX}です．取り消し可能です．

@item ofdel
@opindex ofdel
@cindex pad character
@c Use delete characters for fill instead of null characters.  Non-@acronym{POSIX}.
@c May be negated.
@c 
補充に対し，null文字の代わりにデリート文字を使用します．非
@acronym{POSIX}です．取り消し可能です．

@item nl1
@itemx nl0
@opindex nl@var{n}
@c Newline delay style.  Non-@acronym{POSIX}.
@c 
ニューラインの遅延形式です．非@acronym{POSIX}です．

@item cr3
@itemx cr2
@itemx cr1
@itemx cr0
@opindex cr@var{n}
@c Carriage return delay style.  Non-@acronym{POSIX}.
@c 
キャリッジリターンの遅延形式です．非@acronym{POSIX}です．

@item tab3
@itemx tab2
@itemx tab1
@itemx tab0
@opindex tab@var{n}
@c Horizontal tab delay style.  Non-@acronym{POSIX}.
@c 
水平タブの遅延形式です．非@acronym{POSIX}です．

@item bs1
@itemx bs0
@opindex bs@var{n}
@c Backspace delay style.  Non-@acronym{POSIX}.
@c 
バックスペースの遅延形式です．非@acronym{POSIX}です．

@item vt1
@itemx vt0
@opindex vt@var{n}
@c Vertical tab delay style.  Non-@acronym{POSIX}.
@c 
垂直タブの遅延形式です．非@acronym{POSIX}です．

@item ff1
@itemx ff0
@opindex ff@var{n}
@c Form feed delay style.  Non-@acronym{POSIX}.
@c 
フォームフィードの遅延形式です．非@acronym{POSIX}です．
@end table


@node Local
@c @subsection Local settings
@subsection ローカル設定

@cindex local settings

@table @samp
@item isig
@opindex isig
@c Enable @code{interrupt}, @code{quit}, and @code{suspend} special
@c characters.  May be negated.
@c 
@code{interrupt}， @code{quit}，そして@code{suspend}特殊文字を可能にし
ます．取り消し可能です．

@item icanon
@opindex icanon
@c Enable @code{erase}, @code{kill}, @code{werase}, and @code{rprnt}
@c special characters.  May be negated.
@c 
@code{erase}，@code{kill}，@code{werase}，そして@code{rprnt}特殊文字を
可能にします．取り消し可能です．

@item iexten
@opindex iexten
@c Enable non-@acronym{POSIX} special characters.  May be negated.
@c 
非@acronym{POSIX}特殊文字を可能にします．取り消し可能です．

@item echo
@opindex echo
@c Echo input characters.  May be negated.
@c 
入力文字をエコーバックします．取り消し可能です．

@item echoe
@itemx crterase
@opindex echoe
@opindex crterase
@c Echo @code{erase} characters as backspace-space-backspace.  May be
@c negated.
@c 
@code{erase}文字をバックスペース-スペース-バックスペースとしてエコーバッ
クします．取り消し可能です．

@item echok
@opindex echok
@cindex newline echoing after @code{kill}
@c Echo a newline after a @code{kill} character.  May be negated.
@c 
@code{kill}文字の後のニューラインをエコーバックします．取り消し可能です．

@item echonl
@opindex echonl
@cindex newline, echoing
@c Echo newline even if not echoing other characters.  May be negated.
@c 
他の文字をエコーバックしていなくても，ニューラインをエコーバックします．
取り消し可能です．

@item noflsh
@opindex noflsh
@cindex flushing, disabling
@c Disable flushing after @code{interrupt} and @code{quit} special
@c characters.  May be negated.
@c 
@code{interrupt}と@code{quit}特殊文字の後のフラッシュを不可能にします．
取り消し可能です．

@item xcase
@opindex xcase
@cindex case translation
@c Enable input and output of uppercase characters by preceding their
@c lowercase equivalents with @samp{\}, when @code{icanon} is set.
@c Non-@acronym{POSIX}.  May be negated.
@c 
@code{icanon}が設定されているとき，同じ小文字に@samp{\}を前置すること
で，入力と出力の大文字を可能にします．非@acronym{POSIX}です．取り消し
可能です．

@item tostop
@opindex tostop
@cindex background jobs, stopping at terminal write
@c Stop background jobs that try to write to the terminal.  Non-@acronym{POSIX}.
@c May be negated.
@c 
端末に書き込もうとしているバックグラウンド処理を停止します．非
@acronym{POSIX}です．取り消し可能です．

@item echoprt
@itemx prterase
@opindex echoprt
@opindex prterase
@c Echo erased characters backward, between @samp{\} and @samp{/}.
@c Non-@acronym{POSIX}.  May be negated.
@c 
削除された文字を後方の@samp{\}と@samp{/}の間にエコーバックします．非
@acronym{POSIX}です．取り消し可能です．

@item echoctl
@itemx ctlecho
@opindex echoctl
@opindex ctlecho
@cindex control characters, using @samp{^@var{c}}
@cindex hat notation for control characters
@c Echo control characters in hat notation (@samp{^@var{c}}) instead
@c of literally.  Non-@acronym{POSIX}.  May be negated.
@c 
制御文字を，そのままではなく，ハット表示(@samp{^@var{c}})でエコーバッ
クします．非@acronym{POSIX}です．取り消し可能です．

@item echoke
@itemx crtkill
@opindex echoke
@opindex crtkill
@c Echo the @code{kill} special character by erasing each character on
@c the line as indicated by the @code{echoprt} and @code{echoe} settings,
@c instead of by the @code{echoctl} and @code{echok} settings.  Non-@acronym{POSIX}.
@c May be negated.
@c 
@code{echoctl}と@code{echok}の設定の代わりに，@code{echoprt}と
@code{echoe}の設定で示すものとして，行のそれぞれの文字を削除することで，
@code{kill}特殊文字をエコーバックします．非@acronym{POSIX}です．取り消
し可能です．
@end table


@node Combination
@c @subsection Combination settings
@subsection 組み合わせ設定

@cindex combination settings
@c Combination settings:
@c 
組み合わせ設定です．

@table @samp
@item evenp
@opindex evenp
@itemx parity
@opindex parity
@c Same as @code{parenb -parodd cs7}.  May be negated.  If negated, same
@c as @code{-parenb cs8}.
@c 
@code{parenb -parodd cs7}と同じです．取り消し可能です．取り消しの場合
は，@code{-parenb cs8}と同じです．

@item oddp
@opindex oddp
@c Same as @code{parenb parodd cs7}.  May be negated.  If negated, same
@c as @code{-parenb cs8}.
@c 
@code{parenb parodd cs7}と同じです．取り消し可能です．取り消しの場合は，
@code{-parenb cs8}と同じです．

@item nl
@opindex nl
@c Same as @code{-icrnl -onlcr}.  May be negated.  If negated, same as
@c @code{icrnl -inlcr -igncr onlcr -ocrnl -onlret}.
@c 
@code{-icrnl -onlcr}と同じです．取り消し可能です．取り消しの場合は，
@code{icrnl -inlcr -igncr onlcr -ocrnl -onlret}と同じです．

@item ek
@opindex ek
@c Reset the @code{erase} and @code{kill} special characters to their default
@c values.
@c 
@code{erase}と@code{kill}特殊文字をそのデフォルト値にリセットします．

@item sane
@opindex sane
@c Same as:
@c 
以下と同じです．
@c This is too long to write inline.
@example
cread -ignbrk brkint -inlcr -igncr icrnl -ixoff
-iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr
-onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0 isig icanon iexten echo echoe echok -echonl
-noflsh -xcase -tostop -echoprt echoctl echoke
@end example
@c @noindent and also sets all special characters to their default values.
@c 
@noindent そして，すべての特殊文字をそのデフォルト値に設定します．

@item cooked
@opindex cooked
@c Same as @code{brkint ignpar istrip icrnl ixon opost isig icanon}, plus
@c sets the @code{eof} and @code{eol} characters to their default values
@c if they are the same as the @code{min} and @code{time} characters.
@c May be negated.  If negated, same as @code{raw}.
@c 
@code{brkint ignpar istrip icrnl ixon opost isig icanon}と同じで，
@code{min}と@code{time}文字が@code{eof}と@code{eol}文字と同じ場合は，
@code{eof}と@code{eol}文字をそのデフォルト値に設定します．取り消し可能
です．取り消しの場合は，@code{raw}と同じです．

@item raw
@opindex raw
@c Same as:
@c 
以下と同じです．
@example
-ignbrk -brkint -ignpar -parmrk -inpck -istrip
-inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany
-imaxbel -opost -isig -icanon -xcase min 1 time 0
@end example
@c @noindent May be negated.  If negated, same as @code{cooked}.
@c 
@noindent 取り消し可能です．取り消しの場合は，@code{cooked}と同じです．

@item cbreak
@opindex cbreak
@c Same as @option{-icanon}.  May be negated.  If negated, same as
@c @code{icanon}.
@c 
@option{-icanon}と同じです．取り消し可能です．取り消しの場合は，
@code{icanon}と同じです．

@item pass8
@opindex pass8
@cindex eight-bit characters
@c Same as @code{-parenb -istrip cs8}.  May be negated.  If negated,
@c same as @code{parenb istrip cs7}.
@c 
@code{-parenb -istrip cs8}と同じです．取り消し可能です．取り消しの場合
は，@code{parenb istrip cs7}と同じです．

@item litout
@opindex litout
@c Same as @option{-parenb -istrip -opost cs8}.  May be negated.
@c If negated, same as @code{parenb istrip opost cs7}.
@c 
@option{-parenb -istrip -opost cs8}と同じです．取り消し可能です．取り消
しの場合は，@code{parenb istrip opost cs7}同じです．

@item decctlq
@opindex decctlq
@c Same as @option{-ixany}.  Non-@acronym{POSIX}.  May be negated.
@c 
@option{-ixany}と同じです．非@acronym{POSIX}です．取り消し可能です．

@item tabs
@opindex tabs
@c Same as @code{tab0}.  Non-@acronym{POSIX}.  May be negated.  If negated, same
@c as @code{tab3}.
@c 
@code{tab0}と同じです．取り消し可能です．取り消しの場合は，@code{tab3}
と同じです．

@item lcase
@itemx LCASE
@opindex lcase
@opindex LCASE
@c Same as @code{xcase iuclc olcuc}.  Non-@acronym{POSIX}.  May be negated.
@c 
@code{xcase iuclc olcuc}と同じです．非@acronym{POSIX}です．取り消し可
能です．

@item crt
@opindex crt
@c Same as @code{echoe echoctl echoke}.
@c 
@code{echoe echoctl echoke}と同じです．

@item dec
@opindex dec
@c Same as @code{echoe echoctl echoke -ixany intr ^C erase ^? kill C-u}.
@c 
@code{echoe echoctl echoke -ixany intr ^C erase ^? kill C-u}と同じです．
@end table


@node Characters
@c @subsection Special characters
@subsection 特殊文字

@cindex special characters
@cindex characters, special

@c The special characters' default values vary from system to system.
@c They are set with the syntax @samp{name value}, where the names are
@c listed below and the value can be given either literally, in hat
@c notation (@samp{^@var{c}}), or as an integer which may start with
@c @samp{0x} to indicate hexadecimal, @samp{0} to indicate octal, or
@c any other digit to indicate decimal.
@c 
特殊文字のデフォルト値はシステムごとに異なります．それらは，構文
@samp{name value}で設定され，nameは以下にリストアップされていて，value 
はハット表示(@samp{^@var{c}})の文字通り，または，16進を示す@samp{0x}，
八進数を示す@samp{0}，または，十進を示すその他もので始まる整数のどちら
かで，与えることが可能です．

@cindex disabling special characters
@kindex u@r{, and disabling special characters}
@c For GNU stty, giving a value of @code{^-} or @code{undef} disables that
@c special character.  (This is incompatible with Ultrix @command{stty},
@c which uses  a value of @samp{u} to disable a special character.  GNU
@c @command{stty} treats a value @samp{u} like any other, namely to set that
@c special character to @key{U}.)
@c 
GNU sttyに対し，@code{^-}や@code{undef}の値を与えることで，特殊文
字を使用不可能にします．(これは，Ultrix @command{stty}と互換性がなく，
それは特殊文字を使用不可能にするために@samp{u}の値を使用します．
GNU @command{stty}は，値@samp{u}を他と同じように扱い，言い換える
と，特殊文字を@key{U}に設定します．)

@table @samp

@item intr
@opindex intr
@c Send an interrupt signal.
@c 
中断シグナルを送信します．

@item quit
@opindex quit
@c Send a quit signal.
@c 
終了シグナルを送信します．

@item erase
@opindex erase
@c Erase the last character typed.
@c 
最後に入力された文字を削除します．

@item kill
@opindex kill
@c Erase the current line.
@c 
現在の行を削除します．

@item eof
@opindex eof
@c Send an end of file (terminate the input).
@c 
ファイルの終りを送信します(入力を終了します)．

@item eol
@opindex eol
@c End the line.
@c 
行の終りです．

@item eol2
@opindex eol2
@c Alternate character to end the line.  Non-@acronym{POSIX}.
@c 
行の終りの別文字です．非@acronym{POSIX}です．

@item swtch
@opindex swtch
@c Switch to a different shell layer.  Non-@acronym{POSIX}.
@c 
異なるシェルレイヤーに切り替えます．非@acronym{POSIX}です．

@item start
@opindex start
@c Restart the output after stopping it.
@c 
停止後の出力を再開します．

@item stop
@opindex stop
@c Stop the output.
@c 
出力を停止します．

@item susp
@opindex susp
@c Send a terminal stop signal.
@c 
端末の停止シグナルを送信します．

@item dsusp
@opindex dsusp
@c Send a terminal stop signal after flushing the input.  Non-@acronym{POSIX}.
@c 
入力をフラッシュした後，停止シグナルを送信します．非@acronym{POSIX}です．

@item rprnt
@opindex rprnt
@c Redraw the current line.  Non-@acronym{POSIX}.
@c 
現在の行を再描画します．非@acronym{POSIX}です．

@item werase
@opindex werase
@c Erase the last word typed.  Non-@acronym{POSIX}.
@c 
最後に入力された単語を消去します．非@acronym{POSIX}です．

@item lnext
@opindex lnext
@c Enter the next character typed literally, even if it is a special
@c character.  Non-@acronym{POSIX}.
@c 
入力された次の文字を，それが特殊文字の場合でも，そのまま入力します．非
@acronym{POSIX}です．
@end table


@node Special
@c @subsection Special settings
@subsection 特殊設定

@cindex special settings

@table @samp
@item min @var{n}
@opindex min
@c Set the minimum number of characters that will satisfy a read until
@c the time value has expired, when @option{-icanon} is set.
@c 
@option{-icanon}が設定されているとき，制限されている時間値までに安全に読
み込む文字の最小数を設定します．

@item time @var{n}
@opindex time
@c Set the number of tenths of a second before reads time out if the minimum
@c number of characters have not been read, when @option{-icanon} is set.
@c 
@option{-icanon}が設定されているとき，文字の最小数が読み込まれていない場
合，読み込み時間切れまでの10秒単位の数字を設定します．

@item ispeed @var{n}
@opindex ispeed
@c Set the input speed to @var{n}.
@c 
入力速度を@var{n}に設定します．

@item ospeed @var{n}
@opindex ospeed
@c Set the output speed to @var{n}.
@c 
出力速度を@var{n}に設定します．

@item rows @var{n}
@opindex rows
@c Tell the tty kernel driver that the terminal has @var{n} rows.  Non-@acronym{POSIX}.
@c 
ttyカーネルドライバに端末の行数@var{n}を伝えます．非@acronym{POSIX}です．

@item cols @var{n}
@itemx columns @var{n}
@opindex cols
@opindex columns
@c Tell the kernel that the terminal has @var{n} columns.  Non-@acronym{POSIX}.
@c 
カーネルに端末の列数@var{n}を伝えます．非@acronym{POSIX}です．

@item size
@opindex size
@vindex LINES
@vindex COLUMNS
@c Print the number of rows and columns that the kernel thinks the
@c terminal has.  (Systems that don't support rows and columns in the kernel
@c typically use the environment variables @env{LINES} and @env{COLUMNS}
@c instead; however, GNU @command{stty} does not know anything about them.)
@c Non-@acronym{POSIX}.
@c 
端末が持っているとカーネルが想像する，列と行の数を表示します．(カーネ
ルで行と列をサポートしないシステムでは，特に環境変数@env{LINES}と
@env{COLUMNS}が代わりに使用されます．しかし，GNU @command{stty}はそれ
について何も知りません．)非@acronym{POSIX}です．

@item line @var{n}
@opindex line
@c Use line discipline @var{n}.  Non-@acronym{POSIX}.
@c 
回線制御@var{n}を使用します．非@acronym{POSIX}です．

@item speed
@opindex speed
@c Print the terminal speed.
@c 
端末の速度を出力します．

@item @var{n}
@cindex baud rate, setting
@c FIXME: Is this still true that the baud rate can't be set
@c higher than 38400?
@c 
@c Set the input and output speeds to @var{n}.  @var{n} can be one
@c of: 0 50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600
@c 19200 38400 @code{exta} @code{extb}.  @code{exta} is the same as
@c 19200; @code{extb} is the same as 38400.  0 hangs up the line if
@c @option{-clocal} is set.
@c 
入出力の速度を@var{n}に設定します．@var{n}は，以下の一つになります．0
50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200
38400 @code{exta} @code{extb}です．@code{exta}は19200と同じです．
@code{extb}は38400と同じです．@option{-clocal}が設定されている場合，0は
回線を切断します．
@end table


@node printenv invocation
@c @section @command{printenv}: Print all or some environment variables
@section @command{printenv}: すべてまたはいくつかの環境変数を出力

@pindex printenv
@cindex printing all or some environment variables
@cindex environment variables, printing

@c @command{printenv} prints environment variable values.  Synopsis:
@c 
@command{printenv}は，環境変数の値を出力します．概要です．

@example
printenv [@var{option}] [@var{variable}]@dots{}
@end example

@c If no @var{variable}s are specified, @command{printenv} prints the value of
@c every environment variable.  Otherwise, it prints the value of each
@c @var{variable} that is set, and nothing for those that are not set.
@c 
引数が指定されていない場合，@command{printenv}はすべての環境変数の値を
出力します．それ以外の場合，それは，それぞれの設定されている
@var{variable}の値を出力し，設定されていないものには何もしません．

@c The only options are a lone @option{--help} or @option{--version}.
@c @xref{Common options}.
@c 
オプションは，単独の@option{--help}または@option{--version}だけです．
@xref{Common options}.

@cindex exit status of @command{printenv}
@c Exit status:
@c 
終了ステータス．

@display
@c 0 if all variables specified were found
@c 1 if at least one specified variable was not found
@c 2 if a write error occurred
@c 
0 すべての指定された変数が見つかった場合．
1 指定された変数の少なくとも一つが見つかった場合．
2 書き込みエラーが発生した場合．
@end display


@node tty invocation
@c @section @command{tty}: Print file name of terminal on standard input
@section @command{tty}: 標準入力につながっている端末のファイル名を出力

@pindex tty
@cindex print terminal file name
@cindex terminal file name, printing

@c @command{tty} prints the file name of the terminal connected to its standard
@c input.  It prints @samp{not a tty} if standard input is not a terminal.
@c Synopsis:
@c 
@command{tty}は，標準入力が接続してある端末のファイル名を出力します．
標準入力が端末でない場合，それは，@samp{not a tty}を出力します．概要で
す．

@example
tty [@var{option}]@dots{}
@end example

@c The program accepts the following option.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -s
@itemx --silent
@itemx --quiet
@opindex -s
@opindex --silent
@opindex --quiet
@c Print nothing; only return an exit status.
@c 
何も出力しません．終了ステータスを返すだけです．

@end table

@cindex exit status of @command{tty}
@c Exit status:
@c 
@command{tty}の終了ステータスです．

@display
@c 0 if standard input is a terminal
@c 1 if standard input is not a terminal
@c 2 if given incorrect arguments
@c 3 if a write error occurs
@c 
0 標準入力が端末の場合．
1 標準入力が端末でない場合．
2 不正な引数が与えられた場合．
3 書き込みエラーが発生した場合．
@end display


@node User information
@c @chapter User information
@chapter ユーザ情報

@cindex user information, commands for
@cindex commands for printing user information

@c This section describes commands that print user-related information:
@c logins, groups, and so forth.
@c 
このセクションは，ユーザに関連する情報を出力するコマンドを記述します．
login，グループ，その他です．

@menu
* id invocation::               Print real and effective uid and gid.
* logname invocation::          Print current login name.
* whoami invocation::           Print effective user id.
* groups invocation::           Print group names a user is in.
* users invocation::            Print login names of users currently logged in.
* who invocation::              Print who is currently logged in.
@end menu


@node id invocation
@c @section @command{id}: Print real and effective uid and gid
@section @command{id}: 実際と実効のuidとgidを出力

@pindex id
@cindex real uid and gid, printing
@cindex effective uid and gid, printing
@cindex printing real and effective uid and gid

@c @command{id} prints information about the given user, or the process
@c running it if no user is specified.  Synopsis:
@c 
@command{id}は，与えられたユーザや，ユーザが指定されていない場合はそれ
を実行しているプロセスの情報を出力します．概要です．

@example
id [@var{option}]@dots{} [@var{username}]
@end example

@c By default, it prints the real user id, real group id, effective user id
@c if different from the real user id, effective group id if different from
@c the real group id, and supplemental group ids.
@c 
デフォルトで，それは実際のユーザid，実際のグループid，実際のユーザidと
異なる場合は実効ユーザid，実際のグループidと異なる場合は実効グループid，
そして，追加のグループidを出力します．

@c Each of these numeric values is preceded by an identifying string and
@c followed by the corresponding user or group name in parentheses.
@c 
それぞれのこれらの数値は，識別文字が前置され，カッコ内に対応するユーザ
やグループ名が続きます．

@c The options cause @command{id} to print only part of the above information.
@c Also see @ref{Common options}.
@c 
オプションで，@command{id}は，上記の情報の一部のみを出力します．
@ref{Common options}も参照してください．

@table @samp
@item -g
@itemx --group
@opindex -g
@opindex --group
@c Print only the group id.
@c 
グループidのみ出力します．

@item -G
@itemx --groups
@opindex -G
@opindex --groups
@c Print only the supplementary groups.
@c 
追加のグループのみ出力します．

@item -n
@itemx --name
@opindex -n
@opindex --name
@c Print the user or group name instead of the ID number.  Requires
@c @option{-u}, @option{-g}, or @option{-G}.
@c 
ID番号の代わりにユーザやグループの名前を出力します．@option{-u}，@option{-g}，
または@option{-G}が必要です．

@item -r
@itemx --real
@opindex -r
@opindex --real
@c Print the real, instead of effective, user or group id.  Requires
@c @option{-u}, @option{-g}, or @option{-G}.
@c 
実効の代わりに，実際のユーザやグループのidを出力します．@option{-u}，
@option{-g}，または@option{-G}が必要です．

@item -u
@itemx --user
@opindex -u
@opindex --user
@c Print only the user id.
@c 
ユーザidのみ出力します．

@end table

@exitstatus


@node logname invocation
@c @section @command{logname}: Print current login name
@section @command{logname}: 現在のログイン名を出力

@pindex logname
@cindex printing user's login name
@cindex login name, printing
@cindex user name, printing

@flindex /etc/utmp
@flindex utmp

@c @command{logname} prints the calling user's name, as found in the file
@c @file{/etc/utmp}, and exits with a status of 0.  If there is no
@c @file{/etc/utmp} entry for the calling process, @command{logname} prints
@c an error message and exits with a status of 1.
@c 
@command{logname}は，ファイル@file{/etc/utmp}に見つかる，呼び出してい
るユーザ名を出力し，0のステータスで終了します．呼び出しているプロセス
に対する@file{/etc/utmp}項目がない場合，@command{logname}はエラーメッ
セージを出力し，1のステータスで終了します．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}のみです．@xref{Common
options}.

@exitstatus


@node whoami invocation
@c @section @command{whoami}: Print effective user id
@section @command{whoami}: 実効ユーザidの出力

@pindex whoami
@cindex effective UID, printing
@cindex printing the effective UID

@c @command{whoami} prints the user name associated with the current
@c effective user id.  It is equivalent to the command @samp{id -un}.
@c 
@command{whoami}は，現在の実効ユーザidに関連しているユーザ名を出力しま
す．コマンド@samp{id -un}と同じです．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}のみです．@xref{Common
options}.

@exitstatus


@node groups invocation
@c @section @command{groups}: Print group names a user is in
@section @command{groups}: ユーザが所属するグループ名を出力

@pindex groups
@cindex printing groups a user is in
@cindex supplementary groups, printing

@c @command{groups} prints the names of the primary and any supplementary
@c groups for each given @var{username}, or the current process if no names
@c are given.  If names are given, the name of each user is printed before
@c the list of that user's groups.  Synopsis:
@c 
@command{groups}は，与えられたそれぞれの@var{username}，または，名前が
与えられない場合は現在のプロセスに対する，プライマリと追加のグループ名
を出力します．名前が与えられた場合は，それぞれのユーザ名が，ユーザのグ
ループのリストの前に出力されます．概要です．

@example
groups [@var{username}]@dots{}
@end example

@c The group lists are equivalent to the output of the command @samp{id -Gn}.
@c 
グループリストは，コマンド@samp{id -Gn}の出力と同じです．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}のみです．@xref{Common
options}.

@exitstatus


@node users invocation
@c @section @command{users}: Print login names of users currently logged in
@section @command{users}: 現在ログインしているユーザのログイン名を出力

@pindex users
@cindex printing current usernames
@cindex usernames, printing current

@cindex login sessions, printing users with
@c @command{users} prints on a single line a blank-separated list of user
@c names of users currently logged in to the current host.  Each user name
@c corresponds to a login session, so if a user has more than one login
@c session, that user's name will appear the same number of times in the
@c output. Synopsis:
@c 
@command{users}は，現在のホストに現在ログインしているユーザの，空白で
分けられたユーザ名のリストを，単一行に出力します．それぞれのユーザ名は
ログインセッションに対応するので，一回以上のログインセッションがあるユー
ザは，ユーザ名が回数と同じ数だけ出力にあらわれます．概要です．

@example
users [@var{file}]
@end example

@flindex /etc/utmp
@flindex /etc/wtmp
@c With no @var{file} argument, @command{users} extracts its information from
@c the file @file{/etc/utmp}.  If a file argument is given, @command{users}
@c uses that file instead.  A common choice is @file{/etc/wtmp}.
@c 
@var{file}引数がない場合は，@command{users}は，その情報をファイル
@file{/etc/utmp}から，抽出します．ファイル引数が与えられた場合は，
@command{users}は，代わりにそのファイルを使用します．普通は，
@file{/etc/wtmp}を選択します．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}だけです．@xref{Common
options}.

@exitstatus


@node who invocation
@c @section @command{who}: Print who is currently logged in
@section @command{who}: 現在ログインしているユーザを出力

@pindex who
@cindex printing current user information
@cindex information, about current users

@c @command{who} prints information about users who are currently logged on.
@c Synopsis:
@c 
@command{who}は，現在ログオンしているユーザの情報を出力します．概要で
す．

@example
@command{who} [@var{option}] [@var{file}] [am i]
@end example

@cindex terminal lines, currently used
@cindex login time
@cindex remote hostname
@c If given no non-option arguments, @command{who} prints the following
@c information for each user currently logged on: login name, terminal
@c line, login time, and remote hostname or X display.
@c 
非オプション引数が与えられていない場合，@command{who}は，現在ログオン
しているそれぞれのユーザに対し，以下の情報を出力します．ログイン名，端
末回線，ログイン時間，そして，リモートホスト名やXディスプレイです．

@flindex /etc/utmp
@flindex /etc/wtmp
@c If given one non-option argument, @command{who} uses that instead of
@c @file{/etc/utmp} as the name of the file containing the record of
@c users logged on.  @file{/etc/wtmp} is commonly given as an argument
@c to @command{who} to look at who has previously logged on.
@c 
非オプション引数が一つ与えられている場合，@command{who}は，
@file{/etc/utmp} の代わりに，それをログオンしているユーザの記録を含む
ファイル名として使用します．通常，以前ログインしていた人を見るために，
@file{/etc/wtmp}が引数として与えられます．

@opindex am i
@opindex who am i
@c If given two non-option arguments, @command{who} prints only the entry
@c for the user running it (determined from its standard input), preceded
@c by the hostname.  Traditionally, the two arguments given are @samp{am
@c i}, as in @samp{who am i}.
@c 
非オプションが二つ与えられている場合，@command{who}は，(標準入力から決
定される)それを実行しているユーザの項目のみ出力し，それにはホスト名が
前置されます．伝統的に，二つの与えられる引数は，@samp{am i}で，
@samp{who am i}となります．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -a
@itemx --all
@opindex -a
@opindex --all
@c Same as @samp{-b -d --login -p -r -t -T -u}.
@c 
@samp{-b -d --login -p -r -t -T -u}と同じです．

@item -b
@itemx --boot
@opindex -b
@opindex --boot
@c Print the date and time of last system boot.
@c 
前回システムが起動した日時を出力します．

@item -d
@itemx --dead
@opindex -d
@opindex --dead
@c Print information corresponding to dead processes.
@c 
死んだプロセスに対応する情報を出力します．

@item -H
@itemx --heading
@opindex -H
@opindex --heading
@c Print column headings.
@c 
列の見出しを出力します．

@item -i
@itemx --idle
@opindex -i
@opindex --idle
@c Include idle time in HOURS:MINUTES, @samp{.} (to indicate
@c current process), or @samp{old}.
@c 
アイドル時間のHOURS:MINUTESの形式，@samp{.} (現在のプロセスを示す)，ま
たは@samp{old}を含めます．

@item -m
@opindex -m
@c Same as @samp{who am i}.
@c 
@samp{who am i}と同じです．

@item -q
@itemx --count
@opindex -q
@opindex --count
@c Print only the login names and the number of users logged on.
@c Overrides all other options.
@c 
ログイン名と，ログオンしているユーザの数のみを出力します．他のすべての
オプションに優先します．

@item -s
@opindex -s
@c Ignored; for compatibility with other versions of @command{who}.
@c 
無視します．他のバージョンの@command{who}との互換性のためです．

@item -i
@itemx -u
@itemx --idle
@opindex -i
@opindex -u
@opindex --idle
@cindex idle time
@c After the login time, print the number of hours and minutes that the
@c user has been idle.  @samp{.} means the user was active in last minute.
@c @samp{old} means the user was idle for more than 24 hours.
@c 
ログイン時間後，ユーザがアイドル状態の時間と分の数を出力します．
@samp{.}  は，ユーザがこの一分間の間にアクティブだったということを意味
します．@samp{old}は，ユーザが24時間以上アイドル状態だということを意味
します．

@item -l
@itemx --login
@opindex -l
@opindex --login
@c List only the entries that correspond to processes via which the
@c system is waiting for a user to login.  The user name is always @samp{LOGIN}.
@c 
ユーザのログインを待っているシステムのプロセスに対応する項目だけをリス
トアップします．ユーザ名は常に@samp{LOGIN}になります．

@itemx --lookup
@opindex --lookup
@c Attempt to canonicalize hostnames found in utmp through a DNS lookup.  This
@c is not the default because it can cause significant delays on systems with
@c automatic dial-up internet access.
@c 
DNSルックアップを通じて，utmpで見つかるホスト名の標準化を試みます．こ
れは，自動ダイアルアップインターネットアクセスを用いたシステムで，重大
な遅延を引き起こすため，デフォルトではありません．

@item -H
@itemx --heading
@opindex -H
@opindex --heading
@c Print a line of column headings.
@c 
列の見出しを出力します．

@item -w
@itemx -T
@itemx --mesg
@itemx --message
@itemx --writable
@opindex -w
@opindex -T
@opindex --mesg
@opindex --message
@opindex --writable
@cindex message status
@pindex write@r{, allowed}
@c After each login name print a character indicating the user's message status:
@c 
それぞれのログイン名の後に，ユーザのメッセージステータスを示す文字を出
力します．

@display
@c @samp{+} allowing @code{write} messages
@c @samp{-} disallowing @code{write} messages
@c @samp{?} cannot find terminal device
@c 
@samp{+} @code{write}メッセージが利用可能です．
@samp{-} @code{write}メッセージが利用不可能です．
@samp{?} 端末デバイスが見つかりません．
@end display

@end table

@exitstatus


@node System context
@c @chapter System context
@chapter システムの状況

@cindex system context
@cindex context, system
@cindex commands for system context

@c This section describes commands that print or change system-wide
@c information.
@c 
このセクションは，システム全体の情報を出力または変更するコマンドを記述
します．

@menu
* date invocation::             Print or set system date and time.
* uname invocation::            Print system information.
* hostname invocation::         Print or set system name.
* hostid invocation::           Print numeric host identifier.
@end menu


@node date invocation
@c @section @command{date}: Print or set system date and time
@section @command{date}: システムの日付と時間を出力または設定

@pindex date
@cindex time, printing or setting
@cindex printing the current time

@c Synopses:
@c 
概要です．

@example
date [@var{option}]@dots{} [+@var{format}]
date [-u|--utc|--universal] @c this avoids a newline in the output
[ MMDDhhmm[[CC]YY][.ss] ]
@end example

@c Invoking @command{date} with no @var{format} argument is equivalent to invoking
@c @samp{date '+%a %b %e %H:%M:%S %Z %Y'}.
@c 
引数を伴わない@command{date}は，(以下で記述する)@samp{%c}指示語の書式
で，現在の時間と日付を出力します．

@findex strftime @r{and @command{date}}
@cindex time formats
@cindex formatting times
@c If given an argument that starts with a @samp{+}, @command{date} prints the
@c current time and date (or the time and date specified by the
@c @option{--date} option, see below) in the format defined by that argument,
@c which is the same as in the @code{strftime} function.  Except for
@c directives, which start with @samp{%}, characters in the format string
@c are printed unchanged.  The directives are described below.
@c 
@samp{+}で始まる引数が与えられた場合，@command{date}は現在の時間と日付
(または，以下で参照できる，@option{--date}オプションで指定された日付と
時間)を，引数で定義された書式で出力し，それは，@code{strftime}関数と同
じです．@samp{%}で始まる指示語以外の，書式文字列内の文字は，変更されず
に出力されます．指示語は以下で記述します．

@exitstatus

@menu
* Time directives::             %[HIklMprsSTXzZ]
* Date directives::             %[aAbBcdDhjmUwWxyY]
* Literal directives::          %[%nt]
* Padding::                     Pad with zeroes, spaces (%_), or nothing (%-).
* Setting the time::            Changing the system clock.
* Options for date::            Instead of the current time.
* Examples of date::            Examples.
@end menu

@node Time directives
@c @subsection Time directives
@subsection 時間指示語

@cindex time directives
@cindex directives, time

@c @command{date} directives related to times.
@c 
時間に関連する@command{date}の指示語です．

@table @samp
@item %H
@c hour (00@dots{}23)
@c 
時間(00@dots{}23)
@item %I
@c hour (01@dots{}12)
@c 
時間(01@dots{}12)
@item %k
@c hour ( 0@dots{}23)
@c 
時間( 0@dots{}23)
@item %l
@c hour ( 1@dots{}12)
@c 
時間( 1@dots{}12)
@item %M
@c minute (00@dots{}59)
@c 
分(00@dots{}59)
@item %N
@c nanoseconds (000000000@dots{}999999999)
@c 
ナノ秒(000000000@dots{}999999999)
@item %p
@c locale's upper case @samp{AM} or @samp{PM} (blank in many locales)
@c 
ロカールの大文字の@samp{AM}(午前)または@samp{PM}(午後)(多くのロカール
では空白)
@item %P
@c locale's lower case @samp{am} or @samp{pm} (blank in many locales)
@c 
ロカールの小文字の@samp{AM}(午前)または@samp{PM}(午後)(多くのロカール
では空白)
@item %r
@c time, 12-hour (hh:mm:ss [AP]M)
@c 
時間で，12時間基準(hh:mm:ss [AP]M)
@item %R
@c time, 24-hour (hh:mm).  Same as @code{%H:%M}.
@c 
時間で，24時間基準(hh:mm)．@code{%H:%M}と同じです．
@item %s
@cindex epoch, seconds since
@cindex seconds since the epoch
@cindex beginning of time
@c seconds since the epoch, i.e., 1 January 1970 00:00:00 UTC (a GNU extension).
@c For examples, @xref{%s-examples}.
@c 
エポック，すなわち1970年1月1日00:00:00 UTCからの秒(GNU拡張)です．
例えば，@xref{%s-examples}.
@item %S
@c second (00@dots{}60).  The range is [00@dots{}60], and not [00@dots{}59],
@c in order to accommodate the occasional positive leap second.
@c 
秒(00@dots{}60)．秒数の急激な変化に合わせるため，範囲は[00@dots{}60]で
[00@dots{}59]ではありません．
@item %T
@c time, 24-hour (hh:mm:ss)
@c 
時間で，24時間基準(hh:mm:ss)
@item %X
@c locale's time representation (%H:%M:%S)
@c 
ロカールの時間表現(%H:%M:%S)
@item %z
@c RFC-2822 style numeric time zone (e.g., -0600 or +0100), or nothing if no
@c time zone is determinable.  This value reflects the @emph{current} time
@c zone.  It isn't changed by the @option{--date} option.
@c 
RFC-2822スタイルの数値的なタイムゾーン(例えば，-0600や+0100)，または，
タイムゾーンが決定できない場合は何もしません．この値は@emph{現在の}タ
イムゾーンを反映します．それは，@option{--date}オプションで変更されま
せん．
@item %Z
@c time zone (e.g., EDT), or nothing if no time zone is
@c determinable.
@c Note that this value reflects the @emph{current} time zone.
@c It isn't changed by the @option{--date} option.
@c 
タイムゾーン(例えば，EDT)，または，タイムゾーンが決定できない場合は何
もしません．この値は@emph{現在の}タイムゾーンを反映することに注意して
ください．それは，@option{--date}オプションで変更されません．
@end table


@node Date directives
@c @subsection Date directives
@subsection 日付指示語

@cindex date directives
@cindex directives, date

@c @command{date} directives related to dates.
@c 
日付に関連する@command{date}指示語です．

@table @samp
@item %a
@c locale's abbreviated weekday name (Sun@dots{}Sat)
@c 
ロカール略記される曜日の名前(Sun@dots{}Sat)
@item %A
@c locale's full weekday name, variable length (Sunday@dots{}Saturday)
@c 
ロカールの完全な週の曜日の名前で，可変長(Sunday@dots{}Saturday)
@item %b
@c locale's abbreviated month name (Jan@dots{}Dec)
@c 
ロカールの略記される月の名前(Jan@dots{}Dec)
@item %B
@c locale's full month name, variable length (January@dots{}December)
@c 
ロカールの完全な月の名前で，可変長(January@dots{}December)
@item %c
@c locale's date and time (Sat Nov 04 12:02:33 EST 1989)
@c 
ロカールの日付と時間(Sat Nov 04 12:02:33 EST 1989)
@item %C
@c century (year divided by 100 and truncated to an integer) (00@dots{}99)
@c 
世紀(年の100分の1で整数に切り捨てられたもの) (00@dots{}99)
@item %d
@c day of month (01@dots{}31)
@c 
月の何日目(01@dots{}31)
@item %D
@c date (mm/dd/yy)
@c 
日付(mm/dd/yy)
@item %e
@c blank-padded day of month (1@dots{}31)
@c 
月の何日目でゼロパディングがないもの．
@item %F
@c the @w{ISO 8601} standard date format: @code{%Y-%m-%d}.
@c This is the preferred form for all uses.
@c 
@acronym{ISO} 8601標準の日付書式，@code{%Y-%m-%d}．これは，すべてのユー
ザが好む形式です．
@item %g
@c The year corresponding to the ISO week number, but without the century
@c (range @code{00} through @code{99}).  This has the same format and value
@c as @code{%y}, except that if the ISO week number (see @code{%V}) belongs
@c to the previous or next year, that year is used instead.
@c 
@acronym{ISO}の週番号に対応する年ですが，世紀(@code{00}から@code{99}の
範囲)が無いものです．@code{%y}の書式と値と同じですが，@acronym{ISO}の
週番号(@code{%V}を参照)が前年または翌年になる場合は，その年が代わりに
使用されます．
@item %G
@c The year corresponding to the ISO week number.  This has the same format
@c and value as @code{%Y}, except that if the ISO week number (see
@c @code{%V}) belongs to the previous or next year, that year is used
@c instead.
@c 
@acronym{ISO}の週番号に対応する年です．@code{%Y}の書式と値と同じですが，
@acronym{ISO}の週番号(@code{%V}を参照)が前年または翌年になる場合は，そ
の年が代わりに使用されます．
@item %h
@c same as %b
@c 
%bと同じ
@item %j
@c day of year (001@dots{}366)
@c 
年の何日目(001@dots{}366)
@item %m
@c month (01@dots{}12)
@c 
月(01@dots{}12)
@item %u
@c day of week (1@dots{}7) with 1 corresponding to Monday
@c 
月曜日を1に対応させた週の日付(1@dots{}7)
@item %U
@c week number of year with Sunday as first day of week (00@dots{}53).
@c Days in a new year preceding the first Sunday are in week zero.
@c 
日曜日を週の最初の日として用いた，年の何週目(00@dots{}53)です．新年の
最初の日曜日の前の日付は，0週目になります．
@item %V
@c week number of year with Monday as first day of the week as a decimal
@c (01@dots{}53). If the week containing January 1 has four or more days in
@c the new year, then it is considered week 1; otherwise, it is week 53 of
@c the previous year, and the next week is week 1. (See the @acronym{ISO} 8601
@c standard.)
@c 
月曜日を週の最初の日として用いた，年の何週目の十進数(00@dots{}53)です．
新年の一月一日が含まれる週が，四日以上の日を含む場合，それは第一週と考
えられます．それ以外の場合は，前年の53週目となり，翌週が第一週となりま
す．(@acronym{ISO} 8601の標準を参照してください．)
@item %w
@c day of week (0@dots{}6) with 0 corresponding to Sunday
@c 
週の何日目(0@dots{}6)で，0は日曜日に対応します．
@item %W
@c week number of year with Monday as first day of week (00@dots{}53).
@c Days in a new year preceding the first Monday are in week zero.
@c 
月曜日を週の最初の日として用いた，年の何週目(00@dots{}53)です．新年の
最初の月曜日の前の日付は，0週目になります．
@item %x
@c locale's date representation (mm/dd/yy)
@c 
ロカールの日付表現(mm/dd/yy)
@item %y
@c last two digits of year (00@dots{}99)
@c 
最後の二桁を用いた年(00@dots{}99)
@item %Y
@c year (1970@dots{}.)
@c 
年(1970@dots{}.)
@end table


@node Literal directives
@c @subsection Literal directives
@subsection リテラル指示語

@cindex literal directives
@cindex directives, literal

@c @command{date} directives that produce literal strings.
@c 
リテラル文字列を生成する@command{date}の指示語です．

@table @samp
@item %%
@c a literal %
@c 
リテラルの%
@item %n
@c a newline
@c 
改行
@item %t
@c a horizontal tab
@c 
水平タブ
@end table


@node Padding
@c @subsection Padding
@subsection パディング

@cindex numeric field padding
@cindex padding of numeric fields
@cindex fields, padding numeric

@c By default, @command{date} pads numeric fields with zeroes, so that, for
@c example, numeric months are always output as two digits. GNU @command{date}
@c recognizes the following numeric modifiers between the @samp{%} and the
@c directive.
@c 
デフォルトで，@command{date}は数値フィールドをゼロでパディングし，例え
ば，数字の月は，常に二桁で出力されます．GNU @command{date}は，以下の
@samp{%}と指示語の間の数値修飾子を認識します．

@table @samp
@item -
@c (hyphen) do not pad the field; useful if the output is intended for
@c human consumption.
@c 
(ハイフン)フィールドをパディングしません．出力を人間が利用する目的の場
合役に立ちます．
@item _
@c (underscore) pad the field with spaces; useful if you need a fixed
@c number of characters in the output, but zeroes are too distracting.
@c 
(アンダースコア)フィールドをスペースでパディングします．出力に固定数の
文字が必要で，ゼロでは混乱する場合，役に立ちます．
@end table

@noindent
@c These are GNU extensions.
@c 
これらはGNU拡張です．

@c Here is an example illustrating the differences:
@c 
以下に違いを表現する例があります．

@example
date +%d/%m -d "Feb 1"
@result{} 01/02
date +%-d/%-m -d "Feb 1"
@result{} 1/2
date +%_d/%_m -d "Feb 1"
@result{}  1/ 2
@end example


@node Setting the time
@c @subsection Setting the time
@subsection 時間の設定

@cindex setting the time
@cindex time setting
@cindex appropriate privileges

@c If given an argument that does not start with @samp{+}, @command{date} sets
@c the system clock to the time and date specified by that argument (as
@c described below).  You must have appropriate privileges to set the
@c system clock.  The @option{--date} and @option{--set} options may not be
@c used with such an argument.  The @option{--universal} option may be used
@c with such an argument to indicate that the specified time and date are
@c relative to Coordinated Universal Time rather than to the local time
@c zone.
@c 
@samp{+}で始まらない引数が与えられた場合，@command{date}は，システム時
計をその引数(以下で記述)で指定された時間と日付に設定します．システム時
計を設定するため，適切な特権を持っている必要があります．
@option{--date}と@option{--set}オプションは，引数として使用できません．
@option{--universal}オプションは，指定された時間と日付がローカルなタイ
ムゾーンではなく協定世界時に関連することを示すために，引数として使用し
てもかまいません．

@c The argument must consist entirely of digits, which have the following
@c meaning:
@c 
引数は，完全な数字から成り立つ必要があり，それは以下の意味を持ちます．

@table @samp
@item MM
@c month
@c 
月
@item DD
@c day within month
@c 
月の日付
@item hh
@c hour
@c 
時間
@item mm
@c minute
@c 
分
@item CC
@c first two digits of year (optional)
@c 
年の最初の二桁(オプション)
@item YY
@c last two digits of year (optional)
@c 
年の最後の二桁(オプション)
@item ss
@c second (optional)
@c 
秒(オプション)
@end table

@c The @option{--set} option also sets the system clock; see the next section.
@c 
@option{--set}オプションもシステム時計を設定します．次のオプションを参
照してください．


@node Options for date
@c @subsection Options for @command{date}
@subsection @command{date}のオプション

@cindex @command{date} options
@cindex options for @command{date}

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -d @var{datestr}
@itemx --date=@var{datestr}
@opindex -d
@opindex --date
@cindex parsing date strings
@cindex date strings, parsing
@cindex arbitrary date strings, parsing
@opindex yesterday
@opindex tomorrow
@opindex next @var{day}
@opindex last @var{day}
@c Display the time and date specified in @var{datestr} instead of the
@c current time and date.  @var{datestr} can be in almost any common
@c format.  It can contain month names, time zones, @samp{am} and @samp{pm},
@c @samp{yesterday}, @samp{ago}, @samp{next}, etc.  @xref{Date input formats}.
@c 
現在の時間と日付の代わりに，@var{datestr}で指定された時間と日付を表示
します．@var{datestr}は，ほとんどあらゆる一般的な書式が可能です．月の
名前，タイムゾーン，@samp{am}と@samp{pm}，@samp{yesterday}，@samp{ago}，
@samp{next}，等を含めることが可能です．@xref{Date input formats}.

@item -f @var{datefile}
@itemx --file=@var{datefile}
@opindex -f
@opindex --file
@c Parse each line in @var{datefile} as with @option{-d} and display the
@c resulting time and date.  If @var{datefile} is @samp{-}, use standard
@c input.  This is useful when you have many dates to process, because the
@c system overhead of starting up the @command{date} executable many times can
@c be considerable.
@c 
@option{-d}と同様に，@var{datefile}のそれぞれの行を解析し，結果の時間
と日付を表示します．@var{datefile}が@samp{-}の場合，標準入力を使用しま
す．@command{date}の実行を何度も開始するシステムのオーバーへッドは無視
できないので，これは多くの日付を処理するとき役に立ちます．

@item -I @var{timespec}
@itemx --iso-8601[=@var{timespec}]
@opindex -I @var{timespec}
@opindex --iso-8601[=@var{timespec}]
@c Display the date using the @acronym{ISO} 8601 format, @samp{%Y-%m-%d}.
@c 
@acronym{ISO} 8601書式@samp{%Y-%m-%d}を使用して日付を表示します．

@c The argument @var{timespec} specifies the number of additional
@c terms of the time to include.  It can be one of the following:
@c 
オプション引数の@var{timespec}は，含める時間の追加の単語の数を指定しま
す．以下の一つになるはずです．
@table @samp
@item auto
@c The default behavior: print just the date.
@c 
デフォルトの動作です．日付のみ出力します．

@item hours
@c Append the hour of the day to the date.
@c 
日付に時間を追加します．

@item minutes
@c Append the hours and minutes.
@c 
時間と分を追加します．

@item seconds
@c Append the hours, minutes, and seconds.
@c 
時間，分，そして秒を追加します．
@end table

@c If showing any time terms, then include the time zone using the format
@c @samp{%z}.
@c 
時間の用語を表示する場合，書式@samp{%z}を使用したタイムゾーンを含めま
す．@option{--utc}も指定されている場合，@samp{%z}の場所に@samp{%Z}を使
用します．

@c If @var{timespec} is omitted with @option{--iso-8601}, the default is
@c @samp{auto}.  On older systems, @sc{gnu} @command{date} instead
@c supports an obsolete option @option{-I[@var{timespec}]}, where
@c @var{timespec} defaults to @samp{auto}.  @acronym{POSIX} 1003.1-2001
@c (@pxref{Standards conformance}) does not allow @option{-I} without an
@c argument; use @option{--iso-8601} instead.
@c 
@option{--iso-8601}で@var{timespec}が省略されている場合，デフォルトは
@samp{auto}です．古いシステムでは，@sc{gnu} @command{date}は時代遅れの
オプション@option{-I[@var{timespec}]}を代わりにサポートしていて，そこ
での@var{timespec}のデフォルトは@samp{auto}です．@acronym{POSIX}
1003.1-2001 (@pxref{Standards conformance})では，引数を用いない
@option{-I}を許可していません．代わりに@option{--iso-8601}を使用してく
ださい．

@item -R
@itemx --rfc-822
@itemx --rfc-2822
@opindex -R
@opindex --rfc-822
@opindex --rfc-2822
@c Display the time and date using the format @samp{%a, %d %b %Y %H:%M:%S
@c %z}, evaluated in the C locale so abbreviations are always in English.
@c For example:
@c 
@samp{%a, %d %b %Y %H:%M:%S %z}の書式を使用して日時を出力し，それは常
に英語で略記されるCロカールで評価されます．
例えば以下のようになります．

@example
Fri,@ @ 1 Aug 2003 23:05:56 -0700
@end example

@c This format conforms to
@c @uref{ftp://ftp.rfc-editor.org/in-notes/rfc2822.txt, RFC 2822} and
@c @uref{ftp://ftp.rfc-editor.org/in-notes/rfc822.txt, RFC 822}, the
@c current and previous standards for Internet email.
@c 
この書式は，@uref{ftp://ftp.rfc-editor.org/in-notes/rfc2822.txt, RFC
2822}と@uref{ftp://ftp.rfc-editor.org/in-notes/rfc822.txt, RFC 822}に
準拠していて，現在とそれ以前のインターネット電子メールの標準のものです．

@item -r @var{file}
@itemx --reference=@var{file}
@opindex -r
@opindex --reference
@c Display the time and date reference according to the last modification
@c time of @var{file}, instead of the current time and date.
@c 
現在の時間と日付の代わりに，@var{file}が最後に編集された時間を参照して，
時間と日付を表示します．

@item -s @var{datestr}
@itemx --set=@var{datestr}
@opindex -s
@opindex --set
@c Set the time and date to @var{datestr}.  See @option{-d} above.
@c 
時間と日付を@var{datestr}に設定します．上記の@option{-d}を参照してくだ
さい．

@item -u
@itemx --utc
@itemx --universal
@opindex -u
@opindex --utc
@opindex --universal
@cindex Coordinated Universal Time
@cindex UTC
@cindex Greenwich Mean Time
@cindex GMT
@c Use Coordinated Universal Time (@acronym{UTC}) by operating as if the
@c @env{TZ} environment variable were set to the string @samp{UTC0}.
@c Normally, @command{date} operates in the time zone indicated by
@c @env{TZ}, or the system default if @env{TZ} is not set.  Coordinated
@c Universal Time is often called ``Greenwich Mean Time'' (@sc{gmt}) for
@c historical reasons.
@c 
@env{TZ}環境変数が文字列@samp{UTC0}に設定されているかのように，世界標
準時(@acronym{UTC})を使用します．通常，@command{date}は@env{TZ}で示さ
れるタイムゾーン，または@env{TZ}が設定されていない場合はシステムデフォ
ルトのタイムゾーンで処理します，協定世界時は，歴史的な理由で``グリニッ
ジ標準時''(@sc{gmt})と呼ばれることもよくあります．
@end table


@node Examples of date
@c @subsection Examples of @command{date}
@subsection @command{date}の例

@cindex examples of @command{date}

@c Here are a few examples.  Also see the documentation for the @option{-d}
@c option in the previous section.
@c 
以下にいくつかの例があります．上記セクションの@option{-d}オプションに
対するドキュメントも参照してください．

@itemize @bullet

@item
@c To print the date of the day before yesterday:
@c 
一昨日の日付を出力します．

@example
date --date='2 days ago'
@end example

@item
@c To print the date of the day three months and one day hence:
@c 
これから三ヶ月と一日先の日付を出力します．
@example
date --date='3 months 1 day'
@end example

@item
@c To print the day of year of Christmas in the current year:
@c 
今年のクリスマスが年の何日目かを出力します．
@example
date --date='25 Dec' +%j
@end example

@item
@c To print the current full month name and the day of the month:
@c 
現在の月の完全な名前と日を出力します．
@example
date '+%B %d'
@end example

@c But this may not be what you want because for the first nine days of
@c the month, the @samp{%d} expands to a zero-padded two-digit field,
@c for example @samp{date -d 1may '+%B %d'} will print @samp{May 01}.
@c 
しかし，月の最初の九日の間，@samp{%d}はゼロパディングした二桁のフィー
ルドに展開するため，これは期待するものでない可能性があり，例えば，
@samp{date -d 1may '+%B %d'}は@samp{May 01}を出力します．

@item
@c To print a date without the leading zero for one-digit days
@c of the month, you can use the (GNU extension) @code{-} modifier to suppress
@c the padding altogether.
@c 
一桁の日の前置されるゼロを日付に付けないで出力するため，パディングを完
全に抑制する(GNU拡張)の@code{-}修飾子を使用可能です．
@example
date -d 1may '+%B %-d
@end example

@item
@c To print the current date and time in the format required by many
@c non-GNU versions of @command{date} when setting the system clock:
@c 
システム時計を設定するとき，@command{date}の多くの非GNUバージョンが要
求する書式で，現在の日付と時間を出力します．
@example
date +%m%d%H%M%Y.%S
@end example

@item
@c To set the system clock forward by two minutes:
@c 
システム時計を二分進める設定です．
@example
date --set='+2 minutes'
@end example

@item
@c To print the date in the format specified by RFC-2822,
@c use @samp{date --rfc-2822}.  I just did and saw this:
@c 
RFC-2822で指定される書式で日付を出力するため，@samp{date --rfc-2822}を
使用してください．そうするとこのようになりました．

@example
Thu, 31 Jul 2003 13:13:05 -0700
@end example

@anchor{%s-examples}
@item
@c To convert a date string to the number of seconds since the epoch
@c (which is 1970-01-01 00:00:00 UTC), use the @option{--date} option with
@c the @samp{%s} format.  That can be useful in sorting and/or graphing
@c and/or comparing data by date.  The following command outputs the
@c number of the seconds since the epoch for the time two minutes after the
@c epoch:
@c 
日付文字を，エポック(1970-01-01 00:00:00 UTC)からの秒数に変換するため，
@samp{%s}書式を用いた@option{--date}オプションを使用してください．それ
は，日付ごとの並べ替え，および/または，グラフ化，および/または，比較に
役立つはずです．以下のコマンドは，エポックより一秒以上後の時間に対し，
エポックからの秒数を出力しますが，タイムゾーンの五時間後(ケンブリッジ，
マサチューセッツ) では，このように全体でエポックの五時間と一秒後となり
ます．

@example
date --date='1970-01-01 00:02:00 +0000' +%s
120
@end example

@c If you do not specify time zone information in the date string,
@c @command{date} uses your computer's idea of the time zone when
@c interpreting the string.  For example, if your computer's time zone is
@c that of Cambridge, Massachusetts, which was then 5 hours (i.e., 18,000
@c seconds) behind UTC:
@c 
上記の例でタイムゾーン情報を指定@emph{していない}と仮定します．そのと
き，文字列を解釈するとき，日付はコンピュータのタイムゾーンの考えを使用
します．イングランドのグリニッジにいる場合，得るものはこのようになりま
す．

@example
# local time zone used
date --date='1970-01-01 00:02:00' +%s
18120
@end example

@item
@c If you're sorting or graphing dated data, your raw date values may be
@c represented as seconds since the epoch.  But few people can look at
@c the date @samp{946684800} and casually note ``Oh, that's the first second
@c of the year 2000 in Greenwich, England.''
@c 
日付を並べ替えたりグラフ化したりしている場合，生の日付の値は，エポック
からの秒として表現可能です．しかし，ほとんどの人は，日付
@samp{946684800}を見て，``ああ，それは2000年最初の秒だ''と簡単には気が
付きません．

@example
date --date='2000-01-01 UTC' +%s
946684800
@end example

@c An alternative is to use the @option{--utc} (@option{-u}) option.
@c Then you may omit @samp{UTC} from the date string.  Although this
@c produces the same result for @samp{%s} and many other format sequences,
@c with a time zone offset different from zero, it would give a different
@c result for zone-dependent formats like @samp{%z}.
@c 
代わりに，@option{--utc} (@option{-u})オプションを使用します．日付文字
列から@samp{UTC}を削除してもかまいません．これは@samp{%s}と，その他の
ゼロと起点としたタイムゾーンオフセットを用いた書式と同じ結果を生成しま
すが，@samp{%z}のような地域に依存した書式とは異なる結果になります．

@example
date -u --date=2000-01-01 +%s
946684800
@end example

@c To convert such an unwieldy number of seconds back to
@c a more readable form, use a command like this:
@c 
そのような扱いにくい秒数を，より読みやすい形式に変換するため，このよう
なコマンドを使用してください．
@smallexample
# local time zone used
date -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"
1999-12-31 19:00:00 -0500
@end smallexample

@c Often it is better to output UTC-relative date and time:
@c 
UTCに相対的な日時の出力より良くなることが多くなっています．

@smallexample
date -u -d '1970-01-01 946684800 seconds' +"%Y-%m-%d %T %z"
2000-01-01 00:00:00 +0000
@end smallexample

@end itemize


@node uname invocation
@c @section @command{uname}: Print system information
@section @command{uname}: システム情報の出力

@pindex uname
@cindex print system information
@cindex system information, printing

@c @command{uname} prints information about the machine and operating system
@c it is run on.  If no options are given, @command{uname} acts as if the
@c @option{-s} option were given. Synopsis:
@c 
@command{uname}は，実行しているマシンとオペレーティングシステムの情報
を出力します．オプションが与えられない場合，@command{uname}は
@option{-s}オプションが与えられたかのように動作します．概要です．

@example
uname [@var{option}]@dots{}
@end example

@c If multiple options or @option{-a} are given, the selected information is
@c printed in this order:
@c 
複数のオプションや@option{-a}が与えられた場合，選択された情報は，以下
の順番で出力されます．

@example
@var{kernel-name} @var{nodename} @var{kernel-release} @var{kernel-version} @var{machine} @var{processor} @var{hardware-platform} @var{operating-system}
@end example

@c The information may contain internal spaces, so such output cannot be
@c parsed reliably.  In the following example, @var{release} is
@c @samp{2.2.18ss.e820-bda652a #4 SMP Tue Jun 5 11:24:08 PDT 2001}:
@c 
情報の内部にはスペースが含まれるので，出力を確実にパースすることは不可
能です．以下の例では，@var{release}は@samp{2.2.18ss.e820-bda652a #4
SMP Tue Jun 5 11:24:08 PDT 2001}です．

@example
uname -a
@result{} Linux dum 2.2.18ss.e820-bda652a #4 SMP Tue Jun 5 11:24:08 PDT 2001 i686 unknown unknown GNU/Linux
@end example


@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは，以下のオプションも受け入れます．@ref{Common options}も参
照してください．

@table @samp

@item -a
@itemx --all
@opindex -a
@opindex --all
@c Print all of the below information.
@c 
以下の情報すべてを出力します．

@item -i
@itemx --hardware-platform
@opindex -i
@opindex --hardware-platform
@cindex implementation, hardware
@cindex hardware platform
@cindex platform, hardware
@c Print the hardware platform name
@c (sometimes called the hardware implementation).
@c 
ハードウェアのプラットフォーム名を出力します(ハードウェア実装と呼ばれ
ることもあります)．

@item -m
@itemx --machine
@opindex -m
@opindex --machine
@cindex machine type
@cindex hardware class
@cindex hardware type
@c Print the machine hardware name (sometimes called the hardware class
@c or hardware type).
@c 
マシンハードウェア名を出力します(ハードウェアクラスまたはハードウェア
タイプと呼ばれることもあります)．

@item -n
@itemx --nodename
@opindex -n
@opindex --nodename
@cindex hostname
@cindex node name
@cindex network node name
@c Print the network node hostname.
@c 
マシンのネットワークノードのホスト名を出力します．

@item -p
@itemx --processor
@opindex -p
@opindex --processor
@cindex host processor type
@c Print the processor type (sometimes called the instruction set
@c architecture or ISA).
@c 
マシンのプロセッサタイプを出力します(命令セットアーキテクチャやISAと呼
ばれることもあります)．

@item -o
@itemx --operating-system
@opindex -o
@opindex --operating-system
@cindex operating system name
@c Print the name of the operating system.
@c 
オペレーティングシステムの名前を出力します．

@item -r
@itemx --kernel-release
@opindex -r
@opindex --kernel-release
@cindex kernel release
@cindex release of kernel
@c Print the kernel release.
@c 
カーネルのリリースを出力します．

@item -s
@itemx --kernel-name
@opindex -s
@opindex --kernel-name
@cindex kernel name
@cindex name of kernel
@c Print the kernel name.
@c @acronym{POSIX} 1003.1-2001 (@pxref{Standards conformance}) calls this
@c ``the implementation of the operating system'', because the
@c @acronym{POSIX} specification itself has no notion of ``kernel''.
@c The kernel name might be the same as the operating system name printed
@c by the @option{-o} or @option{--operating-system} option, but it might
@c differ.  Some operating systems (e.g., FreeBSD, HP-UX) have the same
@c name as their underlying kernels; others (e.g., GNU/Linux, Solaris)
@c do not.
@c 
カーネルの名前を出力します．@acronym{POSIX} 1003.1-2001
(@pxref{Standards conformance})では，これを``オペレーティングシステム
の実装(the implementation of the operating system)''と呼んでいます．
@acronym{POSIX}の指定自身には``カーネル(kernel)''の概念はありません．
カーネル名は，@option{-o}や@option{--operating-system}オプションで出力
されるオペレーティングシステムの名前と同じですが，違う場合もあります．
オペレーティングシステムによっては(例えばFreeBSD，HP-UX)，基礎となるカー
ネルと同じ名前ですが，それ以外のもの(GNU/Linux，Solaris)もあります．

@item -v
@itemx --kernel-version
@opindex -v
@opindex --kernel-version
@cindex kernel version
@cindex version of kernel
@c Print the kernel version.
@c 
カーネルのバージョンを出力します．

@end table

@exitstatus


@node hostname invocation
@c @section @command{hostname}: Print or set system name
@section @command{hostname}: システム名の出力や設定

@pindex hostname
@cindex setting the hostname
@cindex printing the hostname
@cindex system name, printing
@cindex appropriate privileges

@c With no arguments, @command{hostname} prints the name of the current host
@c system.  With one argument, it sets the current host name to the
@c specified string.  You must have appropriate privileges to set the host
@c name. Synopsis:
@c 
引数が無い場合，@command{hostname}は現在のホストシステムの名前を出力し
ます．一つの引数を用いた場合，それは現在のホスト名を指定された文字列に
設定します．ホスト名の設定には適切な特権が必要です．概要です．

@example
hostname [@var{name}]
@end example

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは，@option{--help}と@option{--version}だけです．
@xref{Common options}.

@exitstatus


@node hostid invocation
@c @section @command{hostid}: Print numeric host identifier.
@section @command{hostid}: 数値でホストの識別子を出力

@pindex hostid
@cindex printing the host identifier

@c @command{hostid} prints the numeric identifier of the current host
@c in hexadecimal.  This command accepts no arguments.
@c The only options are @option{--help} and @option{--version}.
@c @xref{Common options}.
@c 
@command{hostid}は，現在のホストの数値の識別子を16進数で出力します．こ
のコマンドは引数を受け入れません．オプションは@option{--help}と
@option{--version}だけです．@xref{Common options}.

@c For example, here's what it prints on one system I use:
@c 
例えば，私が使用しているシステムでは，以下のように出力されます．

@example
$ hostid
1bac013d
@end example

@c On that system, the 32-bit quantity happens to be closely
@c related to the system's Internet address, but that isn't always
@c the case.
@c 
このシステムでは，システムのInternetアドレスに関連した32ビットの数値に
たまたまなっていますが，常にそうだというわけではありません．

@exitstatus


@node Modified command invocation
@c @chapter Modified command invocation
@chapter 修正されたコマンドの呼び出し

@cindex modified command invocation
@cindex invocation of commands, modified
@cindex commands for invoking other commands

@c This section describes commands that run other commands in some context
@c different than the current one: a modified environment, as a different
@c user, etc.
@c 
このセクションは，現在と異なる状況で他のコマンドを実行するコマンドを記
述します．異なるユーザとして環境を変更するなどです．

@menu
* chroot invocation::           Modify the root directory.
* env invocation::              Modify environment variables.
* nice invocation::             Modify scheduling priority.
* nohup invocation::            Immunize to hangups.
* su invocation::               Modify user and group id.
@end menu


@node chroot invocation
@c @section @command{chroot}: Run a command with a different root directory
@section @command{chroot}: 異なるルートディレクトリでコマンドを実行

@pindex chroot
@cindex running a program in a specified root directory
@cindex root directory, running a program in a specified

@c @command{chroot} runs a command with a specified root directory.
@c On many systems, only the super-user can do this.
@c Synopses:
@c 
@command{chroot}は，指定されたルートディレクトリでコマンドを実行します．
多くのシステムでは，スーパーユーザのみこれが可能です．概要です．

@example
chroot @var{newroot} [@var{command} [@var{args}]@dots{}]
chroot @var{option}
@end example

@c Ordinarily, filenames are looked up starting at the root of the
@c directory structure, i.e., @file{/}.  @command{chroot} changes the root to
@c the directory @var{newroot} (which must exist) and then runs
@c @var{command} with optional @var{args}.  If @var{command} is not
@c specified, the default is the value of the @env{SHELL} environment
@c variable or @command{/bin/sh} if not set, invoked with the @option{-i} option.
@c 
通常ファイル名は，ディレクトリ構造のルート，すなわち@file{/}を起点とし
て調べられます．@command{chroot}は，ルートを@var{newroot}ディレクトリ
(存在する必要があります)に変更し，オプションの@var{args}を用いて
@var{command}を実行します．@var{command}が指定されていない場合，デフォ
ルトは，@env{SHELL}環境変数や，設定されていない場合は@code{/bin/sh}の
値が，@option{-i}オプションで呼び出されます．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}だけです．@xref{Common
options}.

@c Here are a few tips to help avoid common problems in using chroot.
@c To start with a simple example, make @var{command} refer to a statically
@c linked binary.  If you were to use a dynamically linked executable, then
@c you'd have to arrange to have the shared libraries in the right place under
@c your new root directory.
@c 
@command{chroot}の使用にあたり，一般的な問題を避ける手助けとなるヒント
がいくつかあります．単純な例を始めるため，@var{command}はスタティック
リンクされているバイナリだと仮定します．ダイナミックリンクされている実
行形式を使用している場合，共有ライブラリを新しいルートディレクトリの正
しい位置に配置する必要があります．

@c For example, if you create a statically linked `ls' executable,
@c and put it in /tmp/empty, you can run this command as root:
@c 
例えば，スタティックリンクの@command{ls}の実行形式を作成し，
@file{/tmp/empty}に配置した場合，以下のコマンドをrootで実行することが
可能です．

@example
$ chroot /tmp/empty /ls -Rl /
@end example

@c Then you'll see output like this:
@c 
出力は以下のようになります．

@example
/:
total 1023
-rwxr-xr-x  1 0 0 1041745 Aug 16 11:17 ls
@end example

@c If you want to use a dynamically linked executable, say @command{bash},
@c then first run @samp{ldd bash} to see what shared objects it needs.
@c Then, in addition to copying the actual binary, also copy the listed
@c files to the required positions under your intended new root directory.
@c Finally, if the executable requires any other files (e.g., data, state,
@c device files), copy them into place, too.
@c 
@command{bash}のような，ダイナミックリンクされている実行形式を使用した
い場合，最初に必要な共有オブジェクトを見つけるため@samp{ldd bash}を実
行してください．そして，実際のバイナリをコピーし，新しいルートディレク
トリの要求される場所に，リストアップされているファイルもコピーして下さ
い．最後に，実行形式が要求するすべてのファイルも(例えば，データ，ステー
ト，デバイスファイル)，必要な場所にコピーして下さい．

@cindex exit status of @command{chroot}
@c Exit status:
@c 
終了ステータスです．
@display
@c 1   if @command{chroot} itself fails
@c 126 if @var{command} is found but cannot be invoked
@c 127 if @var{command} cannot be found
@c the exit status of @var{command} otherwise
@c 
1   @command{chroot}自身が失敗した場合．
126 @var{command}は見つかったが，呼出しできない場合．
127 @var{command}が見つからない場合．
それ以外は@var{command}の終了ステータスになります．
@end display


@node env invocation
@c @section @command{env}: Run a command in a modified environment
@section @command{env}: 変更された環境変数でコマンドを実行

@pindex env
@cindex environment, running a program in a modified
@cindex modified environment, running a program in a
@cindex running a program in a modified environment

@c @command{env} runs a command with a modified environment.  Synopses:
@c 
@command{env}は，変更された環境変数でコマンドを実行します．概要です．

@example
env [@var{option}]@dots{} [@var{name}=@var{value}]@dots{} @c
[@var{command} [@var{args}]@dots{}]
env
@end example

@c Arguments of the form @samp{@var{variable}=@var{value}} set
@c the environment variable @var{variable} to value @var{value}.
@c @var{value} may be empty (@samp{@var{variable}=}).  Setting a variable
@c to an empty value is different from unsetting it.
@c 
@samp{@var{variable}=@var{value}}の形式の引数は，環境変数
@var{variable}を値@var{value}に設定します．@var{value}は空にもできます
(@samp{@var{variable}=})．変数を空の値に設定することは，アンセットする
こととは異なります．

@vindex PATH
@c The first remaining argument specifies the program name to invoke; it is
@c searched for according to the @env{PATH} environment variable.  Any
@c remaining arguments are passed as arguments to that program.
@c 
残りの最初の引数は，呼び出すプログラム名を指定します．それは@env{PATH} 
環境変数で検索されます．あらゆる残りの引数は，引数としてそのプログラム
に渡されます．

@cindex environment, printing

@c If no command name is specified following the environment
@c specifications, the resulting environment is printed.  This is like
@c specifying a command name of @command{printenv}.
@c 
環境変数指定に続いてコマンド名が指定されていない場合，結果となる環境変
数が出力されます．これは，@command{printenv}のコマンド名を指定すること
に似ています．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp

@item -u @var{name}
@itemx --unset=@var{name}
@opindex -u
@opindex -unset
@c Remove variable @var{name} from the environment, if it was in the
@c environment.
@c 
変数@var{name}が環境変数の場合，それを環境変数から削除します．

@item -
@itemx -i
@itemx --ignore-environment
@opindex -
@opindex -i
@opindex --ignore-environment
@c Start with an empty environment, ignoring the inherited environment.
@c 
継承された環境変数を無視して，空の環境変数を用いて開始します．

@end table

@cindex exit status of @command{env}
@c Exit status:
@c 
終了ステータスです．
@display
@c 0   if no @var{command} is specified and the environment is output
@c 1   if @command{env} itself fails
@c 126 if @var{command} is found but cannot be invoked
@c 127 if @var{command} cannot be found
@c the exit status of @var{command} otherwise
@c 
0    @var{command}が指定されておらず，環境変数が出力される場合．
1   @command{env}自身が失敗した場合．
126 @var{command}は見つかったが，呼出しできない場合．
127 @var{command}が見つからない場合．
それ以外は@var{command}の終了ステータスになります．
@end display


@node nice invocation
@c @section @command{nice}: Run a command with modified scheduling priority
@section @command{nice}: 変更されたスケジュール優先順位でコマンドを実行

@pindex nice
@cindex modifying scheduling priority
@cindex scheduling priority, modifying
@cindex priority, modifying
@cindex appropriate privileges

@c @command{nice} prints or modifies the scheduling priority of a job.
@c Synopsis:
@c 
@command{nice}は，ジョブのスケジュールの優先順位を出力または変更します．
概要です．

@example
nice [@var{option}]@dots{} [@var{command} [@var{arg}]@dots{}]
@end example

@c If no arguments are given, @command{nice} prints the current scheduling
@c priority, which it inherited.  Otherwise, @command{nice} runs the given
@c @var{command} with its scheduling priority adjusted.  If no
@c @var{adjustment} is given, the priority of the command is incremented by
@c 10.  You must have appropriate privileges to specify a negative
@c adjustment.  The priority can be adjusted by @command{nice} over the range
@c of -20 (the highest priority) to 19 (the lowest).
@c 
引数が与えられていない場合，@command{nice}は現在のスケジュールの優先順
位を出力し，それは継承されます．それ以外の場合，@command{nice}は，与え
られたコマンドをそのスケジュール優先順位を調整しながら実行します．
@var{adjustment}が与えられていない場合，コマンドの優先順位は10増加しま
す．負の調整を指定するためには適切な特権が必要です．@command{nice}が調
整可能な優先順位は，-20(最優先)から19(最低)までです．

@cindex conflicts with shell built-ins
@cindex built-in shell commands, conflicts with
@c Because most shells have a built-in command by the same name, using the
@c unadorned command name in a script or interactively may get you
@c different functionality than that described here.
@c 
ほとんどのシェルには同じ名前のシェル組み込みコマンドがあるので，装飾な
しのスクリプトのコマンド名や対話的に使用すると，ここで記述されていない
異なる機能となる可能性があります．

@c The program accepts the following option.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションも受け入れます．@ref{Common options}も参照
してください．

@table @samp
@item -n @var{adjustment}
@itemx --adjustment=@var{adjustment}
@opindex -n
@opindex --adjustment
@c Add @var{adjustment} instead of 10 to the command's priority.
@c 
コマンドの優先順位に，10の代わりに@var{adjustment}を加えます．

@c On older systems, @command{nice} supports an obsolete option
@c @option{-@var{adjustment}}.  @acronym{POSIX} 1003.1-2001 (@pxref{Standards
@c conformance}) does not allow this; use @option{-n @var{adjustment}}
@c instead.
@c 
古いシステムでは，@command{nice}は時代遅れのオプション
@option{-@var{adjustment}}をサポートしています．@acronym{POSIX}
1003.1-2001 (@pxref{Standards conformance})では，これを許可していませ
ん．代わりに@option{-n @var{adjustment}}を使用してください．

@end table

@cindex exit status of @command{nice}
@c Exit status:
@c 
終了ステータスです．
@display
@c 0   if no @var{command} is specified and the current priority is output
@c 1   if @command{nice} itself fails
@c 126 if @var{command} is found but cannot be invoked
@c 127 if @var{command} cannot be found
@c the exit status of @var{command} otherwise
@c 
0    @var{command}が指定されておらず，現在の優先順位が出力される場合．
1   @command{nice}自身が失敗した場合．
126 @var{command}は見つかったが，呼出しできない場合．
127 @var{command}が見つからない場合．
それ以外は@var{command}の終了ステータスになります．
@end display

@c It is sometimes useful to run non-interactive programs with reduced priority.
@c 
優先順位を下げて対話的ではないプログラムを実行することが，役に立つ事も
あります．

@example
$ nice factor `echo '2^997 - 1'|bc`
@end example

@c Since @command{nice} prints the current priority,
@c we can invoke it through itself to demonstrate how it works:
@c 
@command{nice}は現在の優先順位を出力するので，動作状態を検証するために
呼び出すことも可能です．

@c The default behavior is to reduce priority by @samp{10}.
@c 
デフォルトの動作では，優先順位を@samp{10}下げます．

@example
$ nice nice
10
@end example

@example
$ nice -n 10 nice
10
@end example

@c The @var{adjustment} is relative to the current priority.
@c Here, the first @command{nice} invocation runs the second one at priority
@c @samp{10}, and it in turn runs the final one at a priority lowered by
@c @samp{3} more.
@c 
@var{adjustment}は，現在の優先順位に相対的なものになります．ここで，最
初の@command{nice}の呼び出しで，二番目の@command{nice}の優先順位を
@samp{10}下げて，最終的にその優先順位をさらに@samp{3}下げるように実行
します．

@example
$ nice nice -n 3 nice
13
@end example

@c Specifying a priority larger than @samp{19} is the same as specifying @samp{19}.
@c 
優先順位を@samp{19}以上に指定することは，@samp{19}に指定することと同じ
になります．

@example
$ nice -n 30 nice
19
@end example

@c Only a privileged user may run a process with higher priority.
@c 
特権ユーザだけが，より高い優先順位でプロセスを実行することが可能です．

@example
$ nice -n -1 nice
nice: cannot set priority: Permission denied
$ sudo nice -n -1 nice
-1
@end example


@node nohup invocation
@c section @command{nohup}: Run a command immune to hangups
@section @command{nohup}: ハングアップを免除したコマンドの実行

@pindex nohup
@cindex hangups, immunity to
@cindex immunity to hangups
@cindex logging out and continuing to run

@flindex nohup.out
@c @command{nohup} runs the given @var{command} with hangup signals ignored,
@c so that the command can continue running in the background after you log
@c out. Synopsis:
@c 
@command{nohup}は，ログアウト後にバックグランドでコマンドを実行し続け
ることを可能にするため，ハングアップシグナルを無視して，与えられたコマ
ンドを実行します．概要です．

@example
nohup @var{command} [@var{arg}]@dots{}
@end example

@flindex nohup.out
@c If standard output is a terminal, it is redirected so that it is appended
@c to the file @file{nohup.out}; if that cannot be written to, it is appended
@c to the file @file{$HOME/nohup.out}.  If that cannot be written to, the
@c command is not run.
@c If standard output is not a terminal, then the standard output of
@c @var{command} will be the same as that of @command{nohup}.
@c 
標準出力が端末の場合，ファイル@file{nohup.out}に追加するようにリダイレ
クトされます．書き込み不可能な場合，それらはファイル
@file{$HOME/nohup.out}に追加します．それも書き込み不可能な場合，コマン
ドは実行されません．標準出力が端末の場合，@var{command}の標準出力は
@command{nohup}のものと同じになります．

@c If @command{nohup} creates either @file{nohup.out} or
@c @file{$HOME/nohup.out}, it creates it with no ``group'' or ``other''
@c access permissions.  It does not change the permissions if the output
@c file already existed.
@c 
@command{nohup}が@file{nohup.out}や@file{$HOME/nohup.out}を作成する場
合，``group''や``other''のアクセス許可を用いてそれを作成しません．出力
ファイルが既存の場合は，その許可を変更しません．

@c If standard error is a terminal, it is redirected to the same file
@c descriptor as the standard output.
@c 
標準エラー出力が端末の場合，標準出力と同じファイルデスクリプタにリダイ
レクトされます．

@c @command{nohup} does not automatically put the command it runs in the
@c background; you must do that explicitly, by ending the command line
@c with an @samp{&}.  Also, @command{nohup} does not change the
@c scheduling priority of @var{command}; use @command{nice} for that,
@c e.g., @samp{nohup nice @var{command}}.
@c 
@command{nohup}は，バックグランドで実行するようにするコマンドを，自動
的に書き出しません．コマンド行の終りに@samp{&}を用いて，明示する必要が
あります．また，@command{nohup}は@var{command}のスケジュールの優先順位
を変更しません．そうするために@command{nice}コマンドを，例えば
@samp{nohup nice @var{command}}のように使用して下さい．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}のみです．@xref{Common
options}.

@cindex exit status of @command{nohup}
@c Exit status:
@c 
終了ステータスです．

@display
@c 126 if @var{command} is found but cannot be invoked
@c 127 if @command{nohup} itself fails or if @var{command} cannot be found
@c the exit status of @var{command} otherwise
@c 
126 @var{command}は見つかるが，呼び出せなかった場合．
127 @command{nohup}自身が異常終了した，または，@var{command}が見つからない．
それ以外は，@var{command}の終了ステータスです．
@end display


@node su invocation
@c @section @command{su}: Run a command with substitute user and group id
@section @command{su}: 適切なユーザとグループidを用いてコマンドを実行

@pindex su
@cindex substitute user and group ids
@cindex user id, switching
@cindex super-user, becoming
@cindex root, becoming

@c @command{su} allows one user to temporarily become another user.  It runs a
@c command (often an interactive shell) with the real and effective user
@c id, group id, and supplemental groups of a given @var{user}. Synopsis:
@c 
@command{su}は，あるユーザが一時的に他のユーザになることを可能にします．
それは実際の実効ユーザidと，与えられた@var{user}の追加グループでコマン
ドを(しばしば対話的シェルで)実行します．概要です．

@example
su [@var{option}]@dots{} [@var{user} [@var{arg}]@dots{}]
@end example

@cindex passwd entry, and @command{su} shell
@flindex /bin/sh
@flindex /etc/passwd
@c If no @var{user} is given, the default is @code{root}, the super-user.
@c The shell to use is taken from @var{user}'s @code{passwd} entry, or
@c @file{/bin/sh} if none is specified there.  If @var{user} has a
@c password, @command{su} prompts for the password unless run by a user with
@c effective user id of zero (the super-user).
@c 
@var{user}が与えられない場合，デフォルトは@code{root}のスーパーユーザ
です．使用するシェルは，@var{user}の@code{passwd}の項目から得られたも
の，または，そこで指定されていない場合は@file{/bin/sh}を使用します．
@var{user}にパスワードがある場合，実行ユーザidがゼロ(スーパーユーザ) 
の実行でなければ，@command{su}はパスワードの入力を促します．

@vindex HOME
@vindex SHELL
@vindex USER
@vindex LOGNAME
@cindex login shell
@c By default, @command{su} does not change the current directory.
@c It sets the environment variables @env{HOME} and @env{SHELL}
@c from the password entry for @var{user}, and if @var{user} is not
@c the super-user, sets @env{USER} and @env{LOGNAME} to @var{user}.
@c By default, the shell is not a login shell.
@c 
デフォルトで，@command{su}はカレントディレクトリを変更しません．それは
環境変数@env{HOME}と@env{SHELL}を@var{user}のパスワード項目から設定し，
@var{user}がスーパーユーザでない場合，@env{USER}と@env{LOGNAME}を
@var{user}に設定します．デフォルトでシェルはログインシェルではありませ
ん．

@c Any additional @var{arg}s are passed as additional arguments to the
@c shell.
@c 
追加の@var{arg}は，シェルへの追加の引数として与えられます．

@cindex @option{-su}
@c GNU @command{su} does not treat @file{/bin/sh} or any other shells specially
@c (e.g., by setting @code{argv[0]} to @option{-su}, passing @option{-c} only
@c to certain shells, etc.).
@c 
GNU @command{su}は，@file{/bin/sh}や他の特殊なものを扱いません(例えば，
@code{argv[0]}を@option{-su}に設定する，@option{-c}を特定のシェルに渡
す等です)．

@findex syslog
@c @command{su} can optionally be compiled to use @code{syslog} to report
@c failed, and optionally successful, @command{su} attempts.  (If the system
@c supports @code{syslog}.)  However, GNU @command{su} does not check if the
@c user is a member of the @code{wheel} group; see below.
@c 
@command{su}は，@command{su}の試みに対する失敗と，追加で成功を報告する
ために，@code{syslog}を使用するようにコンパイルすることが可能です．(シ
ステムが@code{syslog}をサポートしている場合です．)しかし，GNU
@command{su}は，ユーザが@code{wheel}グループのメンバーかどうか調査しま
せん．以下を参照してください．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは，以下のオプションを受け入れます．@ref{Common options}も参
照してください．

@table @samp
@item -c @var{command}
@itemx --command=@var{command}
@opindex -c
@opindex --command
@c Pass @var{command}, a single command line to run, to the shell with
@c a @option{-c} option instead of starting an interactive shell.
@c 
単一のコマンドラインで実行する@var{command}を，対話的シェルを開始する
代わりに，@option{-c}オプションを用いて渡します．

@item -f
@itemx --fast
@opindex -f
@opindex --fast
@flindex .cshrc
@cindex file name pattern expansion, disabled
@cindex globbing, disabled
@c Pass the @option{-f} option to the shell.  This probably only makes sense
@c if the shell run is @command{csh} or @command{tcsh}, for which the @option{-f}
@c option prevents reading the startup file (@file{.cshrc}).  With
@c Bourne-like shells, the @option{-f} option disables file name pattern
@c expansion (globbing), which is not likely to be useful.
@c 
シェルに@option{-f}オプションを渡します．これはおそらく，シェルの実行
が@code{csh}や@code{tcsh}の場合にのみ意味があり，それらに対する
@option{-f}オプションは，スタートアップファイル(@file{.cshrc})の読み込
みを妨げます．Bourneのようなシェルを用いた場合，@option{-f}オプション
はファイル名のパターン拡張(glob)を利用不可能にし，それは役に立つとは思
えません．

@item -
@itemx -l
@itemx --login
@opindex -
@opindex -l
@opindex --login
@c other variables already indexed above
@vindex TERM
@vindex PATH
@cindex login shell, creating
@c Make the shell a login shell.  This means the following.  Unset all
@c environment variables except @env{TERM}, @env{HOME}, and @env{SHELL}
@c (which are set as described above), and @env{USER} and @env{LOGNAME}
@c (which are set, even for the super-user, as described above), and set
@c @env{PATH} to a compiled-in default value.  Change to @var{user}'s home
@c directory.  Prepend @samp{-} to the shell's name, intended to make it
@c read its login startup file(s).
@c 
シェルをログインシェルにします．これは以下のことを意味します．
@env{TERM}，@env{HOME}，そして@env{SHELL}(上記で記述されるように設定さ
れている)，そして@env{USER}と@env{LOGNAME}(スーパーユーザでも，上記で
記述されるように設定されている)以外の，すべての環境変数をアンセットし，
@env{PATH}を組み込まれているデフォルト値に設定します．@var{user}のホー
ムディレクトリに変更します．ログインスタートアップファイルを読み込ませ
るために，@samp{-}をシェルの名前の前に前置してください．

@item -m
@itemx -p
@itemx --preserve-environment
@opindex -m
@opindex -p
@opindex --preserve-environment
@cindex environment, preserving
@flindex /etc/shells
@cindex restricted shell
@c Do not change the environment variables @env{HOME}, @env{USER},
@c @env{LOGNAME}, or @env{SHELL}.  Run the shell given in the environment
@c variable @env{SHELL} instead of the shell from @var{user}'s passwd
@c entry, unless the user running @command{su} is not the superuser and
@c @var{user}'s shell is restricted.  A @dfn{restricted shell} is one that
@c is not listed in the file @file{/etc/shells}, or in a compiled-in list
@c if that file does not exist.  Parts of what this option does can be
@c overridden by @option{--login} and @option{--shell}.
@c 
環境変数@env{HOME}，@env{USER}，@env{LOGNAME}，または@env{SHELL}を変更
しません．@command{su}を実行しているユーザがスーパーユーザで，
@var{user}のシェルが制限されていない場合は，@var{user}のパスワード項目
から得られるシェルの代わりに，環境変数@env{SHELL}で与えられたシェルを
実行します．@dfn{制限されているシェル(restricted shell)}とは，ファイル
@file{/etc/shells}や，そのファイルが存在しない場合は組み込みリストにリ
ストアップされていないものです．このオプションが行うことの一部は，
@option{--login}と@option{--shell}で優先することが可能です．

@item -s @var{shell}
@itemx --shell=@var{shell}
@opindex -s
@opindex --shell
@c Run @var{shell} instead of the shell from @var{user}'s passwd entry,
@c unless the user running @command{su} is not the superuser and @var{user}'s
@c shell is restricted (see @option{-m} just above).
@c 
@command{su}を実行しているユーザがスーパーユーザで，@var{user}のシェル
が限定されていない(真上の@option{-m}を参照してください)場合は，
@var{user}のパスワード項目から得られるシェルの代わりに，@var{shell}を
実行します．

@end table

@cindex exit status of @command{su}
@c Exit status:
@c 
終了ステータスです．

@display
@c 1   if @command{su} itself fails
@c 126 if subshell is found but cannot be invoked
@c 127 if subshell cannot be found
@c the exit status of the subshell otherwise
@c 
1   @command{su}自身が失敗した場合．
126 サブシェルは見つかったが，呼出しできない場合．
127 サブシェルが見つからない場合．
それ以外では，サブシェルの終了ステータスになります．
@end display

@cindex wheel group, not supported
@cindex group wheel, not supported
@cindex fascism
@c @subsection Why GNU @command{su} does not support the @samp{wheel} group
@subsection GNU @command{su}が@samp{wheel}グループをサポートしない理由

@c (This section is by Richard Stallman.)
@c 
(このセクションは，Richard Stallmanが作成しました．)

@cindex Twenex
@cindex MIT AI lab
@c Sometimes a few of the users try to hold total power over all the
@c rest.  For example, in 1984, a few users at the MIT AI lab decided to
@c seize power by changing the operator password on the Twenex system and
@c keeping it secret from everyone else.  (I was able to thwart this coup
@c and give power back to the users by patching the kernel, but I
@c wouldn't know how to do that in Unix.)
@c 
数人のユーザが，残り全員以上の総合的な権力を持ちたいと思うときもありま
す．例えば，1984年に，MIT AI labの数人のユーザが，Twenexシステムのオペ
レータパスワードを変更し，他の全員に秘密にし続けることで，権力を占有し
ようとしました．(私は，このクーデターを妨害し，カーネルにパッチを行い
ユーザに力を取り戻させようとしましたが，Unixでそうする方法を知りません
でした．)

@c However, occasionally the rulers do tell someone.  Under the usual
@c @command{su} mechanism, once someone learns the root password who
@c sympathizes with the ordinary users, he or she can tell the rest.  The
@c ``wheel group'' feature would make this impossible, and thus cement the
@c power of the rulers.
@c 
しかし，支配者がだれかに告げることもあります．通常の@command{su}メカニ
ズムでは，一旦，普通のユーザに同情する誰かが，ルートのパスワードを知る
と，彼または彼女は残りを伝えることができます．``wheel group''の特徴は，
これを不可能にし，そのため支配者の権力は固まります．

@c I'm on the side of the masses, not that of the rulers.  If you are
@c used to supporting the bosses and sysadmins in whatever they do, you
@c might find this idea strange at first.
@c 
私は多数の味方で支配者の味方ではありません．ボスとシスアドのあらゆる作
業をサポートすることに慣れている場合，最初にこの考えが奇妙だと分かるこ
とでしょう．


@node Process control
@c @chapter Process control
@chapter プロセス制御

@cindex processes, commands for controlling
@cindex commands for controlling processes

@menu
* kill invocation::             Sending a signal to processes.
@end menu


@node kill invocation
@c @section @command{kill}: Send a signal to processes
@section @command{kill}: プロセスにシグナルを送る

@pindex kill
@cindex send a signal to processes

@c The @command{kill} command sends a signal to processes, causing them
@c to terminate or otherwise act upon receiving the signal in some way.
@c Alternatively, it lists information about signals.  Synopses:
@c 
@command{kill}コマンドは，プロセスにシグナルを送り終了させたり，それ以
外では，シグナルを受け取らせて何らかの動作をさせます．また，シグナルの
情報をリストアップします．概要です．

@example
kill [-s @var{signal} | --signal @var{signal} | -@var{signal}] @var{pid}@dots{}
kill [-l | --list | -t | --table] [@var{signal}]@dots{}
@end example

@c The first form of the @command{kill} command sends a signal to all
@c @var{pid} arguments.  The default signal to send if none is specified
@c is @samp{TERM}.  The special signal number @samp{0} does not denote a
@c valid signal, but can be used to test whether the @var{pid} arguments
@c specify processes to which a signal could be sent.
@c 
@command{kill}コマンドの最初の形式は，すべての@var{pid}引数にシグナル
を送ります．何も指定されていない場合のデフォルトのシグナルは
@samp{TERM}です．特別なシグナル番号@samp{0}で有効なシグナルを表示し，
さらに，@var{pid}引数がシグナルを送ることが可能なプロセスを指定してい
るかどうかを調査するために使用することが可能です．

@c If @var{pid} is positive, the signal is sent to the process with the
@c process id @var{pid}.  If @var{pid} is zero, the signal is sent to all
@c processes in the process group of the current process.  If @var{pid}
@c is -1, the signal is sent to all processes for which the user has
@c permission to send a signal.  If @var{pid} is less than -1, the signal
@c is sent to all processes in the process group that equals the absolute
@c value of @var{pid}.
@c 
@var{pid}が正の場合，シグナルはプロセスid @var{pid}とともにプロセスに
送られます．@var{pid}がゼロの場合，現在のプロセスのプロセスグループの
すべてのプロセスにシグナルが送られます．@var{pid}が@samp{-1}の場合，ユー
ザがシグナルを送る許可を持つすべてのプロセスにシグナルが送られます．
@var{pid}が@samp{-1}より小さい場合，@var{pid}の絶対値と同じプロセスグ
ループのすべてのプロセスにシグナルが送られます．

@c If @var{pid} is not positive, a system-dependent set of system
@c processes is excluded from the list of processes to which the signal
@c is sent.
@c 
@var{pid}が負の場合，システムプロセスのシステムに依存するセットは，シ
グナルを送るプロセスのリストから除外されます．

@c If a negative @var{PID} argument is desired as the first one, either a
@c signal must be specified as well, or the option parsing
@c must be interrupted with `--' before the first @var{pid} argument.
@c The following three commands are equivalent:
@c 
負の@var{PID}引数が最初のものとして設計されている場合，シグナルも同様
に指定する必要があること，または最初の@var{pid}引数の前に`--'が使用さ
れていると解釈する必要があることのいずれかになります．以下の三つのコマ
ンドは等価です．

@example
kill -15 -1
kill -TERM -1
kill -- -1
@end example

@c The first form of the @command{kill} command succeeds if every @var{pid}
@c argument specifies at least one process that the signal was sent to.
@c 
@command{kill}コマンドの最初の形式は，すべての@var{pid}引数が少なくと
も一つのシグナルが送られたプロセスを指定している場合，コマンドは成功し
ます．

@c The second form of the @command{kill} command lists signal information.
@c Either the @option{-l} or @option{--list} option, or the @option{-t}
@c or @option{--table} option must be specified.  Without any
@c @var{signal} argument, all supported signals are listed.  The output
@c of @option{-l} or @option{--list} is a list of the signal names, one
@c per line; if @var{signal} is already a name, the signal number is
@c printed instead.  The output of @option{-t} or @option{--table} is a
@c table of signal numbers, names, and descriptions.  This form of the
@c @command{kill} command succeeds if all @var{signal} arguments are valid
@c and if there is no output error.
@c 
@command{kill}コマンドの二番目の形式では，シグナルの情報がリストアップ
されます．@option{-l}や@option{--list}オプション，または@option{-t}や
@option{--table}オプションのどちらかを指定する必要があります．
@var{signal}引数を用いていないと，サポートされるすべてのシグナルがリス
トアップされます．@option{-l}や@option{--list}の出力は，一行単位のシグ
ナル名のリストです．@var{signal}に名前がある場合，シグナル番号が代わり
に出力されます．@option{-t}や@option{--table}の出力は，シグナル番号，
名前，そしてその説明の表です．この@command{kill}コマンドの形式では，す
べての@var{signal}引数が有効で，出力エラーが無い場合は成功します．

@c The @command{kill} command also supports the @option{--help} and
@c @option{--version} options.  @xref{Common options}.
@c 
@command{kill}コマンドは，@option{--help}と@option{--version}オプショ
ンもサポートしています．@xref{Common options}.

@c A @var{signal} may be a signal name like @samp{HUP}, or a signal
@c number like @samp{1}, or an exit status of a process terminated by the
@c signal.  A signal name can be given in canonical form or prefixed by
@c @samp{SIG}.  The case of the letters is ignored, except for the
@c @option{-@var{signal}} option which must use upper case to avoid
@c ambiguity with lower case option letters.  The following signal names
@c and numbers are supported on all @acronym{POSIX} compliant systems:
@c 
@var{signal}は，@samp{HUP}のようなシグナル名，そして@samp{1}のようなシ
グナル番号，そしてシグナルで終了したときの終了ステータスのいずれでもか
まいません．シグナル名は，標準的な形式，または@samp{SIG}が前置されてい
るもので渡すことが可能です．大文字小文字は無視しますが，
@option{-@var{signal}} オプションでは小文字のオプション文字では不明瞭
になるのを避けるため，大文字を使用する必要があります．以下のシグナル名
と番号は，すべての@acronym{POSIX}互換システムでサポートされています．

@table @samp
@item HUP
@c 1.  Hangup.
@c 
1.  ハングアップ．
@item INT
@c 2.  Terminal interrupt.
@c 
2.  端末割り込み．
@item QUIT
@c 3.  Terminal quit.
@c 
3.  端末終了．
@item ABRT
@c 6.  Process abort.
@c 
6.  プロセスの異常終了．
@item KILL
@c 9.  Kill (cannot be caught or ignored).
@c 
9.  キル(キャッチも無視も不可能).
@item ALRM
@c 14.  Alarm Clock.
@c 
14.  目覚し時計．
@item TERM
@c 15.  Termination.
@c 
15.  終了．
@end table

@noindent
@c Other supported signal names have system-dependent corresponding
@c numbers.  All systems conforming to @acronym{POSIX} 1003.1-2001 also
@c support the following signals:
@c 
その他のサポートされているシグナル名には，システムに依存した対応番号が
あります．@acronym{POSIX} 1003.1-2001に準拠しているすべてのシステムで
は，以下のシグナルもサポートしています．

@table @samp
@item BUS
@c Access to an undefined portion of a memory object.
@c 
メモリオブジェクトの未定義の場所のアクセス．
@item CHLD
@c Child process terminated, stopped, or continued.
@c 
子プロセスの終了，停止，または継続．
@item CONT
@c Continue executing, if stopped.
@c 
停止されている場合，継続した実行．
@item FPE
@c Erroneous arithmetic operation.
@c 
間違っている算術処理．
@item ILL
@c Illegal Instruction.
@c 
不正な命令．
@item PIPE
@c Write on a pipe with no one to read it.
@c 
誰も読みこまないパイプへの書き込み．
@item SEGV
@c Invalid memory reference.
@c 
無効なメモリ参照．
@item STOP
@c Stop executing (cannot be caught or ignored).
@c 
実行しているものの停止(キャッチも無視も不可能).
@item TSTP
@c Terminal stop.
@c 
端末の停止．
@item TTIN
@c Background process attempting read.
@c 
バックグラウンドプロセスへの読み込みテスト．
@item TTOU
@c Background process attempting write.
@c 
バックグランドプロセスへの書き込みテスト．
@item URG
@c High bandwidth data is available at a socket.
@c 
ソケットへの高帯域データの利用可能．
@item USR1
@c User-defined signal 1.
@c 
ユーザ定義シグナル1．
@item USR2
@c User-defined signal 2.
@c 
ユーザ定義シグナル1．
@end table

@noindent
@c @acronym{POSIX} 1003.1-2001 systems that support the @acronym{XSI} extension
@c also support the following signals:
@c 
@acronym{XSI}の拡張をサポートしている@acronym{POSIX} 1003.1-2001システ
ムでは，以下のシグナルもサポートしています．

@table @samp
@item POLL
@c Pollable event.
@c 
イベントのポーリング．
@item PROF
@c Profiling timer expired.
@c 
タイムアウトのポーリング．
@item SYS
@c Bad system call.
@c 
間違ったシステムコール．
@item TRAP
@c Trace/breakpoint trap.
@c 
トラップの追跡/ブレークポイント．
@item VTALRM
@c Virtual timer expired.
@c 
仮想タイマーのタイムアウト．
@item XCPU
@c CPU time limit exceeded.
@c 
CPU時間の制限の超過．
@item XFSZ
@c File size limit exceeded.
@c 
ファイルサイズ制限の超過．
@end table

@noindent
@c @acronym{POSIX} 1003.1-2001 systems that support the @acronym{XRT} extension
@c also support at least eight real-time signals called @samp{RTMIN},
@c @samp{RTMIN+1}, @dots{}, @samp{RTMAX-1}, @samp{RTMAX}.
@c 
@acronym{XRT}の拡張をサポートしている@acronym{POSIX} 1003.1-2001システ
ムでは，，少なくとも@samp{RTMIN}，@samp{RTMIN+1}，@dots{}，
@samp{RTMAX-1}，@samp{RTMAX}といった八個のリアルタイムシグナルもサポー
トしています．


@node Delaying
@c @chapter Delaying
@chapter 遅延

@cindex delaying commands
@cindex commands for delaying

@c Perhaps @command{wait} or other commands should be described here also?

@menu
* sleep invocation::            Delay for a specified time.
@end menu


@node sleep invocation
@c @section @command{sleep}: Delay for a specified time
@section @command{sleep}: 指定した時間の遅延

@pindex sleep
@cindex delay for a specified time

@c @command{sleep} pauses for an amount of time specified by the sum of
@c the values of the command line arguments.
@c Synopsis:
@c 
@command{sleep}は，コマンドライン引数の値の合計で指定された時間，一時
停止します．概要です．

@example
sleep @var{number}[smhd]@dots{}
@end example

@cindex time units
@c Each argument is a number followed by an optional unit; the default
@c is seconds.  The units are:
@c 
それぞれの引数は，オプションの単位が続く数字です．デフォルトは秒です．
単位は以下のとおりです．

@table @samp
@item s
@c seconds
@c 
秒
@item m
@c minutes
@c 
分
@item h
@c hours
@c 
時間
@item d
@c days
@c 
日
@end table

@c Historical implementations of @command{sleep} have required that
@c @var{number} be an integer.  However, GNU @command{sleep} accepts
@c arbitrary floating point numbers (using a period before any fractional
@c digits).
@c 
歴史的に@command{sleep}の実装では，@var{number}が整数であることを要求
していました．しかし，GNU @command{sleep}は(小数部の前にピリオドを使用
している)任意の浮動小数点も受け入れます．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは@option{--help}と@option{--version}だけです．@xref{Common
options}.

@exitstatus


@node Numeric operations
@c @chapter Numeric operations
@chapter 数値処理

@cindex numeric operations
@c These programs do numerically-related operations.
@c 
以下のプログラムは数値に関する処理を行います．

@menu
* factor invocation::              Show factors of numbers.
* seq invocation::                 Print sequences of numbers.
@end menu


@node factor invocation
@c @section @command{factor}: Print prime factors
@section @command{factor}: 素因数を出力

@pindex factor
@cindex prime factors

@c @command{factor} prints prime factors.  Synopses:
@c 
@command{factor}は素因数を出力します．概要です．

@example
factor [@var{number}]@dots{}
factor @var{option}
@end example

@c If no @var{number} is specified on the command line, @command{factor} reads
@c numbers from standard input, delimited by newlines, tabs, or spaces.
@c 
コマンドラインに@var{number}が指定されない場合，@command{factor}は標準
入力から読み込み，それは，改行，タブ，またはスペースで区切られています．

@c The only options are @option{--help} and @option{--version}.  @xref{Common
@c options}.
@c 
オプションは，@option{--help}と@option{--version}のみです．
@xref{Common options}.

@c The algorithm it uses is not very sophisticated, so for some inputs
@c @command{factor} runs for a long time.  The hardest numbers to factor are
@c the products of large primes.  Factoring the product of the two largest 32-bit
@c prime numbers takes about 80 seconds of CPU time on a 1.6 GHz Athlon.
@c 
使用するアルゴリズムは，あまり洗練されたものではないので，入力によって
は@command{factor}の実行に時間がかかることがあります．@command{factor} 
にとって最も厳しいものは，大きな素数の乗数です．二つの大きな32ビットの
素数の乗数を素因数分解すると，1.6 GHz Athlonで80秒程度のCPU時間がかか
ります．

@example
$ p=`echo '4294967279 * 4294967291'|bc`
$ factor $p
18446743979220271189: 4294967279 4294967291
@end example

@c Similarly, it takes about 80 seconds for GNU factor (from coreutils-5.1.2)
@c to ``factor'' the largest 64-bit prime:
@c 
同様に，最大の64ビットの素数の``素因数分解''で，GNU @command{factor}
(coreutils-5.1.2)で80秒程度かかります．
@example
$ factor 18446744073709551557
  18446744073709551557: 18446744073709551557
@end example

@c In contrast, @command{factor} factors the largest 64-bit number in just
@c over a tenth of a second:
@c 
反対に，@command{factor}は，大きな64ビットの数字を十秒ちょっとで素因数
分解します．

@example
$ factor `echo '2^64-1'|bc`
18446744073709551615: 3 5 17 257 641 65537 6700417
@end example

@exitstatus


@node seq invocation
@c @section @command{seq}: Print numeric sequences
@section @command{seq}: 数列を出力

@pindex seq
@cindex numeric sequences
@cindex sequence of numbers

@c @command{seq} prints a sequence of numbers to standard output.  Synopses:
@c 
@command{seq}は，数字の列を標準出力に出力します．概要です．

@example
seq [@var{option}]@dots{} @var{last}
seq [@var{option}]@dots{} @var{first} @var{last}
seq [@var{option}]@dots{} @var{first} @var{increment} @var{last}
@end example

@c @command{seq} prints the numbers from @var{first} to @var{last} by
@c @var{increment}.  By default, each number is printed on a separate line.
@c When @var{increment} is not specified, it defaults to @samp{1},
@c even when @var{first} is larger than @var{last}.
@c @var{first} also defaults to @samp{1}.  So @code{seq 1} prints
@c @samp{1}, but @code{seq 0} and @code{seq 10 5} produce no output.
@c Floating-point numbers
@c may be specified (using a period before any fractional digits).
@c 
@command{seq}は，@var{first}から@var{last}まで@var{increment}おきに，
数字を出力します．デフォルトで，それぞれの数字は別々の行に出力されます．
@var{increment}が指定されていないとき，@var{first}が@var{last}より大き
いときでも，そのデフォルトは@samp{1}になります．@var{first}のデフォル
トも@samp{1}です．そのため，So @code{seq 1}は@samp{1}を出力しますが，
@code{seq 0}と@code{seq 10 5}では出力しません．(小数部の前にピリオドを
使用している)浮動小数点の数字を指定してもかまいません．

@c The program accepts the following options.  Also see @ref{Common options}.
@c 
プログラムは以下のオプションを受け入れます．@ref{Common options}も参照
してください．

@table @samp
@item -f @var{format}
@itemx --format=@var{format}
@opindex -f @var{format}
@opindex --format=@var{format}
@cindex formatting of numbers in @command{seq}
@c Print all numbers using @var{format}; default @samp{%g}.
@c @var{format} must contain exactly one of the floating point
@c output formats @samp{%e}, @samp{%f}, or @samp{%g}.
@c 
すべての数字を@var{format}を使用して出力します．デフォルトは@samp{%g} 
です．@var{format}は，標準的な浮動小数点出力書式の，@samp{%e}，
@samp{%f}，または@samp{%g}の内，ただ一つだけを含んでいる必要があります．

@item -s @var{string}
@itemx --separator=@var{string}
@cindex separator for numbers in @command{seq}
@c Separate numbers with @var{string}; default is a newline.
@c The output always terminates with a newline.
@c 
数字を@var{string}で分離します．デフォルトは改行です．出力は，常に改行
で終了します．

@item -w
@itemx --equal-width
@c Print all numbers with the same width, by padding with leading zeroes.
@c (To have other kinds of padding, use @option{--format}).
@c 
すべての数字を同じ幅で出力し，ゼロを前置してパディングします．(他の種
類のパディングをするため，@option{--format}を使用してください)．

@end table

@c If you want to use @command{seq} to print sequences of large integer values,
@c don't use the default @samp{%g} format since it can result in
@c loss of precision:
@c 
大きな整数値の列を出力するために@command{seq}を使用したい場合，精度が
悪くなるのでデフォルトの@samp{%g}書式を使用しないで下さい．

@example
$ seq 1000000 1000001
1e+06
1e+06
@end example

@c Instead, you can use the format, @samp{%1.f},
@c to print large decimal numbers with no exponent and no decimal point.
@c 
代わりに，指数も十進数の点も使用せずに十進数を出力するため，書式
@samp{%1.f}を使用することが可能です．

@example
$ seq --format=%1.f 1000000 1000001
1000000
1000001
@end example

@c If you want hexadecimal output, you can use @command{printf}
@c to perform the conversion:
@c 
16進数で出力したい場合，変換を実行するために@command{printf}を使用する
ことが可能です．

@example
$ printf %x'\n' `seq -f %1.f 1048575 1024 1050623`
fffff
1003ff
1007ff
@end example

@c For very long lists of numbers, use xargs to avoid
@c system limitations on the length of an argument list:
@c 
非常に長い数字のリストに対しては，引数リストの長さにおけるシステムの制
限を避けるため@command{xargs}を使用して下さい．

@example
$ seq -f %1.f 1000000 | xargs printf %x'\n' | tail -n 3
f423e
f423f
f4240
@end example

@c To generate octal output, use the printf @code{%o} format instead
@c of @code{%x}.  Note however that using printf works only for numbers
@c smaller than @code{2^32}:
@c 
八進数を生成するために，@code{%x}の代わりに@command{printf}の@code{%o} 
書式を使用して下さい．しかし，@command{printf}の使用は@code{2^32}未満
の整数でのみ動作することに注意して下さい．

@example
$ printf "%x\n" `seq -f %1.f 4294967295 4294967296`
ffffffff
bash: printf: 4294967296: Numerical result out of range
@end example

@c On most systems, seq can produce whole-number output for values up to
@c @code{2^53}, so here's a more general approach to base conversion that
@c also happens to be more robust for such large numbers.  It works by
@c using @code{bc} and setting its output radix variable, @var{obase},
@c to @samp{16} in this case to produce hexadecimal output.
@c 
ほとんどのシステムで，@command{seq}は最大@code{2^53}まで値ですべての数
字を生成することが可能なので，そのような大きな数をより強固に生成するた
めに，基数変換のより一般的な手法として以下のものがあります．それは，
@code{bc}を使用し，出力の基数の値を設定することで動作し，以下では16進
数の出力を行なう状況として，@var{obase}を@samp{16}にしています．

@example
$ (echo obase=16; seq -f %1.f 4294967295 4294967296)|bc
FFFFFFFF
100000000
@end example

@c Be careful when using @command{seq} with a fractional @var{increment},
@c otherwise you may see surprising results.  Most people would expect to
@c see @code{0.3} printed as the last number in this example:
@c 
@command{seq}を小数の@var{increment}で使用しているとき注意しないと，びっ
くりするような結果になる可能性があります．以下の例では，最後の値が
@code{0.3}になることを，ほとんどの人が期待するでしょう．

@example
$ seq -s' ' 0 .1 .3
0 0.1 0.2
@end example

@c But that doesn't happen on most systems because @command{seq} is
@c implemented using binary floating point arithmetic (via the C
@c @code{double} type) -- which means some decimal numbers like @code{.1}
@c cannot be represented exactly.  That in turn means some nonintuitive
@c conditions like @w{@code{.1 * 3 > .3}} will end up being true.
@c 
しかし，@command{seq}が二進数の浮動小数点(Cの@code{double}型)で計算し
ているため，ほとんどのシステムでそうはなりません -- つまり，十進数の
@code{.1}は正確に表現できないことを意味します．つまり，@w{@code{.1 * 3
> .3}}のような非直観的な条件式が，結局は正しいということを意味していま
す．

@c To work around that in the above example, use a slightly larger number as
@c the @var{last} value:
@c 
上記の例を回避するため，@var{last}の値にちょっと大きい数字を使用して下
さい．

@example
$ seq -s' ' 0 .1 .31
0 0.1 0.2 0.3
@end example

@c In general, when using an @var{increment} with a fractional part, where
@c (@var{last} - @var{first}) / @var{increment} is (mathematically) a whole
@c number, specify a slightly larger (or smaller, if @var{increment} is negative)
@c value for @var{last} to ensure that @var{last} is the final value printed
@c by seq.
@c 
一般的に，小数部分で@var{increment}を使用しているとき，そして
(@var{last} - @var{first}) / @var{increment}が(数学的に)整数であっても
@var{last}が確実に@command{seq}で出力される最終値になるように，
@var{last}の値をわずかに大きい(または@var{increment}が負の場合は小さい) 
値に指定して下さい．

@exitstatus


@node File permissions
@c @chapter File permissions
@chapter ファイルの許可
@include perm-ja.texi

@include getdate-ja.texi

@c              What's GNU?
@c              Arnold Robbins
@node Opening the software toolbox
@c @chapter Opening the Software Toolbox
@chapter ソフトウェア・ツールボックスを開く

@c This chapter originally appeared in @cite{Linux Journal}, volume 1,
@c number 2, in the @cite{What's GNU?} column. It was written by Arnold
@c Robbins.
@c 
この章はもともと@cite{Linux Journal}，volume 1，number 2のコラム
@cite{What's GNU?}で記載されました．それは，Arnold Robbinsによって書か
れました．

@menu
* Toolbox introduction::        Toolbox introduction
* I/O redirection::             I/O redirection
* The who command::             The @command{who} command
* The cut command::             The @command{cut} command
* The sort command::            The @command{sort} command
* The uniq command::            The @command{uniq} command
* Putting the tools together::  Putting the tools together
@end menu


@node Toolbox introduction
@c @unnumberedsec Toolbox Introduction
@unnumberedsec ツールボックスの紹介

@c This month's column is only peripherally related to the GNU Project, in
@c that it describes a number of the GNU tools on your GNU/Linux system and how they
@c might be used.  What it's really about is the ``Software Tools'' philosophy
@c of program development and usage.
@c 
今月のコラムは，GNUプロジェクトの周辺だけに関連するもので，そこでは，
GNU/Linuxシステム上のいくつかのGNUツールと，それらの使用方法を記述しま
す．それは正に，プログラム開発と使用方法の``ソフトウェアツール''の哲
学です．

@c The software tools philosophy was an important and integral concept
@c in the initial design and development of Unix (of which Linux and GNU are
@c essentially clones).  Unfortunately, in the modern day press of
@c Internetworking and flashy GUIs, it seems to have fallen by the
@c wayside.  This is a shame, since it provides a powerful mental model
@c for solving many kinds of problems.
@c 
ソフトウェアツールの哲学は，初期設計と(LinuxとGNUが本質的に真似ている)
Unixの開発では重要で不可欠な概念でした．不幸にも，インターネットワーキ
ングと派手なGUIの現在の出品物では，それは王道からそれてしまっているよ
うに感じられます．それは多くの種類の問題を解決するため，強力で精神的な
モデルを提供するので残念です．

@c Many people carry a Swiss Army knife around in their pants pockets (or
@c purse).  A Swiss Army knife is a handy tool to have: it has several knife
@c blades, a screwdriver, tweezers, toothpick, nail file, corkscrew, and perhaps
@c a number of other things on it.  For the everyday, small miscellaneous jobs
@c where you need a simple, general purpose tool, it's just the thing.
@c 
ズボンのポケット(またはハンドバッグ)に，スイスのアーミーナイフを持ち運
んでいる人もたくさんいます．スイスのアーミーナイフは有用なハンディーツー
ルです．それはいくつかのナイフの刃，ネジ回し，毛抜き，楊子，爪やすり，
栓抜き，そしてその他にいくつかのものがきっとあります．毎日の，単純な汎
用のツールが必要な小さな様々な仕事でおあつらえ向きです．

@c On the other hand, an experienced carpenter doesn't build a house using
@c a Swiss Army knife.  Instead, he has a toolbox chock full of specialized
@c tools---a saw, a hammer, a screwdriver, a plane, and so on.  And he knows
@c exactly when and where to use each tool; you won't catch him hammering nails
@c with the handle of his screwdriver.
@c 
一方，経験豊富な大工は，スイスのアーミーナイフを使用して家を建てません．
その代わりに，専門的な道具 --- のこぎり，かなづち，ネジ回し，かんな等
がぎっしり詰まった道具箱を持っています．そして，それぞれの道具をいつど
こで使用するのか知っています．ネジ回しを扱いながら，釘を打っているとこ
ろを見たことはないでしょう．

@c The Unix developers at Bell Labs were all professional programmers and trained
@c computer scientists.  They had found that while a one-size-fits-all program
@c might appeal to a user because there's only one program to use, in practice
@c such programs are
@c 
ベル研究所のUnix開発者は，全て専門的なプログラマと訓練されたコンピュー
タ科学者です．彼らは，一つのプログラムのみを利用するため，一つで全てに
適するプログラムをユーザに提示する一方，そのようなプログラムは以下のよ
うになることが分かりました．

@enumerate a
@item
@c difficult to write,
@c 
書くのが難しい．

@item
@c difficult to maintain and
@c debug, and
@c 
管理とデバックが難しい．

@item
@c difficult to extend to meet new situations.
@c 
新しい状況に対し拡張が難しい．
@end enumerate

@c Instead, they felt that programs should be specialized tools.  In short, each
@c program ``should do one thing well.''  No more and no less.  Such programs are
@c simpler to design, write, and get right---they only do one thing.
@c 
その代わりに，プログラムは専門的なツールであるべきだと感じました．要す
るに，それぞれのプログラムは，``一つのことを上手にすべきである''という
ことです．それ以上でも以下でもありません．そのようなプログラムは，設計，
作成がより単純で，正しいものを得られます --- ただ一つのことをするだけ
です．

@c Furthermore, they found that with the right machinery for hooking programs
@c together, that the whole was greater than the sum of the parts.  By combining
@c several special purpose programs, you could accomplish a specific task
@c that none of the programs was designed for, and accomplish it much more
@c quickly and easily than if you had to write a special purpose program.
@c We will see some (classic) examples of this further on in the column.
@c (An important additional point was that, if necessary, take a detour
@c and build any software tools you may need first, if you don't already
@c have something appropriate in the toolbox.)
@c 
更に彼らは，良いマシンでプログラムを一緒にハックするため，全体は部分の
集合より偉大であることに気付きました．いくつかの特別な目的のプログラム
を組み合わせることで，プログラムが設計された目的には無い特定の仕事を達
成したり，特定目的のプログラムを書く必要がある場合，より速く簡単にそれ
を達成したりできました．我々は，このコラムでこれ以上の，いくつかの(古
い)例を見ます．(重要な追加点は，まだいくつかのアプリケーションがツール
ボックスに無い場合，必要があれば回り道して，最初に必要なソフトウェアツー
ルを構築することです．)

@node I/O redirection
@c @unnumberedsec I/O Redirection
@unnumberedsec I/O リダイレクション

@c Hopefully, you are familiar with the basics of I/O redirection in the
@c shell, in particular the concepts of ``standard input,'' ``standard output,''
@c and ``standard error''.  Briefly, ``standard input'' is a data source, where
@c data comes from.  A program should not need to either know or care if the
@c data source is a disk file, a keyboard, a magnetic tape, or even a punched
@c card reader.  Similarly, ``standard output'' is a data sink, where data goes
@c to.  The program should neither know nor care where this might be.
@c Programs that only read their standard input, do something to the data,
@c and then send it on, are called @dfn{filters}, by analogy to filters in a
@c water pipeline.
@c 
皆さんが，``標準入力''，``標準出力''，そして``標準エラー出力''の特定の
概念で，シェルのI/Oリダイレクションの基本に慣れていると想定しています．
要するに，``標準入力''はデータソースで，データがやってくるところです．
データソースが，ディスクファイル，キーボード，磁気テープやパンチカード
かどうか，プログラムは知る必要も注意する必要もありません．同様に，``標
準出力'' はデータシンクで，データが出て行くところです．プログラムはそ
の場所を知る必要も注意する必要もありません．標準入力を読み込み，データ
に何かを行い，それを送り続けるプログラムは，@dfn{フィルタ(filters)}と
呼ばれ，それは水のパイプラインでのフィルタに似ているためです．

@c With the Unix shell, it's very easy to set up data pipelines:
@c 
Unixシェルを用いた場合，データパイプラインを設定することは非常に簡単で
す．
@smallexample
program_to_create_data | filter1 | .... | filterN > final.pretty.data
@end smallexample

@c We start out by creating the raw data; each filter applies some successive
@c transformation to the data, until by the time it comes out of the pipeline,
@c it is in the desired form.
@c 
我々は生データを作ることから始めます．それぞれのフィルタは，それがパイ
プラインから出てくるまで，いくつかの連続した変換をデータに適用し，その
ようなものが望ましい形式です．

@c This is fine and good for standard input and standard output.  Where does the
@c standard error come in to play?  Well, think about @command{filter1} in
@c the pipeline above.  What happens if it encounters an error in the data it
@c sees?  If it writes an error message to standard output, it will just
@c disappear down the pipeline into @command{filter2}'s input, and the
@c user will probably never see it.  So programs need a place where they can send
@c error messages so that the user will notice them.  This is standard error,
@c and it is usually connected to your console or window, even if you have
@c redirected standard output of your program away from your screen.
@c 
これは素晴らしく，標準入力と標準出力に適しています．標準エラー出力は，
動作中どこに行きますか？まあ，上記のパイプライン@code{filter1}について
考えて見てください．データでエラーが発生した場合，何が生じるのでしょう? 
エラーメッセージを標準出力に書き出す場合，それは@code{filter2}の入力の
パイプラインの下に隠れ，ユーザーはおそらく見ることはありません．そのた
め，プログラムはユーザに注意を促すため，エラーメッセージを送ることが可
能な場所が必要です．これは標準エラー出力で，画面から離れているプログラ
ムの標準出力をリダイレクトしてさえ，それは通常コンソールやウィンドウに
連結しています．

@c For filter programs to work together, the format of the data has to be
@c agreed upon.  The most straightforward and easiest format to use is simply
@c lines of text.  Unix data files are generally just streams of bytes, with
@c lines delimited by the @acronym{ASCII} @sc{lf} (Line Feed) character,
@c conventionally called a ``newline'' in the Unix literature. (This is
@c @code{'\n'} if you're a C programmer.)  This is the format used by all
@c the traditional filtering programs.  (Many earlier operating systems
@c had elaborate facilities and special purpose programs for managing
@c binary data.  Unix has always shied away from such things, under the
@c philosophy that it's easiest to simply be able to view and edit your
@c data with a text editor.)
@c 
フィルタプログラムが一緒に動作するため，データの書式が合意されている必
要があります．最も簡単で最も容易な書式は，単なるテキストの行です．通常，
Unixデータファイルは，慣習でUnixの文献で``改行''と呼ばれる，
@acronym{ASCII} @sc{lf} (Line Feed)文字で分けられた行を用いた，単なる
バイトのストリームです．(これは，Cプログラマの場合は@code{'\n'}です．) 
これは全ての伝統的なフィルタプログラムで用いられる書式です．(多くのよ
り早期のオペレーティングシステムでは，バイナリデータを管理するため，手
の込んだファシリティと特別な目的を持つプログラムがありました．Unixは常
にそのようなことから身をかわしていて，その哲学の下では，テキストエディ
タでデータを見たり編集したりすることを単純に可能にする最も簡単な方法で
す．)

@c OK, enough introduction. Let's take a look at some of the tools, and then
@c we'll see how to hook them together in interesting ways.   In the following
@c discussion, we will only present those command line options that interest
@c us.  As you should always do, double check your system documentation
@c for the full story.
@c 
OK，十分紹介しました．いくつかの道具を一目見て，それから，興味深い方法
でそれらを一緒に束ねる方法を見ましょう．以下の議論では，これらの興味あ
るコマンドラインオプションを紹介するだけです．常に行うように，完全な話
とするために，システムドキュメントを再点検してください．

@node The who command
@c @unnumberedsec The @command{who} Command
@unnumberedsec @command{who}コマンド

@c The first program is the @command{who} command.  By itself, it generates a
@c list of the users who are currently logged in.  Although I'm writing
@c this on a single-user system, we'll pretend that several people are
@c logged in:
@c 
最初のプログラムは@command{who}コマンドです．単独では，それは現在ログ
インしているユーザのリストを生成します．私はシングルユーザシステムでこ
れを書いていますが，我々は複数の人々がログインしているふりをします．

@example
$ who
@print{} arnold   console Jan 22 19:57
@print{} miriam   ttyp0   Jan 23 14:19(:0.0)
@print{} bill     ttyp1   Jan 21 09:32(:0.0)
@print{} arnold   ttyp2   Jan 23 20:48(:0.0)
@end example

@c Here, the @samp{$} is the usual shell prompt, at which I typed @samp{who}.
@c There are three people logged in, and I am logged in twice.  On traditional
@c Unix systems, user names are never more than eight characters long.  This
@c little bit of trivia will be useful later.  The output of @command{who} is nice,
@c but the data is not all that exciting.
@c 
ここで，@samp{$}は通常のシェルプロンプトで，そこで私は@command{who}と
入力しました．三人ログインしていて，私は二回ログインしてます．伝統的な
Unixシステムでは，ユーザ名は八文字以上の長さはありません．このわずかな
平凡なビットは後で有用になります．@command{who}の出力は良いのですが，
データは余り面白くありません．

@node The cut command
@c @unnumberedsec The @command{cut} Command
@unnumberedsec @command{cut}コマンド

@c The next program we'll look at is the @command{cut} command.  This program
@c cuts out columns or fields of input data.  For example, we can tell it
@c to print just the login name and full name from the @file{/etc/passwd}
@c file.  The @file{/etc/passwd} file has seven fields, separated by
@c colons:
@c 
次に我々が見るプログラムは@command{cut}コマンドです．このプログラムは，
入力データの列やフィールドを切り取ります．例えば，我々はそれを用いて，
@file{/etc/passwd}ファイルからログイン名とフルネームのみを出力させるこ
とができます．@file{/etc/passwd}ファイルは，七つのフィールドがあり，コ
ロンで分かれています．

@example
arnold:xyzzy:2076:10:Arnold D. Robbins:/home/arnold:/bin/bash
@end example

@c To get the first and fifth fields, we would use @command{cut} like this:
@c 
一番目と五番目のフィールドを得るため，以下のように@command{cut}を使用します．

@example
$ cut -d: -f1,5 /etc/passwd
@print{} root:Operator
@dots{}
@print{} arnold:Arnold D. Robbins
@print{} miriam:Miriam A. Robbins
@dots{}
@end example

@c With the @option{-c} option, @command{cut} will cut out specific characters
@c (i.e., columns) in the input lines.  This is useful for input data
@c that has fixed width fields, and does not have a field separator.  For
@c example, list the Monday dates for the current month:
@c 
@option{-c}オプションを用いた場合，@command{cut}は，入力行の指定した文
字(例えば，列)を切り出します．このコマンドは，データのフィルタリングに
役立ちそうです．

@c Is using cal ok?  Looked at gcal, but I don't like it.
@example
$ cal | cut -c 3-5
@print{}Mo
@print{}
@print{}  6
@print{} 13
@print{} 20
@print{} 27
@end example

@node The sort command
@c @unnumberedsec The @command{sort} Command
@unnumberedsec @command{sort}コマンド

@c Next we'll look at the @command{sort} command.  This is one of the most
@c powerful commands on a Unix-style system; one that you will often find
@c yourself using when setting up fancy data plumbing.
@c 
次に見るのは@command{sort}コマンドです．これはUnix形式のシステムで最も
強力なコマンドの一つです．自分で良く利用していると思うのは，おしゃれな
データの配管を設定している時です．

@c The @command{sort}
@c command reads and sorts each file named on the command line.  It then
@c merges the sorted data and writes it to standard output.  It will read
@c standard input if no files are given on the command line (thus
@c making it into a filter).  The sort is based on the character collating
@c sequence or based on user-supplied ordering criteria.
@c 
@command{sort}コマンドは，コマンドラインで指名されたそれぞれのファイル
を読み込みソートします．それはソートされたデータを統合し，標準出力に書
き出します．それはファイルがコマンドラインで与えられない場合，標準入力
から読み込みます(このため，フィルタになります)．ソートは，文字の順番を
基本としたり，ユーザが供給する判定基準の順番を基本としたりします．


@node The uniq command
@c @unnumberedsec The @command{uniq} Command
@unnumberedsec @command{uniq}コマンド

@c Finally (at least for now), we'll look at the @command{uniq} program.  When
@c sorting data, you will often end up with duplicate lines, lines that
@c are identical.  Usually, all you need is one instance of each line.
@c This is where @command{uniq} comes in. The @command{uniq} program reads its
@c standard input.  It prints only one
@c copy of each repeated line.  It does have several options.  Later on,
@c we'll use the @option{-c} option, which prints each unique line, preceded
@c by a count of the number of times that line occurred in the input.
@c 
(少なくとも今のところ)最後に，我々は@command{uniq}プログラムを見ます．
データをソートするとき，重複行，すなわち同一行でよく終ります．通常，そ
れぞれの行に一つのインスタンスが必要です．これは@command{uniq}を用いる
場所です．@command{uniq}はその標準入力から読み込みます．それは繰り返さ
れている行の一つのコピーだけを出力します．それにはいくつかのオプション
があります．後に，我々は@option{-c} オプションを使用し，それはそれぞれ
ユニークな行を出力し，入力で行が発生した回数の数えたものを前置します．

@node Putting the tools together
@c @unnumberedsec Putting the Tools Together
@unnumberedsec ツールの統合

@c Now, let's suppose this is a large ISP server system with dozens of users
@c logged in.  The management wants the system administrator to write a program that will
@c generate a sorted list of logged in users.  Furthermore, even if a user
@c is logged in multiple times, his or her name should only show up in the
@c output once.
@c 
さて，これが多数のユーザがログインしている大きなBBSシステムだと考えま
しょう．管理者はシスオペに，ログインしているユーザのソートされたリスト
を生成するプログラムを書かせたいとします．更に，ユーザが複数回ログイン
していても，彼または彼女の名前を出力に一度しか表示させないものとします．

@c The administrator could sit down with the system documentation and write a C
@c program that did this. It would take perhaps a couple of hundred lines
@c of code and about two hours to write it, test it, and debug it.
@c However, knowing the software toolbox, the administrator can instead start out
@c by generating just a list of logged on users:
@c 
管理者はシステムドキュメントを持って席に付き，これを行うCプログラムを
書いたはずです．それはおそらく，200行のコードを書いて，テストして，デ
バッグするため，二時間かけているでしょう．しかし，ソフトウェアツールボッ
クスを知っている場合，シスオペは代わりに，ログインしているユーザのリス
トを生成することから始めることができます．

@example
$ who | cut -c1-8
@print{} arnold
@print{} miriam
@print{} bill
@print{} arnold
@end example

@c Next, sort the list:
@c 
次に，リストをソートします．

@example
$ who | cut -c1-8 | sort
@print{} arnold
@print{} arnold
@print{} bill
@print{} miriam
@end example

@c Finally, run the sorted list through @command{uniq}, to weed out duplicates:
@c 
終りに，重複を取り除くため，ソートされたリストを@command{uniq}に通しま
す．

@example
$ who | cut -c1-8 | sort | uniq
@print{} arnold
@print{} bill
@print{} miriam
@end example

@c The @command{sort} command actually has a @option{-u} option that does what
@c @command{uniq} does. However, @command{uniq} has other uses for which one
@c cannot substitute @samp{sort -u}.
@c 
@command{sort}コマンドには，実際は，@command{uniq}を行う@option{-u}オ
プションがあります．しかし，@command{uniq}は，@samp{sort -u}で代用でき
ない他のユーザのためです．

@c The administrator puts this pipeline into a shell script, and makes it available for
@c all the users on the system (@samp{#} is the system administrator,
@c or @code{root}, prompt):
@c 
管理者は，このパイプラインをシェルスクリプトに書き出し，システムの全て
のユーザが利用可能にしました．

@example
# cat > /usr/local/bin/listusers
who | cut -c1-8 | sort | uniq
^D
# chmod +x /usr/local/bin/listusers
@end example

@c There are four major points to note here.  First, with just four
@c programs, on one command line, the administrator was able to save about two
@c hours worth of work.  Furthermore, the shell pipeline is just about as
@c efficient as the C program would be, and it is much more efficient in
@c terms of programmer time.  People time is much more expensive than
@c computer time, and in our modern ``there's never enough time to do
@c everything'' society, saving two hours of programmer time is no mean
@c feat.
@c 
ここで注意すべき主な点が四つあります．最初に，四つのプログラムのみのコ
マンドラインで，管理者は仕事に費す二時間を節約することができました．さ
らに，シェルパイプラインはCプログラムが行うのと同じ効果があり，それは
プログラマの時間に関してはるかに効果的です．人々の時間はコンピュータの
時間よりもはるかに高価で，現在の``全てのことをする十分な時間が無い'' 
社会では，プログラマの時間の二時間を節約することは，並々ならぬ目ざまし
い成果です．

@c Second, it is also important to emphasize that with the
@c @emph{combination} of the tools, it is possible to do a special
@c purpose job never imagined by the authors of the individual programs.
@c 
二番目に，ツールの@emph{組み合わせ}で，個別のプログラマの著者が想像し
ていなかった特定の目的の仕事をすることが可能だということを強調すること
も重要です．

@c Third, it is also valuable to build up your pipeline in stages, as we did here.
@c This allows you to view the data at each stage in the pipeline, which helps
@c you acquire the confidence that you are indeed using these tools correctly.
@c 
三番目に，我々がここで行ったように，ステージ内ででパイプラインを組み上
げることも価値があります．これで，パイプラインのそれぞれのステージでの
データを見ることが可能になり，それは，これらのツールを全く正しく使用し
ていることの確信を得る助けになります．

@c Finally, by bundling the pipeline in a shell script, other users can use
@c your command, without having to remember the fancy plumbing you set up for
@c them. In terms of how you run them, shell scripts and compiled programs are
@c indistinguishable.
@c 
最後に，シェルスクリプトでパイプラインを組み上げることで，他のユーザが
そのコマンドを使用することができ，それらを設定したおしゃれな配管を覚え
る必要がありません．それを実行する方法という意味では，シェルスクリプト
とコンパイルされたプログラムは区別できません．

@c After the previous warm-up exercise, we'll look at two additional, more
@c complicated pipelines.  For them, we need to introduce two more tools.
@c 
ここまでの準備運動の後で，我々は二つの追加のより複雑なパイプラインを見
ていきます．そのため，我々が二つのツールをさらに紹介する必要があります．

@c The first is the @command{tr} command, which stands for ``transliterate.''
@c The @command{tr} command works on a character-by-character basis, changing
@c characters. Normally it is used for things like mapping upper case to
@c lower case:
@c 
最初は@command{tr}コマンドで，それは``transliterate(変換)''を意味しま
す．@command{tr}コマンドは，文字対文字を基本に，文字を変換する作用があ
ります．通常，それは大文字を小文字に割り当てることに使用されます．

@example
$ echo ThIs ExAmPlE HaS MIXED case! | tr '[A-Z]' '[a-z]'
@print{} this example has mixed case!
@end example

@c There are several options of interest:
@c 
重要ないくつかのオプションがあります．

@table @code
@item -c
@c work on the complement of the listed characters, i.e.,
@c operations apply to characters not in the given set
@c 
リストアップされた文字の補集合で動作し，すなわち，与えられた集合に無い
文字に適応した処理です．

@item -d
@c delete characters in the first set from the output
@c 
出力から最初のセットの文字を削除します．

@item -s
@c squeeze repeated characters in the output into just one character.
@c 
出力で繰り返される文字を一文字に圧縮します．
@end table

@c We will be using all three options in a moment.
@c 
我々は，一度に三つの全てのオプションを使用します．

@c The other command we'll look at is @command{comm}.  The @command{comm}
@c command takes two sorted input files as input data, and prints out the
@c files' lines in three columns.  The output columns are the data lines
@c unique to the first file, the data lines unique to the second file, and
@c the data lines that are common to both.  The @option{-1}, @option{-2}, and
@c @option{-3} command line options @emph{omit} the respective columns. (This is
@c non-intuitive and takes a little getting used to.)  For example:
@c 
我々が見ていく，もう一つのコマンドは@command{comm}です．@command{comm} 
コマンドは，二つのソートされた入力ファイルを入力データとし，ファイルの
行を三列に出力します．出力列は最初のファイルのユニークなデータ行．二番
目のファイルのユニークなデータ行，そして，両方に共通なデータ行です．
@option{-1}，@option{-2}と@option{-3}のコマンドラインオプションは，対
応する列を@emph{削除}します．(これは直観的ではなく，慣れるのに少しかか
ります．) 例えば，以下のようにします．

@example
$ cat f1
@print{} 11111
@print{} 22222
@print{} 33333
@print{} 44444
$ cat f2
@print{} 00000
@print{} 22222
@print{} 33333
@print{} 55555
$ comm f1 f2
@print{}         00000
@print{} 11111
@print{}                 22222
@print{}                 33333
@print{} 44444
@print{}         55555
@end example

@c The single dash as a filename tells @command{comm} to read standard input
@c instead of a regular file.
@c 
ファイル名としての単一のダッシュは，通常のファイルの代わりに標準入力か
ら読みとるよう，@command{comm}に伝えます．

@c Now we're ready to build a fancy pipeline.  The first application is a word
@c frequency counter.  This helps an author determine if he or she is over-using
@c certain words.
@c 
さて，我々はおしゃれなパイプラインを構築する準備ができました．最初の応
用は，単語の頻度カウンタです．これは，著者が特定の単語を過度に使用して
いるかどうかを決定する助けとなります．

@c The first step is to change the case of all the letters in our input file
@c to one case.  ``The'' and ``the'' are the same word when doing counting.
@c 
最初のステップは，入力ファイルの全ての文字の大文字小文字をどちらか一つ
に変換することです．``The''と``the''は数えているときは同じ単語です．

@example
$ tr '[A-Z]' '[a-z]' < whats.gnu | ...
@end example

@c The next step is to get rid of punctuation.  Quoted words and unquoted words
@c should be treated identically; it's easiest to just get the punctuation out of
@c the way.
@c 
次のステップは，句読点をを取り除くことです．引用された単語と引用されて
いない単語は，同一に扱われるべきです．句読点を片付ける最も簡単な方法で
す．

@smallexample
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' | ...
@end smallexample

@c The second @command{tr} command operates on the complement of the listed
@c characters, which are all the letters, the digits, the underscore, and
@c the blank.  The @samp{\012} represents the newline character; it has to
@c be left alone.  (The @acronym{ASCII} tab character should also be included for
@c good measure in a production script.)
@c 
二番目の@command{tr}コマンドは，リストアップされた文字の補集合を処理し，
それは全ての文字，数字，アンダースコアと空白です．@samp{\012}は改行を
表現します．それはそのまま残す必要があります．(@acronym{ASCII}タブ文字
も，生成されたスクリプトでは追加として含まれるべきです．)

@c At this point, we have data consisting of words separated by blank space.
@c The words only contain alphanumeric characters (and the underscore).  The
@c next step is break the data apart so that we have one word per line. This
@c makes the counting operation much easier, as we will see shortly.
@c 
この時点で，我々は，空白スペースで分けられた単語からなるデータを保持し
ていることになります．単語は英数文字(とアンダースコア)のみ含まれている
ものです．次のステップは，一行に一単語となるように，データを別々に分け
ます．これは数える処理をより容易にするためで，さらに，短くなります．

@smallexample
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' |
> tr -s '[ ]' '\012' | ...
@end smallexample

@c This command turns blanks into newlines.  The @option{-s} option squeezes
@c multiple newline characters in the output into just one.  This helps us
@c avoid blank lines. (The @samp{>} is the shell's ``secondary prompt.''
@c This is what the shell prints when it notices you haven't finished
@c typing in all of a command.)
@c 
このコマンドは空白を改行に切替えます．@option{-s}オプションは，出力の
複数の改行文字を一つに圧縮します．これは空白行を避けたいとき助かります．
(@samp{>}はシェルの``二番目のプロンプト''を意味します．これは，全ての
コマンドを入力し終えていないことに注意させるとき，シェルが出力するもの
です．)

@c We now have data consisting of one word per line, no punctuation, all one
@c case.  We're ready to count each word:
@c 
我々は今，一行に一単語で，句読点が無く，全て大文字小文字どちらかだけの
データを持っています．我々はそれぞれの単語を数える準備ができました．

@smallexample
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' |
> tr -s '[ ]' '\012' | sort | uniq -c | ...
@end smallexample

@c At this point, the data might look something like this:
@c 
この時点で，データは以下のようになります．

@example
  60 a
   2 able
   6 about
   1 above
   2 accomplish
   1 acquire
   1 actually
   2 additional
@end example

@c The output is sorted by word, not by count!  What we want is the most
@c frequently used words first.  Fortunately, this is easy to accomplish,
@c with the help of two more @command{sort} options:
@c 
出力は単語でソートされていて，総数ではありません!  我々が欲しいのは，
最も頻繁に使用される最初のものです．幸い，これは簡単に達成でき，二つの
@command{sort}オプションの助けを借ります．

@table @code
@item -n
@c do a numeric sort, not a textual one
@c 
文字ではなく，数字のソートを行います．

@item -r
@c reverse the order of the sort
@c 
ソートされた順序を反転します．
@end table

@c The final pipeline looks like this:
@c 
最終的なパイプラインは以下のようになります．

@smallexample
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' |
> tr -s '[ ]' '\012' | sort | uniq -c | sort -nr
@print{}  156 the
@print{}   60 a
@print{}   58 to
@print{}   51 of
@print{}   51 and
@dots{}
@end smallexample

@c Whew!  That's a lot to digest.  Yet, the same principles apply. With six
@c commands, on two lines (really one long one split for convenience), we've
@c created a program that does something interesting and useful, in much
@c less time than we could have written a C program to do the same thing.
@c 
やれやれ!  それは大した要約です．まだ同じ原則は適用されます．六つのコ
マンド二行で(本当は利便性のため長いものを分けたものです)，我々は興味深
く便利なことを行うプログラムを作成し，それは，Cプログラムで同じことを
するものを書くよりはるかに短い時間でした．

@c A minor modification to the above pipeline can give us a simple spelling
@c checker!  To determine if you've spelled a word correctly, all you have to
@c do is look it up in a dictionary.  If it is not there, then chances are
@c that your spelling is incorrect.  So, we need a dictionary.
@c The conventional location for a dictionary is @file{/usr/dict/words}.
@c On my GNU/Linux system,@footnote{Redhat Linux 6.1, for the November 2000
@c revision of this article.}
@c this is a is a sorted, 45,402 word dictionary.
@c 
上記のパイプラインへのちょっとした変更で，単純なスペルチェッカーを与え
ることができます．単語を正しく綴っているかどうかを決定するために行う必
要があることは，辞書で調べることです．それが無い場合，可能性としては綴
りが正しくないということです．そのため，我々は辞書が必要です．
Slackware Linuxの配布物では，ファイル
@file{/usr/lib/ispell/ispell.words}があり，それはソートされていて，
38,400語の辞書です．

@c Now, how to compare our file with the dictionary?  As before, we generate
@c a sorted list of words, one per line:
@c 
さて，我々のファイルと辞書をいかにして比較するのでしょう?  以前に我々
は，ソートされた，一行に一単語の単語リストを生成しました．

@smallexample
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' |
> tr -s '[ ]' '\012' | sort -u | ...
@end smallexample

@c Now, all we need is a list of words that are @emph{not} in the
@c dictionary.  Here is where the @command{comm} command comes in.
@c 
さて，必要なことは辞書に@emph{無い}単語リストです．ここが，
@command{comm}コマンドを用いる場所です．

@smallexample
$ tr '[A-Z]' '[a-z]' < whats.gnu | tr -cd '[A-Za-z0-9_ \012]' |
> tr -s '[ ]' '\012' | sort -u |
> comm -23 - /usr/dict/words
@end smallexample

@c The @option{-2} and @option{-3} options eliminate lines that are only in the
@c dictionary (the second file), and lines that are in both files.  Lines
@c only in the first file (standard input, our stream of words), are
@c words that are not in the dictionary.  These are likely candidates for
@c spelling errors.  This pipeline was the first cut at a production
@c spelling checker on Unix.
@c 
@option{-2}と@option{-3}オプションは，辞書(二番目のファイル)のみにある
行と，両方のファイルにある行を削除します．最初のファイル(我々の単語ス
トリームの標準入力)のみにある行は，辞書にはありません．これらは綴りエ
ラーに対する好ましい候補です．このパイプラインは，Unixでのスペルチェッ
カー製品として，最初に発生しました．

@c There are some other tools that deserve brief mention.
@c 
ちょっと記述する価値のある，その他のツールもあります．

@table @command
@item grep
@c search files for text that matches a regular expression
@c 
正規表現にマッチするテキストをファイルで検索します．

@item wc
@c count lines, words, characters
@c 
行，単語，文字を数えます．

@item tee
@c a T-fitting for data pipes, copies data to files and to standard output
@c 
データパイプに対するT部品で，データをファイルと標準出力にコピーします．

@item sed
@c the stream editor, an advanced tool
@c 
ストリームエディタで，高度なツールです．

@item awk
@c a data manipulation language, another advanced tool
@c 
データ操作言語で，もう一つの高度なツールです．
@end table

@c The software tools philosophy also espoused the following bit of
@c advice: ``Let someone else do the hard part.''  This means, take
@c something that gives you most of what you need, and then massage it the
@c rest of the way until it's in the form that you want.
@c 
ソフトウェアツールの哲学は，以下の短い助言も含んでいます．``難しい部分
は他人にさせろ''．これは，必要なほとんどのものは与えられるものであり，
必要な形式にするまでの方法が残っていることを意味します．

@c To summarize:
@c 
要約します．

@enumerate 1
@item
@c Each program should do one thing well.  No more, no less.
@c 
それぞれのプログラムは，一つのことをうまくこなします．それ以上でもそれ
以下でもありません．

@item
@c Combining programs with appropriate plumbing leads to results where
@c the whole is greater than the sum of the parts.  It also leads to novel
@c uses of programs that the authors might never have imagined.
@c 
適切なパイプでプログラムを組み合わせることで，全体として部分の総和以上
の結果を導きます．それは，著者が想像していなかったプログラムの新しい使
用法も導きます．

@item
@c Programs should never print extraneous header or trailer data, since these
@c could get sent on down a pipeline. (A point we didn't mention earlier.)
@c 
プログラムは，決して余分なヘッダや末尾のデータを出力すべきではなく，そ
れはこれらがパイプラインを壊してしまうものを送るはずだからです．(この
点は以前に記述していません．)

@item
@c Let someone else do the hard part.
@c 
難しいことは，他人にさせましょう．

@item
@c Know your toolbox!  Use each program appropriately. If you don't have an
@c appropriate tool, build one.
@c 
ツールボックスを理解してください！それぞれのプログラムを適切に使用して
ください．適切なツールが無い場合，それを構築してください．
@end enumerate

@c As of this writing, all the programs we've discussed are available via
@c anonymous @command{ftp} from: @*
@c @uref{ftp://gnudist.gnu.org/textutils/textutils-1.22.tar.gz}.  (There may
@c be more recent versions available now.)
@c 
ここで書いている我々が議論してきた全てのプログラムは，
@uref{ftp://gnudist.gnu.org/textutils/textutils-1.22.tar.gz}から匿名
@command{ftp}で利用可能です．(現在はより新しいバージョンが利用可能かも
しれません．)

@c None of what I have presented in this column is new. The Software Tools
@c philosophy was first introduced in the book @cite{Software Tools}, by
@c Brian Kernighan and P.J. Plauger (Addison-Wesley, ISBN 0-201-03669-X).
@c This book showed how to write and use software tools.  It was written in
@c 1976, using a preprocessor for FORTRAN named @command{ratfor} (RATional
@c FORtran).  At the time, C was not as ubiquitous as it is now; FORTRAN
@c was.  The last chapter presented a @command{ratfor} to FORTRAN
@c processor, written in @command{ratfor}. @command{ratfor} looks an awful
@c lot like C; if you know C, you won't have any problem following the
@c code.
@c 
私がこのコラムで紹介したものに新しいものはありません．ソフトウェアツー
ルの哲学は，最初に，Brian KernighanとP.J. Plaugerによる@cite{Software
Tools}の本(Addison-Wesley, ISBN 0-201-03669-X)で紹介されました．この本
は，ソフトウェアツールの書き方と使用法を表しています．それは1976年に書
かれ，@code{ratfor} (RATional FORtran)という名のFORTRANに対するプリプ
ロセッサを使用しています．当時，Cは現在ほど，どこにでもあるといったも
のではなく，FORTRANはそういうものでした．最後の章で，@code{ratfor}を
FORTRANにするプロセッサを提示していて，@code{ratfor}で書かれています．
@code{ratfor}はCに非常に似ています．Cを知っている場合，コードを追いか
けるのに問題ないでしょう．

@c In 1981, the book was updated and made available as @cite{Software Tools
@c in Pascal} (Addison-Wesley, ISBN 0-201-10342-7).  The first book is
@c still in print; the second, alas, is not.  Both books are well worth
@c reading if you're a programmer.  They certainly made a major change in
@c how I view programming.
@c 
1981年に本は更新され，@cite{Software Tools in Pascal} (Addison-Wesley,
ISBN 0-201-10342-7)として利用可能になりました．両方の本は印刷されてい
て，プログラマが読む価値はあります．それらは，確かにプログラミングの見
方を大きく変化させました．

@c Initially, the programs in both books were available (on 9-track tape)
@c from Addison-Wesley.  Unfortunately, this is no longer the case,
@c although the @command{ratfor} versions are available from
@c @uref{http://cm.bell-labs.come/who/bwk, Brian Kernighan's home page},
@c and you might be able to find copies of the Pascal versions floating
@c around the Internet.  For a number of years, there was an active
@c Software Tools Users Group, whose members had ported the original
@c @command{ratfor} programs to essentially every computer system with a
@c FORTRAN compiler.  The popularity of the group waned in the middle 1980s
@c as Unix began to spread beyond universities.
@c 
初めに，両方の本のプログラムはAddison-Wesleyから(9トラックテープで)利
用可能でした．不幸にも，これはもはや利用できませんが，@command{ratfor} 
バージョンは@uref{http://cm.bell-labs.come/who/bwk, Brian Kernighan's
home page}で利用可能で，Internetのどこかにコピーがあるかもしれません．
何年もの間，活発なSoftware Tools Users Groupがあり，そのメンバーは元の
@code{ratfor}プログラムを，FORTRANコンピュータを持つ全てのコンピュータ
に本質的に移植しました．グループの人気は，Unixが大学を越えて広がり始め
たので，80年代半ばで衰えました．

@c With the current proliferation of GNU code and other clones of Unix programs,
@c these programs now receive little attention; modern C versions are
@c much more efficient and do more than these programs do.  Nevertheless, as
@c exposition of good programming style, and evangelism for a still-valuable
@c philosophy, these books are unparalleled, and I recommend them highly.
@c 
GNUコードとその他のUnixプログラムのクローンの現在の増殖で，これらのプ
ログラムは，現在ほとんど注目されません．現在のCのバージョンはより効果
的で，これらのプログラムが行うより多くのことを行います．にもかかわらず，
良いプログラミングスタイルの博覧会と，still-valuableの哲学に対する福音
として，これらの本は比べるものが無く，私は高く推薦します．

@c Acknowledgment: I would like to express my gratitude to Brian Kernighan
@c of Bell Labs, the original Software Toolsmith, for reviewing this column.
@c 
謝辞：私はこのコラムのレビューに対し，ベル研究所のBrian Kernighanと，
オリジナルのソフトウェアToolsmithに深く感謝したいと思います．

@include doclicense.texi

@node Index
@c @unnumbered Index
@unnumbered 索引

@printindex cp

@shortcontents
@contents
@bye

@c Local variables:
@c texinfo-column-for-description: 32
@c End:
