[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

2. 共通のオプション

ある特定のオプションはこれらのプログラムの全てで利用可能です(実際,全て のGNUプログラムはそれらを受け入れるべきです).それぞれのプログラム の個別の記述で書くのではなく,ここで記述します.

` --help'

全ての利用可能なオプションをリストアップする使用方法のメッセージを出力し, 正しく終了します.

` --version'

バージョンナンバーを出力し,正しく終了します.


2.1 バックアップオプション

GNUプログラムには(少なくとも,cpinstalllnmvは)追加で,新しいバージョンを書く前に,ファイルのバックアップ を作成するものもあります.これらのオプションは,これらのバックアップを詳 細に制御します.オプションは,特定のプログラムでも簡単に記述します.

` -b'
` --backup[=method]'

バックアップを作成しない場合,上書きされたり削除されたりするそれぞれのファ イルのバックアップを作成します.このオプションを使用しない場合,元のバー ジョンは破壊されます.このオプションが使用され,methodが指定されて いないときは,VERSION_CONTROL環境変数の値が使用されます.そして VERSION_CONTROLが設定されていない場合は,デフォルトのバックアップ 形式は`existing'になります.

このオプションの短い形式`-b'は,引数を全く受け入れないことに注意し てください.`-b'の使用は,`--backup=existing'の使用と等価です.

このオプションは,Emacs変数の`version-control'に対応します. methodに対する値は,Emacsで使用されるものと同じです.このオプショ ンも,より記述的な名前を受け入れます.有効なmethodは以下の通りです (ユニークに識別できる省略も受け入れます).

` none'
` off'

バックアップを作成しません.

` numbered'
` t'

常に番号付のバックアップを作成します.

` existing'
` nil'

既に番号付のバックアップファイルがある場合,番号付のバックアップを作成し, それ以外では単純にバックアップします.

` simple'
` never'

常に単純なバックアップを作成します.`never'と`none'を混同しな いように注意してください.

` -S suffix'
` --suffix=suffix'

`-b'で作成されるそれぞれのバックアップファイルにsuffixを追加 します.このオプションが指定されない場合,SIMPLE_BACKUP_SUFFIX環 境変数の値が使用されます.また,SIMPLE_BACKUP_SUFFIXが設定されて いない場合,デフォルトで`~'となり,それはちょうどEmacsと同じです.

` --version-control=method'

このオプションは時代遅れで,将来のリリースで削除されるでしょう.それは, --backupで置換されました.


2.2 ブロックサイズ

GNUプログラム(少なくとも,dfduと,ls)には, ファイルサイズを"ブロック"で表示するものもあります.ファイルサイズをよ り読みやすくするため,ブロックサイズを調整できます.表示で使用するブロッ クサイズは,あらゆるファイルシステムのブロックサイズから独立しています.

通常,ディスク使用のサイズは切り上げ,ディスクフリーサイズは切り捨て,そ して,それ以外は,偶数に丸めたときの最も近いブロックで丸められます.

デフォルトブロックサイズは,以下の環境変数を順番に調べることで選択されま す.最初のものはブロックサイズを決定します.

DF_BLOCK_SIZE

これは,dfコマンドに対するデフォルトのブロックサイズを指定します. 同様に,DU_BLOCK_SIZEduに対するデフォルト, LS_BLOCK_SIZElsに対するデフォルトを指定します.

BLOCK_SIZE

上記のコマンド指定の環境変数が設定されていない場合,これは,三つのコマン ド全てに対するデフォルトブロックサイズを指定します.

POSIXLY_CORRECT

command_BLOCK_SIZEBLOCK_SIZE変数も設定されていなく て,この変数が設定されている場合,ブロックサイズのデフォルトは512になり ます.

上記の環境変数がどれも設定されていない場合,ブロックサイズは現在のデフォ ルトの1024バイトですが,この数は将来変更されるかもしれません.

ブロックサイズの指定は,ブロック毎のバイト数を指定することで,正の整数に したり,人間が可読な書式を選択することで,human-readablesiにしたりできます.

人間が可読な書式を用いた場合,出力サイズは,メガバイトに対する`M'の ような大きさを示す文字が続きます.BLOCK_SIZE=human-readableは1024 乗を使用します.`M'は1,048,576バイトを意味します. BLOCK_SIZE=siは似ていますが,1000乗を使用します.`M'は 1,000,000を意味します.(SI,国際単位系は,これらの1000乗の前置を定義しま す.)

整数のブロックサイズは,そのサイズの倍数を指定する大きさを示す文字を続け ることができます.この注釈が用いられた場合,大きさを示す文字は,通常1024 倍を意味し,オプションで"バイト"に対する`B'を続けることができます. しかし,("10進バイト"に対する)`D'が続く場合,それらは1000倍を意味 します.例えば,BLOCK_SIZE=4MBBLOCK_SIZE=4194304と同じで, BLOCK_SIZE=4MDBLOCK_SIZE=4000000と同じです.

以下の大きさを示す文字は定義されています.1Yのような大きなサイズ は,その計算の限界のためコンピュータで拒絶されるかもしれません.

` k'

キロ:human-readableに対する2^10 = 1024,または,si に対する10^3 = 1000

` M'

メガ:2^20 = 1,048,576,または,10^6 = 1,000,000

` G'

ギガ:2^30 = 1,073,741,824,または,10^9 = 1,000,000,000

` T'

テラ:2^40 = 1,099,511,627,776,または,10^12 = 1,000,000,000,000

` P'

ペタ:2^50 = 1,125,899,906,842,624,または,10^15 = 1,000,000,000,000,000

` E'

エクサ:2^60 = 1,152,921,504,606,846,976,または,10^18 = 1,000,000,000,000,000,000

` Z'

ゼータ:2^70 = 1,180,591,620,717,411,303,424,または,10^21 = 1,000,000,000,000,000,000,000

` Y'

ヨット:2^80 = 1,208,925,819,614,629,174,706,176,または, 10^24 = 1,000,000,000,000,000,000,000,000

ブロックサイズのデフォルトは,`--block-size=size'オプションを 明示することで優先できます.`-k'や`--kilobytes'オプションは, `--block-size=1k'と同じで,それはPOSIXLY_CORRECT環境変数が指 定されていない場合デフォルトです.`-h'や`--human-readable'オプ ションは,`--block-size=human-readable'と同じです.`--si'オプ ションは,`--block-size=si'と同じです.


2.3 ターゲットディレクトリ

GNUプログラム(少なくともcpinstallln,そし てmv)には,このオプションによってターゲットディレクトリを指定する ことが可能なものもあります.

` --target-directory=directory'

対象となるdirectoryを指定します.

ほとんどのプログラムに対するインターフェースは,オプションと,有限(おそ らくゼロの)数の固定した位置の引数を処理した後,残りの引数リストは空であ ることを期待される,または,同じように扱われる(通常ファイルとなる)項目の リストとなります.xargsプログラムは,この慣習を用いてより良く動作 するように設計されています.

終りに特例で様々な数の引数(すなわち,ターゲットディレクトリ)を持 つため,mvの類のコマンドは普通ではありません.これはmv * ../d/が引数の空間を使い果たし,ls | xargs ...は,それぞれの従属 するコマンドの呼び出しのために,特別な最終的な引数を指定するための明確な 方法ではないため,例えば"全てのファイルをここから../d/に移動する" のよ うないくつかの処理を実行するときに,これは明確ではなくなります.(それは, シェルコマンドを通じて動作可能ですが,それはそうするより人間の労働と能力 を必要とします.)

--target-directoryオプションは,cpinstallln,そしてmvプログラムが,xargsを用いて便利に使用す ることを可能にします.例えば,現在のディレクトリから同胞のディレクトリ, ここではdにファイルを移動することが可能です.(しかし,これは `.'で始まる名前のファイルを移動しません.)

 
ls |xargs mv --target-directory=../d

GNU findプログラムを使用している場合,このコマンドで全 てのファイルを移動できます.

 
find . -mindepth 1 -maxdepth 1 \
  | xargs mv --target-directory=../d

しかし,現在のディレクトリにファイルがない場合や,改行文字を含む名前を持 つファイルがある場合,それは失敗するでしょう.以下の例は,これらの制限を 取り除き,GNU findGNU xargsの両方を必要としま す.

 
find . -mindepth 1 -maxdepth 1 -print0 \
  | xargs --null --no-run-if-empty \
      mv --target-directory=../d

2.4 末尾のスラッシュ

GNUプログラム(少なくともcpmv)には,それぞれの source引数を処理する前に末尾のスラッシュを取り除くことを可能にする ものもあります.--strip-trailing-slashesオプションはこの動作を 可能にします.

source引数が末尾にスラッシュがあり,ディレクトリへのシンボリックリ ンクを指定しているとき,これは役に立ちます.シェルには,シンボリックリン クのようなものに対してファイル名の補完を実行しているとき,末尾のスラッシュ を自動的に追加することができるものもあるので,このシナリオ筋書きは現実と なります.このオプションがない場合,例えば(システムの名前変更機能のため の)mvは,末尾のスラッシュをシンボリックリンク先を参照しないように 要求するよう解釈する必要があり,そして,そのためシンボリックリンクではな く,間接的に参照されるディレクトリの名前を変更するはずです.その ような動作がデフォルトということにびっくりするかもしれませんが,それは POSIX.2で要求されていて,その標準のそれ以外の部分と一貫しています.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.