* Time conversion specifiers:: 時刻関係の変換指定子 %[HIklMNpPrRsSTXzZ]
* Date conversion specifiers:: 日付関係の変換指定子 %[aAbBcCdDeFgGhjmuUVwWxyY]
* Literal conversion specifiers:: 文字変換指定子 %[%nt]
-* Padding and other flags:: 0 や空白による空き埋め、その他。
+* Padding and other flags:: 0 や空白による空き埋め、その他
* Setting the time:: システムクロックの変更
* Options for date:: 現在時以外の指定
* Date input formats:: 日付文字列の指定法
すなわち、入力を ASCII NUL で分離された項目として扱い、出力する各項目の末尾に
ASCII NUL を付加する。このオプションは、@samp{perl -0},
@samp{find -print0}, @samp{xargs -0} などと組み合わせて使用すると、
-便利なことがある。そうしたコマンドも、わがままなファイル名を
+便å\88©ã\81ªã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82ã\81\9dã\81\86ã\81\97ã\81\9fã\82³ã\83\9eã\83³ã\83\89ã\81§ã\82\82ã\80\81ã\82\8fã\81\8cã\81¾ã\81¾ã\81ªã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\82\92
(空白などの特殊文字を含んでいる場合でも) きちんと確実に処理するために、
同様なことをしているのである。
@end macro
いくつかのオプションは、このマニュアルで取り上げるすべてのプログラムで利用することができる。
そうしたオプションについては、個々のプログラムで同じ説明を繰り返すことはせず、この場で説明しておく
-(å®\9fã\81®ã\81¨ã\81\93ã\82\8dã\80\81ã\81\93うしたオプションは、GNU のすべてのプログラムで使用できる (はずである))。
+(å®\9fã\81®ã\81¨ã\81\93ã\82\8dã\80\81ã\81\9dうしたオプションは、GNU のすべてのプログラムで使用できる (はずである))。
@vindex POSIXLY_CORRECT
通常、オプションとオペランドは、どんな順番で指定してもよい。
GNU の @command{chown}, @command{chgrp}, @command{chroot},@command{id}
は、この問題に対する回避策を用意している。この回避策を使用すると、
データベースの検索を省略するので、処理速度が著しく向上することがあるというおまけまで付く。
-ユーザやグループに ID 番号を指定する際には、
-その前に @samp{+} を付けさえすればよいのだ。
-そうすることで、整数として解釈するように強制できるのである。
+ユーザやグループに ID 番号を指定する際には、その前に @samp{+}
+を付けさえすればよい。そうすれば、整数として解釈するように強制できるのである。
@example
chown +42 F
@opindex --no-target-directory
@cindex target directory
@cindex destination directory
-最後のオペランドが、ディレクトリやディレクトリへのシンボリックリンクであっても、
-それを特別扱いしない。このオプションは、共有領域で作業する複数のプログラムが、
-競合状態にならないようにしてくれる。
+最後のオペランドが、ディレクトリやディレクトリへのシンボリックリンクであっても、それを特別扱いしない。
+このオプションは、複数のプログラムが共有領域で作業するとき、競合状態を防止する一助になる。
たとえば、@samp{mv /tmp/source /tmp/dest} というコマンドが正常終了しても、
@file{/tmp/source} が @file{/tmp/dest} にリネームされたという保証はない。
もし、何かほかのプロセスが @file{/tmp/dest} をディレクトリとして作成していたら、
何故なら、@code{mv * ../d/} では、引数を入れておくための領域を使い切ってしまうかもしれないし、
そうかと言って、@code{ls | xargs ...} には、実行対象コマンド (訳注: ここでは、@command{mv})
を起動するたびに最後の引数を特別に指定するためのすっきりした方法がないからである。
-(ã\81\82ã\82\8bã\82·ã\82§ã\83«ã\83»ã\82³ã\83\9eã\83³ã\83\89ã\82\92é§\86使ã\81\99ã\82\8cã\81°ã\80\81ã\82\84ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bが、それでは、人間の労力と脳力を過当に要求することになる。)
+(ã\82·ã\82§ã\83«ã\82³ã\83\9eã\83³ã\83\89ã\82\92é§\86使ã\81\99ã\82\8cã\81°ã\80\81ã\81§ã\81\8dã\81ªã\81\84ã\81\93ã\81¨ã\81¯ã\81ªã\81\84が、それでは、人間の労力と脳力を過当に要求することになる。)
@option{--target-directory} (@option{-t}) オプションを使用すると、
@command{cp}, @command{mv}, @command{ln}, @command{install}
ls | xargs mv -t ../d --
@end smallexample
-しかし、これでは、ファイル名の先頭に @samp{.} の付くファイルが移動しない。
-GNU @command{find} プログラムを使用しているなら、
-次のコマンドでそうしたファイルも移動させることができる。
+しかし、これでは、ファイル名の先頭に @samp{.}
+の付くファイルが移動しない。GNU @command{find}
+プログラムを使えば、次のコマンドでそうしたファイルも移動させることができる。
@example
find . -mindepth 1 -maxdepth 1 \
各論理ページの本文セクションにおける行の番号付けの方式を選択する。
行に番号が付かない場合、行番号の現在値は増加しないが、それでも行番号の区切り文字は行の前に付く
(訳注: ここで言う行番号の区切り文字 (line number separator character)
-とは、行番号とテキストの区切り文字ではなく、行番号を揃えるために行頭と行番号との間に置かれる空白のことらしい)。
+とは、行番号とテキストの区切り文字ではなく、行頭とテキストとの間にある行番号のために用意された空間を埋める空白のことらしい)。
番号付けの方式には、以下のものがある。
@table @samp
@var{string} は中央揃えのヘッダ文字列 (訳注: デフォルトではファイル名)、
@var{page} はページ番号である。@var{page} という単語の綴りは、
@env{LC_MESSAGES} ロケール・カテゴリによって変わってくる。デフォルトの C
-ロケールでは、@samp{Page @var{number}} であり、@var{number} は 10 進数のページ番号だ。
+ロケールでは、@samp{Page @var{number}} であり、@var{number} の位置には
+10 進数のページ番号が入る。
入力にフォームフィード (Form feed) があると、出力では改ページが行われる。
フォームフィードが続くと、白紙のページが生ずる。
@var{file} が指定されていない場合は、標準入力を対象にする。
(訳注: @command{fold} の日本語対応は完全ではない。
-UTF-8 の漢字やかなは、たいていの場合 1 文字 が 3 桁として計算され、
-実際の画面では 2 桁分を占める。だから、UTF-8 の文字がすべて
-3 ビットで表現されるものなら、@samp{fold -w 105} で日本語のテキストが 1 行 35 字
-(70 桁) できちんと表示される。だが、出力行の長さが不適切だったり、ASCII 文字や
-4 ビットで表現される UTF-8 の文字が交じたっりすると、文字化けすることになる。)
+3 バイトで表現される UTF-8 の漢字やかなは、1 文字 が 3 桁として計算され、
+画面上では 2 桁分を占める。だから、日本語のテキストが
+3 バイトの UTF-8 文字だけで書かれているならば、@samp{fold -w 105}
+で長い行が 1 行 35 字 (70 桁) できちんと折り返される。
+だが、出力行の長さが不適切だったり、ASCII 文字や
+4 バイトの漢字が交じったりすると、行末や行頭で文字化けが生じかねない。
+もちろん、日本語の禁則処理は期待できない。)
書式:
@opindex --number
@var{input} を @var{chunks} 個の出力ファイルに分割する。
-@var{chunks} の部分には以下のものが指定できる。
+@var{chunks} の位置には以下のものが指定できる。
@example
@var{n} @var{input} の現在のサイズに基づいて @var{n} 個のファイルを生成する。
@cindex sorting files
@command{sort} は、指定されたファイルから読み込んだすべての行に対して、ソート
-(sort、一定の基準に従った並べ替え)、マージ (merge、データの統合)、比較を行う。
-ファイルが一つも指定されなかった場合や、@var{file} として @samp{-}
-が指定された場合は、標準入力から読み込む。デフォルトでは、@command{sort}
+(sort、一定の基準に従った並べ替え)、マージ (merge、データの統合)、比較
+(compare) を行う。ファイルが一つも指定されなかった場合や、@var{file} として
+@samp{-} が指定された場合は、標準入力から読み込む。デフォルトでは、@command{sort}
は結果を標準出力に書き出す。
書式:
@opindex -m
@opindex --merge
@cindex merging sorted files
-指定された複数のファイルを、一つのグループとしてソートすることで統合を行う。
+指定された複数のファイルを一つのグループとしてソートすることでデータの統合を行う。
各入力ファイルは、必ずそれぞれがソート済みでなければならない。
マージモードの代わりにソートモードを使えば、
そうした条件なしで、ソートとマージを行うことができる。
@cindex general numeric sort
@vindex LC_NUMERIC
各行の先頭部分を倍精度浮動小数点数 (long double-precision floating
-point number) に変換して、数値としてソートする。
+point number) に変換して、数値としてソートする
+(訳注: 実際には、各行の先頭と言うより、比較される各フィールドの先頭部分を対象にする)。
@xref{Floating point}. オーバーフロー、アンダーフロー、変換エラーが起きても、
通知しない。行の並ぶ順番は以下のようになる。
@item --debug
各行のソートに使われている部分を強調表示する。
-ã\81¾ã\81\9fã\80\81使ç\94¨æ³\95ã\81«å\95\8fé¡\8cã\81\8cã\81\82ã\82\8bときは、標準エラーに警告メッセージを出す。
+ã\81¾ã\81\9fã\80\81使ç\94¨æ³\95ã\81«å\95\8fé¡\8cã\81\8cã\81\82ã\82\8aã\81\9dã\81\86ã\81ªときは、標準エラーに警告メッセージを出す。
@item --batch-size=@var{nmerge}
@opindex --batch-size
は、入力をすべて読み込んでから、@var{output-file} をオープンする。
従って、@code{sort -o F F} や @code{cat F | sort -o F}
といったコマンドを使って、ファイルを直接書き変えるやり方でソートをすることが可能だ。
-ã\81¨ã\81¯è¨\80ã\81\88ã\80\81ä»\96ã\81®ç\94¨é\80\94ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\81«å\87ºå\8a\9bã\81\97ã\81\9f方が、おおむね安全である。
+ã\81¨ã\81¯è¨\80ã\81\88ã\80\81ä»\96ã\81®ç\94¨é\80\94ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\81«å\87ºå\8a\9bã\81\99ã\82\8b方が、おおむね安全である。
ファイルを直接書き変えるやり方でソートしている最中に、システムがクラッシュしたり、
@command{sort} が入出力エラーなど、深刻なエラーに遭遇したりすると、データが失われてしまいかねないからだ。
また、@option{--merge} (@option{-m}) オプションを指定した場合は、@command{sort}
-ã\81¯ã\80\81å\85¥å\8a\9bã\82\92ã\81\99ã\81¹ã\81¦èªã\81¿è¾¼ã\82\80å\89\8dã\81«ã\80\81å\87ºå\8a\9bã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
-そのため、@code{cat F | sort -m -o F - G} といったコマンドは安全ではない。
+ã\81¯ã\80\81å\85¥å\8a\9bã\82\92ã\81\99ã\81¹ã\81¦èªã\81¿è¾¼ã\82\80å\89\8dã\81«ã\80\81å\87ºå\8a\9bã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\81®ã\81§ã\80\81
+@code{cat F | sort -m -o F - G} といったコマンドは安全ではない。
@command{cat} が @file{F} の読み込みを済ます前に、@command{sort}
が @file{F} への書き込みを始めてしまうかもしれないからだ。
@opindex -f
@opindex --skip-fields
重複の検査を行う前に、各行のフィールドを @var{n} 個スキップする。その行に
-@var{n} 個より少ないフィールドしかない場合は、比較に null 文字列を使用する。
+@var{n} 個より少ないフィールドしかない場合は、比較に空の文字列を使用する。
フィールドとは、少なくとも 1 個以上のスペースやタブで間を区切られた、スペースやタブを含まない文字の連続である。
互換性のために、@command{uniq} は @option{-@var{n}} という旧来のオプション書式をサポートしている。
@opindex -s
@opindex --skip-chars
重複の検査を行う前に、@var{n} 文字スキップする。
-その行に @var{n} 個より少ない文字しかない場合は、比較に null 文字列を使用する。
+その行に @var{n} 個より少ない文字しかない場合は、比較に空の文字列を使用する。
フィールドをスキップするオプションと、文字をスキップするオプションの両方を使っている場合は、
フィールドのスキップが先に行われる。
との互換性を維持するために必要になっているものだが、
通常 GNU の規格では、オプションによって指定されるのではない出力パラメータを、使用しないように勧めている。
-オプションの値や入力テキストファイルとして指定するいかなるファイルに
-対しても、ファイル名の代わりに 1 個のダッシュ @samp{-} を使用することが
-ã\81§ã\81\8dã\82\8bã\80\82ã\81\9dã\81®å ´å\90\88ã\81¯ã\80\81æ¨\99æº\96å\85¥å\8a\9bã\81\8c使ã\82\8fã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82ã\82\82ã\81£ã\81¨ã\82\82ã\80\81ã\81\93ã\81®ç¿\92æ\85£ã\82\92
-プログラム 1 回の起動につき 1 回以上使うのは、たぶん理屈に合わない。
+オプションの値や入力テキストファイルとして指定するいかなるファイルに対しても、
+ファイル名の代わりに 1 個のダッシュ @samp{-} を使用することができる。
+ã\81\9dã\81®å ´å\90\88ã\81¯ã\80\81æ¨\99æº\96å\85¥å\8a\9bã\81\8c使ã\82\8fã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82ã\82\82ã\81£ã\81¨ã\82\82ã\80\81ã\81\93ã\81®ç¿\92æ\85£ã\82\92ã\83\97ã\83ã\82°ã\83©ã\83
+1 回の起動につき 1 回以上使うのは、たぶん理屈に合わない。
@menu
* General options in ptx:: プログラム全体の動作に関係するオプション。
@cindex setup for color
@command{dircolors} は、@command{ls} (や @command{dir} など)
-ã\81§ã\82«ã\83©ã\83¼å\87ºå\8a\9bã\82\92ã\81\99ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªç«¯æ\9c«è¨å®\9aã\81®ã\81\9fã\82\81ã\81®ã\82·ã\82§ã\83«ã\83»ã\82³ã\83\9eã\83³ã\83\89ã\81®ã\82·ã\83¼ã\82±ã\83³ã\82¹ã\82\92å\87ºå\8a\9bã\81\99ã\82\8bã\80\82
+でカラー出力をするのに必要な端末設定のためのシェルコマンドのシーケンスを出力する。
通常、次のような形で使用される。
@example
@vindex LS_COLORS
@vindex SHELL @r{environment variable, and color}
@command{dircolors} の出力は、環境変数 @env{LS_COLORS}
-ã\82\92è¨å®\9aã\81\99ã\82\8bã\82·ã\82§ã\83«ã\83»ã\82³ã\83\9eã\83³ã\83\89ã\81§ã\81\82ã\82\8bã\80\82ã\81©ã\81®ã\82·ã\82§ã\83«ã\81®æ\96\87æ³\95ã\81«ã\81\99ã\82\8bã\81\8bã\81¯ã\80\81
+を設定するシェルコマンドである。どのシェルの文法にするかは、
コマンドラインで指定することができる。指定しない場合は、環境変数 @env{SHELL}
の値から @command{dircolors} が推測する。
(訳注: すなわち、リンクそのものではなく、参照先の実ファイルをコピーするのは)、
通常では、再帰的なコピーをしていないときか、あるいは、@option{--link}
(@option{-l}) オプションが使用されているときだけである。
-このデフォルトの動作は、次に挙げるオプションによって上書きすることができる。
+このデフォルトの動作は、次に挙げるオプションによって変更することができる。
@option{--archive} (@option{-a}), @option{-d}, @option{--dereference}
(@option{-L}),
@option{--no-dereference} (@option{-P}), @option{-H}。
@item ownership
所有者とグループを維持する。ほとんどの最近のシステムでは、
ファイルの所有者を変更できるのは、しかるべき権限を持ったユーザだけである。
-ã\81¾ã\81\9fã\80\81ä¸\80è\88¬ã\83¦ã\83¼ã\82¶ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\81\8c維持できるのは、
+ã\81¾ã\81\9fã\80\81ä¸\80è\88¬ã\83¦ã\83¼ã\82¶ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\82\92維持できるのは、
維持しようとするグループに、たまたまそのユーザが属しているときのみである。
@item timestamps
最終アクセス日時 (last access time) と最終更新日時 (last modification time)
入力からの読み込みがブロックの大きさに足りないことがある。そうした場合に
@samp{iflag=fullblock} が指定してあると、@samp{count=}
は、一杯になるまで読み込むブロックの個数を意味するようになる。
-入力から読み込みを実行する回数という POSIX で規定されている伝統的な動作には、
-対応しなくなるのだ。
+入力から読み込みを実行する回数という POSIX で規定されている伝統的な動作ではなくなるのだ。
@item status=@var{level}
@opindex status
@item block
@opindex block @r{(space-padding)}
-入力 1 行あたり、@samp{cbs} バイト分を出力する。
+入力 1 行あたり、@samp{cbs} バイトを出力する。
入力中の改行はスペースに置き換え、@samp{cbs} バイトに足りない分はスペースで埋める。
@item unblock
@item seek_bytes
@opindex seek_bytes
@samp{seek=} オペランドをブロック数ではなく、バイト数の指定と見なす。
-そうすることで、I/O ブロックサイズの倍数ではないオフセットが、指摘できるようになるわけだ。
+そうすることで、I/O ブロックサイズの倍数ではないオフセットが、指定できるようになるわけだ。
このフラグは @code{oflag} でしか使用できない。
@end table
while kill -s USR1 $pid 2>/dev/null; do sleep 1; done
@end example
-ä¸\8aè¨\98ã\81®ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81¯ã\80\81次ã\81®ã\82\88ã\81\86ã\81ªã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81§å\87ºå\8a\9bã\81\99ã\82\8bã\81\93ã\81¨になる。
+ä¸\8aè¨\98ã\81®ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81®å\87ºå\8a\9bã\81¯ã\80\81次ã\81®ã\82\88ã\81\86ã\81ªã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88になる。
@example
3441325+0 records in
@opindex --context
@cindex SELinux, restoring security context
@cindex security context
-このオプションは @command{restorecon} と同様の働きをする。
+このオプションは @command{restorecon} と似た働きをする。
すなわち、移動先における SELinux セキュリティ・コンテキストを、
-移動先のファイルやそこに作られる各ディレクトリに対する、システムのデフォルトのタイプによって調整する。
+移動先のファイルやそこに作られる各ディレクトリに対する、システムのデフォルトのタイプに合わせて調整する。
@end table
@itemx --force
@opindex -f
@opindex --force
-指定したファイルが存在しなかったり、ユーザが削除の対象を一つも指定しなかったりしても、
+指定したファイルが存在しなかったり、削除の対象を一つも指定しなかったりしても、
問題にしない (訳注: 言い換えれば、エラーにならない)。
また、ユーザに対する問い合わせも全く行わない。
@option{--interactive} (@option{-i}) オプションが前にあっても、それを無視する。
@opindex --exact
デフォルトでは、@command{shred} は、
通常ファイルのサイズを、ファイルシステムのブロックサイズの倍数に切り上げて、
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c\80å¾\8cã\81®ã\83\96ã\83ã\83\83ã\82¯ã\81®ä¸\8d使ç\94¨é \98å\9f\9fã\81¾ã\81§å®\8cå\85¨ã\81«æ¶\88å\8e»する。
-ã\81\93ã\81®é \98å\9f\9fã\81«ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\80\81ã\81\9fã\81¨ã\81\88ã\81°ã\80\81ç\8f¾å\9c¨ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83¡ã\83¢ã\83ªã\81®ä¸\80é\83¨ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\81®ã\81 ã\80\82
-ã\81\93ã\81®å\8b\95ä½\9cã\82\92æ\8a\91å\88¶ã\81\97ã\81\9fã\81\8bã\81£ã\81\9fã\82\89、@option{--exact} オプションを使用すればよい。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c\80å¾\8cã\81®ã\83\96ã\83ã\83\83ã\82¯ã\81®ä¸\8d使ç\94¨é \98å\9f\9fã\81¾ã\81§å®\8cå\85¨ã\81«æ\8a¹æ¶\88する。
+この領域には、システムによっては、たとえば、現在のシステムメモリの一部が入っているかもしれない。
+ã\81\93ã\81®å\8b\95ä½\9cã\82\92æ\8a\91å\88¶ã\81\99ã\82\8bã\81«ã\81¯、@option{--exact} オプションを使用すればよい。
すなわち、デフォルトでは、1 ブロック 512 バイトのシステムで
10 バイトの通常ファイルを shred すると、結果として 512 バイトのファイルが出来上がる。
だが、このオプションを使えば、shred はファイルの見かけのサイズを増加させないのだ。
しかし、動作の対象になるファイルがたくさんあると、この方法は非常に時間がかかる。
@option{--from=@var{old-owner}} オプションを使う方が、
-完璧とまでは言えないにしても、より安全である (時間差がさらに小さくなるので)。
+万全とまでは言えないにしても、より安全である (時間差がさらに小さくなるので)。
@example
chown -h -R --from=OLDUSER NEWUSER /
第一に、ユーザが指定した日時が、サポートされている精度を越えていることがある。
第二に、ファイルシステムが、日時のタイプによって別の精度を使っていることがある。
第三に、ファイルのタイムスタンプが、オペレーティング・システムのタイムスタンプとは別の精度を使っていることがある。
-第å\9b\9bã\81«ã\80\81ã\82ªã\83\9aã\83¬ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\81®æ\9b´æ\96°ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\9fºæ\9c¬ã\83\87ã\83¼ã\82¿å\9e\8bã\81\8cã\80\81
+第四に、オペレーティング・システムでタイムスタンプの更新に使用される基本データ型が、
さらに違う精度を採用していることがある。そんなわけで、理屈の上では、
たとえば、ファイルシステムでは、アクセス日時には 10 マイクロ秒の精度を、更新日時には
100 ナノ秒の精度を使用し、オペレーティング・システムの方では、現在の時刻にはナノ秒の精度を、
ファイルの ctime は変更するが、他の日時には影響を及ぼさない別の操作には、ファイル名の変更がある。
なお、いかなる場合であれ、通常の操作では、ユーザが ctime
フィールドを自分で指定する値に変更することはできない。
-ã\82ªã\83\9aã\83¼ã\83¬ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\82·ã\82¹ã\83\86ã\83 ã\82\84ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ä¸ã\81«ã\81¯ã\80\814 ç\95ªç\9b®ã\81®æ\97¥æ\99\82ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\82\82ã\81\82ã\82\8bã\80\82
+オペレーティングシステムやファイルシステムの中には、4 番目の日時をサポートしているものもある。
すなわち、作成日時 (birth time) であり、ファイルが最初に作られた日時だ。
名前からして当然だが、このタイムスタンプが変更されることはない。
@cindex terse output
情報を簡潔な形式で表示する。他のプログラムで解析するときに都合がよい。
-下記の二つのコマンドの出力は全く同じである。また、この @option{--format}
-ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\87ºå\8a\9bæ\9b¸å¼\8fã\81§ (ã\82\82ã\81£ã\81¨è©³ç´°ã\81ªå½¢ã\81§) 表示ã\81\95ã\82\8cã\82\8bé \85ç\9b®ã\81¨同じものを指定している。
+下記の二つのコマンドの出力は全く同じである。また、下記の @option{--format}
+ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\87ºå\8a\9bæ\9b¸å¼\8fã\81\8c (ã\82\82ã\81£ã\81¨è©³ç´°ã\81ªå½¢ã\81§) 表示ã\81\99ã\82\8bé \85ç\9b®ã\81¨ã\81»ã\81¼同じものを指定している。
もっとも、SELinux セキュリティ・コンテキストが有効になっている場合には、
-このフォーマット文字列の末尾に、もう一つ @samp{%C} を付けることになるだろうが。
+このフォーマット文字列の末尾に、もう一つ @samp{%C} を付け加えることになるだろうが。
@example
$ stat --format="%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o" ...
$ stat --terse ...
@vindex POSIXLY_CORRECT
数値が期待される引数の先頭文字が @samp{"} や @samp{'} である場合、
その引数の値は、引用符の直後に来る文字の数値である
-(訳注: ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ä¸\80è\88¬ã\81«ã\81¯ã\80\81ã\81\9dã\81®æ\96\87å\97ã\81® ASCII ã\82³ã\83¼ã\83\89ã\81® 10 é\80²æ\95°è¡¨è¨\98ã\81\8cå\87ºå\8a\9bã\81\95ã\82\8cã\82\8b)ã\80\82
+(訳注: すなわち、一般には、その文字の ASCII コードが出力される)。
その後にさらに文字が続く場合は、環境変数 @env{POSIXLY_CORRECT}
が設定されていれば、ただ単に無視され、設定されていなければ、警告が出される。
一例を挙げておくと、@samp{printf "%d" "'a"} は、ASCII
@cindex ISO/IEC 10646
@vindex LC_CTYPE
@command{printf} は、ISO C 99 で導入された 2 種類のキャラクタ・シンタクス
-(訳注: 要するに、コードによる文字の指定法) を解釈することができる。
+(訳注: ここでは、コードポイントによる文字の指定法) を解釈することができる。
一つは、Unicode (ISO/IEC 10646) の文字を 16 ビットで表すための @samp{\u}
であり、4 桁の 16 進数 @var{hhhh} で指定する。もう一つは、Unicode の文字を
32 ビットで表すための @samp{\U} で、こちらは 8 桁の 16 進数 @var{hhhhhhhh}
だけである。 @xref{Common options}. オプションはオペランドの前に置かなければならない。
Unicode のキャラクタ・シンタクスを使えば、
-ロケールに影響されない方法で文字列を書くことができて、便利である。
+ロケールに縛られないやり方で文字列が書けて、便利である。
たとえば、次のようにすれば、
@example
のソースファイルで使用されるエンコーディング (JAVA source file encoding)
としても知られているが、GNU の recode コマンド 3.5c
以降を使用すれば、任意の文字列をこのエンコーディングに変換することができるのだ。
-以ä¸\8bã\81«ç¤ºã\81\99ã\81®ã\81¯ã\80\811 å\80\8bã\81®ç\9fæ\96\87ã\82\92ã\80\81ã\83ã\82±ã\83¼ã\83«ã\81«å½±é\9f¿ã\81\95れずにその短文を出力するシェルスクリプトに変換する方法である。
+以ä¸\8bã\81«ç¤ºã\81\99ã\81®ã\81¯ã\80\811 å\80\8bã\81®ç\9fæ\96\87ã\82\92ã\80\81ã\83ã\82±ã\83¼ã\83«ã\81®å¦\82ä½\95ã\81«ç¸\9bã\82\89れずにその短文を出力するシェルスクリプトに変換する方法である。
@smallexample
$ LC_CTYPE=zh_TW.big5 /usr/local/bin/printf \
'\u4e2d\u6587\n' > sample.txt
#
# 訳注: もちろん、漢字入力の可能な LANG=zh_TW.big5 (あるいは、
- # LANG=ja_JP.eucJP) の環境なら、コマンドラインで直接
- # printf '中文\n' と打ち込んでもよい。その方が、
+ # ja_JP.eucJP や ja_JP.utf8) の環境なら、コマンドラインで
+ # 直接 printf '中文\n' と打ち込んでもよい。その方が、
# 「各文字に対応する 16 進数コードを一つ一つ捜す必要はない」
# という上記の説明に、例としてはふさわしいだろう。
# LANG=ja_JP.eucJP の場合、下のコマンドは、当然ながら、
- # recode eucJP..JAVA になる。
+ # recode eucJP..JAVA になる。LANG=ja_JP.utf8 なら、
+ # recode UTF8..JAVA だ。
#
$ recode BIG5..JAVA < sample.txt \
| sed -e "s|^|/usr/local/bin/printf '|" -e "s|$|\\\\n'|" \
@end table
@command{expr} にキーワードを文字列として解釈させるためには、クォート演算子
-(すなわち、上で述べている @code{+} 演算子) を使用しなければならない。
+(訳注: 上で述べている @code{+} 演算子) を使用しなければならない。
@node Numeric expressions
@example
du -ak | gzip -9 > /tmp/du.gz
-gzip -d /tmp/du.gz | xdiskusage -a
+gzip -dc /tmp/du.gz | xdiskusage -a
@end example
@command{tee} とプロセス置換を使えば、GUI ツールを直ちに起動できるし、
それ故、新しいスクリプトでは @command{mktemp} コマンドを使用するべきである。
そうすれば、生成されるファイル名が確実に予測不可能になるので、
実行中のスクリプトがテンポラリファイルの名前を知っているというまさにその事実が、
-ファイルを作成したのがそのスクリプトであり、他のユーザはそのファイルを変更できないと、
-間違いなく示すことになる。
+ファイルを作成したのはそのスクリプトであり、他のユーザによってそのファイルが変更されることはありえないと、間違いなく示すことになる。
ファイルを作成する場合、作成されるファイルには現在のユーザに対する読み込みと書き出しの許可が付くが、
グループやその他のユーザに対しては、いかなる許可も付かない。
@itemx --logical
@opindex -L
@opindex --logical
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«å\90\8dä¸ã\81«ã\81\82ã\82\8bã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92å±\95é\96\8bã\81\99ã\82\8bã\80\82
-ã\81\9fã\81 ã\81\97ã\80\81ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81« @samp{..} ã\81¨ã\81\84ã\81\86è¦\81ç´ ã\81\8cå¾\8cç¶\9aã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81
-ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®å±\95é\96\8bã\82\92è¡\8cã\81\86前に、そちらを先に処理する。
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«å\90\8dä¸ã\81«ã\81\82ã\82\8bã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®å±\95é\96\8bã\82\92è¡\8cã\81\86ã\81\8cã\80\81
+シンボリックリンクに @samp{..} という要素が後続している場合は、
+ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92å±\95é\96\8bã\81\99ã\82\8bã\82\88ã\82\8a前に、そちらを先に処理する。
(訳注: 例を挙げた方が、わかりやすいだろう。@samp{symlink-directory/../..}
といったファイル名が与えられた場合、symlink-directory
というシンボリックリンクそのものの親ディレクトリの親ディレクトリに展開するということ。
@itemx --physical
@opindex -P
@opindex --physical
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«å\90\8dä¸ã\81«ã\81\82ã\82\8bã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92å±\95é\96\8bã\81\99ã\82\8bã\80\82
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«å\90\8dä¸ã\81«ã\81\82ã\82\8bã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\81®å±\95é\96\8bã\82\92è¡\8cã\81\86é\9a\9bã\80\81
シンボリックリンクに @samp{..} という要素が後続している場合も、
シンボリックリンクを展開してから、@samp{..} の処理を行う。
こちらがデフォルトの動作モードである。(訳注: すなわち、
@cindex case translation
@code{icanon} が設定されているとき、小文字を表す文字の頭に
@samp{\} を付けることで、大文字の入出力を可能にする。非 POSIX。無効化できる。
-(訳注: たとえば、大文字しか入出力できない端末で、ただの @samp{A} なら小文字の
+(訳注: たとえば、大文字しか使えない端末で、ただの @samp{A} なら小文字の
a を意味し、@samp{\A} なら大文字の A を意味するようにすること。
-次節「組み合わせ設定」の lcase と termios(3) を参照。)
+次ç¯\80ã\80\8cçµ\84ã\81¿å\90\88ã\82\8fã\81\9bè¨å®\9aã\80\8dã\81® lcase ã\81¨ termios(3) ã\81® XCASE ã\81®èª¬æ\98\8eã\82\92å\8f\82ç\85§ã\80\82)
@item tostop
@opindex tostop
@opindex cooked
@code{brkint ignpar istrip icrnl ixon opost isig icanon} に相当する。
さらに、特殊文字 @code{eof} と @code{eol} が @code{min} 及び @code{time}
-文字と同じならば、@code{eof} と @code{eol} をデフォルトの値に設定する。
+と同じ文字になっていれば、@code{eof} と @code{eol} をデフォルトの値に設定する。
無効化できる。無効化した場合は、@code{raw} と同じになる。
@item raw
@menu
* Time conversion specifiers:: 時刻関係の変換指定子 %[HIklMNpPrRsSTXzZ]。
* Date conversion specifiers:: 日付関係の変換指定子 %[aAbBcCdDeFgGhjmuUVwWxyY]。
-* Literal conversion specifiers:: 文字変換指定子 %[%nt]。
-* Padding and other flags:: 0 や空白による空き埋め、その他。
-* Setting the time:: システムクロックの変更。
-* Options for date:: 現在の日時以外の指定。
+* Literal conversion specifiers:: 文字変換指定子 %[%nt]。
+* Padding and other flags:: 0 や空白による空き埋め、その他。
+* Setting the time:: システムクロックの変更。
+* Options for date:: 現在の日時以外の指定など。
@detailmenu
-* Date input formats:: 日付文字列の指定法。
+* Date input formats:: 日付文字列の指定法。
@end detailmenu
-* Examples of date:: 用例。
+* Examples of date:: 用例。
@end menu
@node Time conversion specifiers
は @samp{-0}
である。通例、少なくとも 2 個の文字からなるが、2 個以上のこともありえる。
@item %d
-その月の何日目か (e.g., @samp{01})
+その月の何日目か (例: @samp{01})
@item %D
日付。@samp{%m/%d/%y} と同じ
@item %e
注意していただきたいが、@option{--date} や @option{--set} オプションは、
ここで述べている書式の引数と組み合わせて使うことができない。
@option{--universal} オプションは、ここで述べている書式の引数と一緒に使うことができるが、
-その場合、指定されている日時が現在地のタイムゾーンではなく、協定世界時
+ã\81\9dã\81®å ´å\90\88ã\81¯ã\80\81æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bæ\97¥æ\99\82ã\81\8cç\8f¾å\9c¨å\9c°ã\81®ã\82¿ã\82¤ã\83 ã\82¾ã\83¼ã\83³ã\81§ã\81¯ã\81ªã\81\8fã\80\81å\8d\94å®\9aä¸\96ç\95\8cæ\99\82
(UTC) に準じているのを示すことになる。
@item
日付の付いたデータをソートしたり、グラフ化したりしているとしよう。
その日付の加工前の値は、ジ・エポックからの経過秒数で表されているかもしれない。
-ã\82\82ã\81£ã\81¨ã\82\82、@samp{946684800} といった日付を見て、
+ã\81 ã\81\8c、@samp{946684800} といった日付を見て、
「ああ、イギリスのグリニッジの 2000 年の最初の 0 秒だね」と、
-ã\81\95ã\82\8aã\81\92ã\81ªã\81\8fè¨\80ã\81\88ã\82\8b人ã\81¯ã\80\81ã\82\81ã\81£ã\81\9fã\81«ã\81\84ã\81ªã\81\84ã\81\91ã\82\8cã\81©ã\80\82
+さりげなく言える人は、めったにいない。
@example
date --date='2000-01-01 UTC' +%s
とは言え、@option{--utc} を使う方法は、@samp{%s} を始め、多くの書式文字列では、
日付文字列で @samp{UTC} を使うのと同じ結果をもたらすものの、
協定世界時からの時差が 0 ではないタイムゾーンでは、
-@samp{%z} ã\81ªã\81©ã\80\81タイムゾーンによって値が変わってくる書式文字列に対しては、
+@samp{%z} ã\81®ã\82\88ã\81\86ã\81ªタイムゾーンによって値が変わってくる書式文字列に対しては、
異なる結果をもたらすことになるだろう。
@example
セキュリティ・コンテキストのすべてを @var{context} で指定して、@var{command}
を実行する。あるいは、現在の、または遷移後のセキュリティ・コンテキストのうち、
-@var{user}, @var{role}, @var{type}, @var{level}
-(訳注: 上の書式で言えば @var{range}) の一つ以上を変更して、@var{command} を実行する。
+ユーザ、ロール、タイプ、レベルの一つ以上を変更して、@var{command} を実行する。
@option{-c}, @option{-u}, @option{-r}, @option{-t}, @option{-l}
のどのオプションも指定されていない場合は、最初の引数が完全なコンテキストとして使用される。
nohup @var{command} [@var{arg}]@dots{}
@end example
-標準入力が端末の場合は、標準入力がリダイレクトされる。
-@command{nohup} から実行されているコマンドが端末を使用していると、
-端末で行われるセッションが誤解しないようにするためである。
+標準入力が端末の場合は、@command{nohup}
+から実行されているコマンドが端末を使用していると、端末で行われるセッションが誤解しないように、
+標準入力をリダイレクトする。
さらに、標準入力の代わりになるファイルのファイル・ディスクリプタを読み込み不可にする。
@command{nohup} から実行されているコマンドが、誤って標準入力から読み込を行おうとした場合に、
-ã\82¨ã\83©ã\83¼ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92å\87ºã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81 。
+ã\82¨ã\83©ã\83¼ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92å\87ºã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81§ã\81\82ã\82\8b。
このリダイレクションは GNU の拡張である。
GNU 以外のホストでも使うことを考えているプログラムでは、GNU の拡張を当てにせず、
@samp{nohup @var{command} [@var{arg}]@dots{} 0>/dev/null} を使えばよい。
今月の記事と GNU プロジェクトの関係は、周辺的なものにすぎない。お手元の
GNU/Linux システムの GNU ツールをいくつか取り上げて、
-ã\81\93ã\82\93ã\81ªä½¿ã\81\84æ\96¹ã\82\82ã\81\82ã\82\8aã\81¾ã\81\99ã\82\88ã\80\81ã\81¨èª¬æ\98\8eã\81\97ている点で、関係があるにすぎないのだ。
+ã\81\93ã\82\93ã\81ªä½¿ã\81\84æ\96¹ã\82\82ã\81\82ã\82\8aã\81¾ã\81\99ã\82\88ã\80\81ã\81¨è¿°ã\81¹ている点で、関係があるにすぎないのだ。
今月の記事の真の狙いは、プログラムを開発したり、使用したりする上での、
「ソフトウェアは工具だ」という考え方を説明することである。
各フィルターがそのデータに対して何らかの変形を次々に行い、
最終的に、データが希望どおりの形になって、パイプラインから抜け出してくる。
-æ¨\99æº\96å\85¥å\8a\9bã\81¨æ¨\99æº\96å\87ºå\8a\9bã\81«ã\81¨ã\81£ã\81¦ã\81¯ã\80\81ã\81\9dã\82\8cã\81§å\8d\81å\88\86ã\81 。
+æ¨\99æº\96å\85¥å\8a\9bã\81¨æ¨\99æº\96å\87ºå\8a\9bã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81ã\81\9dã\82\8cã\81§ã\82\88ã\81\84。
では、標準エラーはどこで登場し、どんな役割を果たすのだろうか?
上記パイプラインの @command{filter1} について考えてほしい。
データを読んでいるうちにエラーが起きたら、どうなるだろうか?
coreutils-8.26 を元に増補・改訂 by 長南洋一
@item
-2017-07-17@*
+2018-03-31@*
訳文の訂正と変更 by 長南洋一
@end itemize