[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
特定のオプションは,以下のすべてのプログラムで利用可能です.それぞれの プログラムで同一の記述を書く代わりに以下で記述します.(実際,すべての GNUプログラムが,これらのオプションを受け入れる(あるいは受け入れ るべき)です.)
通常,オプションとオペランドは任意の順序で書くことが可能で,プログラムは
すべてのオプションがあらゆるオペランドの前に書かれているかのように動作し
ます.例えば,`sort -r passwd -t :'は`sort -r -t : passwd'のよ
うに動作し,それは`:'が`-t'のオプション引数であるためです.
しかし,POSIXLY_CORRECT
環境変数が設定されている場合,特定のコマン
ドで指定ない場合,オプションをオペランドの前に書く必要があります.
これらのプログラムには,`--help'と`--version'が単一のコ マンドライン引数のときだけ,それを認識するものもあります.
すべての利用可能なオプションをリストアップした使用方法のメッセージを出 力し,正しく終了します.
バージョンナンバーを出力して,正しく終了します.
オプションリストを区切ります.それ以降の引数は何であろうと,たとえ `-'で始まる場合でもオペランドとして扱われます.例えば,`sort -- -r'は`-r'という名前のファイルから読み込みます.
単一の`-'は,オプションのように見えても本当のオプションではありま
せん.状況から明らかな場合は,それは標準入力や標準出力を意味し,オペラ
ンドやオプション引数として使用可能です.例えば,`sort -o - -'は標
準出力に書き出し,標準入力から読み込み,そしてそれは単なる
sort
と等価です.他で指定されない限り,ファイル名が要求される
あらゆる状況で`-'を書くことが可能です.
2.1 終了ステータス | Indicating program success or failure. | |
2.2 バックアップオプション | -b -S -V, in some programs. | |
2.3 ブロックサイズ | BLOCK_SIZE and -block-size, in some programs. | |
2.4 ターゲットディレクトリ | -target-directory, in some programs. | |
2.5 末尾のスラッシュ | -strip-trailing-slashes, in some programs. | |
2.6 シンボリックリンクをたどる | -H, -L, or -P, in some programs. | |
2.7 / の特別な扱い方 | -preserve-root and -no-preserve-root. | |
2.8 標準への準拠 | Conformance to the POSIX standard. |
ほとんどすべてのコマンドの呼び出しは,他のコマンドの動作を変更するため にしよう可能な,正規の終了ステータス(exit status)を生成します. コマンドの大半は,ゼロの終了ステータスは成功を示します.失敗はゼロ以外 の値で示されます--通常は`1'ですが,POSIXではゼロ以外で あることを要求しているだけなので,独特のプラットフォームでは違う可能性 があります.
しかし,以下で説明されているプログラムには,それ以外の終了ステータスの
値を生成するものや,`0'と`1'の値に別の意味を割り当てているも
のもあります.例外は以下の通りです.chroot
, env
,
expr
, nice
, nohup
, printenv
,
sort
, su
, test
, tty
.
GNUプログラムには(少なくとも,cp
,install
,
ln
,そしてmv
には)オプションで,新しいバージョンの
ファイルを書き出す前に,ファイルのバックアップを作成するものもあります.
以下のオプションは,これらのバックアップを細かく制御します.オプション
は,特定のプログラムの説明でも簡単に記述します.
バックアップを作成しないと上書きされたり削除されたりするそれぞれのファ
イルのバックアップを作成します.このオプションを用いないと,オリジナル
のバージョンは破棄されます.作成するバックアップの形式を決定するために,
methodを使用してください.このオプションが使用されていて,
methodが指定されていないとき,VERSION_CONTROL
環境変数の値
が使用されます.そしてVERSION_CONTROL
が設定されていない場合は,
デフォルトのバックアップ形式は`existing'になります.
このオプションの短い形式`-b'は,引数を全く受け入れないことに注 意してください.`-b'の使用は,`--backup=existing'の使用 と等価です.
このオプションは,Emacs変数の`version-control'に対応します. methodに対する値は,Emacsで使用されるものと同じです.このオプショ ンも,より記述的な名前を受け入れます.有効なmethodは以下の通りで す(ユニークに識別できる省略も受け入れます).
バックアップを作成しません.
常に番号付のバックアップを作成します.
既に番号付のバックアップファイルがある場合,番号付のバックアップを作成 し,それ以外では単純にバックアップします.
常に単純なバックアップを作成します.`never'と`none'を混同し ないように注意してください.
`-b'で作成されるそれぞれのバックアップファイルにsuffixを
追加します.このオプションが指定されていない場合,
SIMPLE_BACKUP_SUFFIX
環境変数の値が使用されます.そして
SIMPLE_BACKUP_SUFFIX
が設定されていない場合,デフォルトで`~'
となり,それはちょうどEmacsと同じです.
このオプションは時代遅れで,将来のリリースで削除されるでしょう.それは, --backupで置き換えられました.
GNUプログラム(少なくとも,df
,du
,そして
ls
)には,ファイルサイズを"ブロック"で表示するものもありま
す.ファイルサイズをより読みやすくするため,ブロックサイズを調整するこ
とが可能です.表示で使用するブロックサイズは,あらゆるファイルシステム
のブロックサイズから独立しています.分数のブロック数は最も近い整数に切
り上げられます.
デフォルトのブロックサイズは,以下の環境変数を順番に調べることで選択さ れます.最初に設定されていたものでブロックサイズを決定します.
DF_BLOCK_SIZE
これは,df
コマンドに対するデフォルトのブロックサイズを指定し
ます.同様に,DU_BLOCK_SIZE
はdu
に対するデフォルト,そ
してLS_BLOCK_SIZE
はls
に対するデフォルトを指定します.
BLOCK_SIZE
上記のコマンド指定の環境変数が設定されていない場合,これは,三つのコマ ンド全てに対するデフォルトのブロックサイズを指定します.
POSIXLY_CORRECT
command_BLOCK_SIZE
もBLOCK_SIZE
変数も設定されておらず,
この変数が設定されている場合,ブロックサイズのデフォルトは512になりま
す.
上記の環境変数がどれも設定されていない場合,ほとんどの状況でブロックサ
イズは現在のデフォルトの1024バイトですが,この数は将来変更されるかもし
れません.ls
のファイルサイズに対して,ブロックサイズのデフォ
ルトは1バイトです.
ブロックサイズの指定は,ブロックごとのバイト数の指定で正の整数にしたり,
人間が可読な書式を選択してhuman-readable
やsi
にしたりする
ことが可能です.整数には,十進数の倍数となる
SI prefixesの上
位互換の接尾子を続けたり,
IEC 60027-2 prefixes for binary multiplesが続けてもかまいません.
人間が可読な書式を用いると,出力サイズにはメガバイトに対する`M'の
ような大きさを示す文字が続きます.BLOCK_SIZE=human-readable
は
1024乗を使用します.`M'は1,048,576バイトを意味します.
BLOCK_SIZE=si
は似ていますが,それは1000乗を使用し`B'が後置
されます.`MB'は1,000,000を意味します.
`''が前置されているブロックサイズの指定で,千単位で区切られた大き
さを表示するようになります.LC_NUMERIC
ロカールは,千の分離子とグ
ループ分けを指定します.例えば,アメリカ英語のロカールでは,
`--block-size="'1kB"'で1234000バイトの大きさを`1,234'と表示
するようになるでしょう.デフォルトのCロカールでは,千単位の区切りが無
いので,`''には効果がありません.
整数のブロックサイズは,そのサイズの倍数を指定する接尾子を続けることが 可能です.そのままの大きさを示す文字や`iB'が続くものは,1024倍を 指定します.`B'が続く大きさを示す文字は,代わりに1000倍を指定しま す.例えば,`1M'と`1MiB'は`1048576'と等価で,`1MB' は`1000000'と等価です.
前置する整数が無い普通のサフィックスでは,`1'が前置されているかの ように動作しますが,大きさを示す文字が出力に後置されます.例えば, `--block-size="kB"'は3000を`3kB'と表示します.
以下の大きさを示す文字が定義されています.1Y
のような大きなサイ
ズは,その計算の限界のためコンピュータに拒絶されるかもしれません.
キロバイト:10^3 = 1000.
キビバイト:2^10 = 1024.`K'は特殊です.SIの接頭辞は `k' で,IEC 60027-2の接頭辞は`Ki'ですが,伝統的なものと POSIXでは,`k'を`KiB'の意味で使用します.
メガバイト:10^6 = 1,000,000.
メビバイト:2^20 = 1,048,576.
ギガバイト:10^9 = 1,000,000,000.
ギビバイト:2^30 = 1,073,741,824.
テラバイト:10^12 = 1,000,000,000,000.
テビバイト:2^40 = 1,099,511,627,776.
ペタバイト:10^15 = 1,000,000,000,000,000.
ペビバイト:2^50 = 1,125,899,906,842,624.
エクサバイト:10^18 = 1,000,000,000,000,000,000.
エクシビバイト:2^60 = 1,152,921,504,606,846,976.
ゼータバイト:10^21 = 1,000,000,000,000,000,000,000.
2^70 = 1,180,591,620,717,411,303,424.(`Zi'はIEC 60027-2へ のGNUの拡張です.)
ヨッタバイト:10^24 = 1,000,000,000,000,000,000,000,000.
2^80 = 1,208,925,819,614,629,174,706,176.(`Yi'はIEC 60027-2へのGNUの拡張です.)
ブロックサイズのデフォルトは,`--block-size=size'オプショ
ンを明示することで優先することが可能です.`-k'オプションは,
`--block-size=1k'と等価で,それはPOSIXLY_CORRECT
環境変数
が指定されていない場合のデフォルトです.`-h'や
`--human-readable'オプションは,
`--block-size=human-readable'と等価です.`--si'オプショ
ンは,`--block-size=si'と等価です.
GNUプログラム(少なくともcp
,install
,
ln
,そしてmv
)には,このオプションでターゲットディ
レクトリの指定を可能にするものもあります.
対象となるdirectoryを指定します.
ほとんどのプログラムのインターフェースは,オプションと有限数の(おそら
くゼロの)固定した位置の引数を処理した後,残りの引数リストは空である,
または同じように処理される(通常ファイルとなる)項目のリストになっている
ことが期待されています.xargs
プログラムは,この慣習を用いて
より良く動作するように設計されています.
様々な数の引数の最後に特例(すなわち,ターゲットディレクトリ)が
あるため,mv
の類のコマンドは普通のものとは言えません.例えば
"全てのファイルをここから`../d/'に移動する"ような処理を実行する
ために,mv * ../d/
では引数の空間を使い果すかもしれませんし,
ls | xargs ...
では,それぞれの従属コマンドの呼び出しへの特別な
最後の引数を指定する方法がないため,明確ではなくなります.(それは,シェ
ルコマンドで動作させることが可能ですが,人間の労働と能力が余分に必要と
なります.)
--target-directoryオプションによって,cp
,
install
,ln
,そしてmv
プログラムで,
xargs
を用いて便利に使用することが可能になります.例えば,現
在のディレクトリから同じ階層のディレクトリ,ここではd
に,ファイ
ルを移動することが可能です.(しかし,これは`.'で始まる名前のファ
イルを移動しません.)
ls |xargs mv --target-directory=../d |
GNU find
プログラムを使用している場合,以下のコマンドで
全てのファイルを移動することが可能です.
find . -mindepth 1 -maxdepth 1 \ | xargs mv --target-directory=../d |
しかし,現在のディレクトリにファイルがない場合や,改行文字を含む名前の
ファイルがある場合,それは失敗するでしょう.以下の例は,これらの制限を
取り除きますが,GNU find
とGNU xargs
の両
方を必要とします.
find . -mindepth 1 -maxdepth 1 -print0 \ | xargs --null --no-run-if-empty \ mv --target-directory=../d |
GNUプログラム(少なくともcp
とmv
)には,それぞれ
のsource引数を処理する前に末尾のスラッシュを取り除くことが可能な
ものもあります.--strip-trailing-slashesオプションはこの動作
を可能にします.
source引数の末尾にスラッシュがあり,ディレクトリへのシンボリック
リンクを指定しているとき,これは役に立ちます.シェルにはシンボリックリ
ンクのようなものに対してファイル名の補完を実行しているとき,末尾のスラッ
シュを自動的に追加することが可能なものもあるので,このシナリオは現実と
なります.このオプションがない場合,例えば(システムの名前変更機能のた
め)mv
は,末尾のスラッシュをシンボリックリンク先を参照しない
ように要求するよう解釈する必要があり,そして,そのためシンボリックリン
クではなく,間接的に参照されるディレクトリの名前を変更するはず
です.そのような動作がデフォルトということにびっくりするかもしれません
が,それはPOSIXで要求されていて,その標準のそれ以外の部分と
一貫しています.
以下のオプションは,`--recursive' (`-R')オプションも使用
されているときに,chown
とchgrp
が(ディレクトリ)階層
をたどる方法を変更します.
以下のオプションの一つ以上が指定されている場合,最後のものだけ効果があ
ります.これらのオプションは,ディレクトリ構造の処理を,シンボリックリ
ンクとして処理するか,そのディレクトリがルートになっている階層構造のす
べてのファイルを処理するかを指定します.
以下のオプションは,シンボリックリンクかその参照先のいずれを処理するか を制御する`--dereference'と`--no-dereference' (`-h')とは独立しています.
`--recursive' (`-R')が指定されていて,コマンドライン引数 がディレクトリへのシンボリックリンクの場合,それをたどっていきます.
再帰的にたどる状況で,ディレクトリへのシンボリックリンクを,見つかった ものはすべてたどります.
シンボリックリンクをたどりません.これは`-H',`-L',また は`-P'のいずれも指定されていない場合のデフォルトです.
コマンドには,階層構造全体を破壊するような処理が可能なものもあります.
例えば,適切な特権を持つユーザが間違って`rm -rf / tmp/junk'や
`cd /bin; rm -rf ../'を実行した場合,システム全体のすべてのファイ
ルが削除される可能性があります.そのようなコマンドが正当であるというこ
とは滅多に無いので(1),GNU
rm
は`--preserve-root'オプションを提供し,最終的に
`/'とされるようなディレクトリの処理をrm
にさせないように
します.もう一つの新たなオプションである`--no-preserve-root'は,
前出の`--preserve-root'オプションの効果をなくします.
`--preserve-root'の動作がrm
のデフォルトになる可能性が
あることに注意して下さい.
コマンドchgrp
,chmod
,そしてchown
も,階
層構造全体を破壊する処理が可能なので,これらのオプションをサポートして
います.しかし,rm
とは異なり,ファイルを実際にアンリンクする
わけではないので,`/'で再帰的な処理をするときは,おそらくこれらの
コマンドはさらに危険で,その理由は処理時間が短いため,ユーザが停止させ
る前に多くのファイルに障害が発生するためです.
状況によっては,GNUのユーティリティのデフォルトの動作は
POSIXの標準と互換性がありません.これらの非互換性を抑制する
ため,POSIXLY_CORRECT
環境変数を定義してください.POSIX
準拠を調査していない限り,POSIXLY_CORRECT
を定義する必要はありま
せん.
新しいバージョンのPOSIXには,古いバージョンのものと互換性が 無いものもあります.例えば,古いバージョンのPOSIXでは,それ ぞれの入力ファイルの二番目とそれ以降のフィールドをもとにソートするコマ ンド`sort +1'を要求していますが,POSIX 1003.1-2001から は同じコマンドで`+1'という名前のファイルをソートすることを要求し ていて,フィールドをもとにしたソートを行なうため,コマンド`sort -k 2'を代わりに使用する必要があります.
GNUのユーティリティは通常,システム標準のPOSIXのバージョ
ンに準拠しています.異なるPOSIXのバージョンに準拠させるため,
適用させる標準の年月を指定するyyyymmの形式の値に
_POSIX2_VERSION
環境変数を設定してください.現在,
_POSIX2_VERSION
に対して二つの値がサポートされています.
`199209'はPOSIX 1003.2-1992を意味し,`200112'は
POSIX 1003.1-2001を意味します.例えば,古いバージョンの
POSIXを仮定する古いソフトウェアを実行し,`sort +1',
`head -1',または`tail +1'を使用している場合,環境変数で
`_POSIX2_VERSION=199209'を設定することで,互換性の問題を回避する
ことが可能です.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Akihiro Sagawa on June, 8 2005 using texi2html 1.70.