OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man7 / glob.7
index cf84469..92815c7 100644 (file)
 .\"
 .\" 2003-08-24 fix for / by John Kristoff + joey
 .\"
-.\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved.
-.\" Translated Wed 12 Aug 1998 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\" Updated 2003-09-28 by NAKANO Takeo
+.\"*******************************************************************
 .\"
-.\"WORD:       wild card pattern       ワイルドカードパターン
-.\"WORD:       character class         文字クラス
-.\"WORD:       range                   領域指定
-.\"WORD:       complementation         補集合
-.\"WORD:       regular expression      正規表現
-.\"WORD:       bracket expression      ブラケット表現
-.\"WORD:       collating sequence      照合順序
-.\"WORD:       collating element       照合順序の要素
-.\"WORD:       current locale          カレントロケール
-.\"WORD:       equivalence class       等価クラス
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH GLOB 7 2003-08-24 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.TH GLOB 7 2003\-08\-24 Linux "Linux Programmer's Manual"
 .SH 名前
 glob \- パス名を glob する
 .SH 説明
-昔々 UNIX V6 では、ワイルドカードパターンを展開する
-.I /etc/glob
-と言うプログラムがあった。その後すぐに、
+昔々 UNIX V6 では、ワイルドカードパターンを展開する \fI/etc/glob\fP と言うプログラムがあった。その後すぐに、
 この機能はシェルに組み込まれるようになった。
 
-今日では、この機能をユーザープログラムからも実行できるよう、
-.BR glob (3)
-というライブラリルーチンも存在している。
+今日では、この機能をユーザープログラムからも実行できるよう、 \fBglob\fP(3)  というライブラリルーチンも存在している。
 
 glob の規則を以下に述べる (POSIX.2 3.13)。
 .SS ワイルドカードマッチ
-文字列に \(aq?\(aq, \(aq*\(aq, \(aq[\(aq が含まれていると、
-それはワイルドカードパターンとみなされる。
-「glob する」というのは、ワイルドカードパターンを展開して、
-そのパターンにマッチするパス名のリストを得ることである。
-マッチは以下のように定義される。
+文字列に \(aq?\(aq, \(aq*\(aq, \(aq[\(aq が含まれていると、 それはワイルドカードパターンとみなされる。 「glob
+する」というのは、ワイルドカードパターンを展開して、 そのパターンにマッチするパス名のリストを得ることである。 マッチは以下のように定義される。
 
 (ブラケット外部の) \(aq?\(aq はあらゆる単一の文字にマッチする。
 
-(ブラケット外部の) \(aq*\(aq はあらゆる文字列にマッチする。
-空文字列 (empty string) にもマッチする。
+(ブラケット外部の) \(aq*\(aq はあらゆる文字列にマッチする。 空文字列 (empty string) にもマッチする。
 .PP
-.B "文字クラス (character class)"
+\fB文字クラス (character class)\fP
 .sp
 "\fI[...]\fP" と言う表記は、先頭の \(aq[\(aq に続く最初の文字が \(aq!\(aq で
-なければ、ブラケットの中に含まれている文字のどれか一つにマッチする。
-ブラケットの内部に含まれる文字列は空であってはならない。
-したがって \(aq]\(aq も最初の文字に指定すればブラケットの内部に含めることが
-できる (つまり "\fI[][!]\fP" は \(aq[\(aq, \(aq]\(aq, \(aq!\(aq の
-3 文字のどれかにマッチする)。
+なければ、ブラケットの中に含まれている文字のどれか一つにマッチする。 ブラケットの内部に含まれる文字列は空であってはならない。 したがって
+\(aq]\(aq も最初の文字に指定すればブラケットの内部に含めることが できる (つまり "\fI[][!]\fP" は \(aq[\(aq,
+\(aq]\(aq, \(aq!\(aq の 3 文字のどれかにマッチする)。
 .PP
-.B "領域指定 (range)"
+\fB領域指定 (range)\fP
 .sp
-特殊な表記法が一つ存在する。\(aq\-\(aq を挟む二つの文字は領域指定となる。
-(つまり "\fI[A\-Fa\-f0\-9]\fP" は "\fI[ABCDEFabcdef0123456789]\fP"
-と等価となる。) \(aq\-\(aq 文字そのものを入れたい場合は、
-ブラケットの先頭または最後の文字に指定すればよい。
-(つまり "\fI[]\-]\fP" は二つの文字 \(aq]\(aq と \(aq\-\(aq
-にマッチし、"\fI[\-\-0]\fP" は \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq の
-3 文字にマッチする。この間の \(aq/\(aq にはマッチしない。後述を参照。)
+特殊な表記法が一つ存在する。\(aq\-\(aq を挟む二つの文字は領域指定となる。 (つまり "\fI[A\-Fa\-f0\-9]\fP" は
+"\fI[ABCDEFabcdef0123456789]\fP" と等価となる。) \(aq\-\(aq 文字そのものを入れたい場合は、
+ブラケットの先頭または最後の文字に指定すればよい。 (つまり "\fI[]\-]\fP" は二つの文字 \(aq]\(aq と \(aq\-\(aq
+にマッチし、"\fI[\-\-0]\fP" は \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq の 3 文字にマッチする。この間の
+\(aq/\(aq にはマッチしない。後述を参照。)
 .PP
-.B 補集合 (complementation)
+\fB補集合 (complementation)\fP
 .sp
-"\fI[!...]\fP" と言う表記は、ブラケットの内部に含まれない単一の文字にマッチする
-(ただし先頭にある \(aq!\(aq は除外)。 (つまり "\fI[!]a\-]\fP" は
-\(aq]\(aq, \(aqa\(aq, \(aq\-\(aq 以外のすべての文字の、どれか一つにマッチする。)
+"\fI[!...]\fP" と言う表記は、ブラケットの内部に含まれない単一の文字にマッチする (ただし先頭にある \(aq!\(aq は除外)。 (つまり
+"\fI[!]a\-]\fP" は \(aq]\(aq, \(aqa\(aq, \(aq\-\(aq 以外のすべての文字の、どれか一つにマッチする。)
 
-バックスラッシュ \(aq\e\(aq を前置すれば、 \(aq?\(aq, \(aq*\(aq, \(aq[\(aq
-は通常の文字として扱われる。
-またはシェルのコマンドラインの一部に指定する場合は、
-クォートで囲っても同じ効果が得られる。ブラケットの内部では、
-これらの文字はその文字自身だけを意味する。
-すなわち "\fI[[?*\e]\fP" は \(aq[\(aq, \(aq?\(aq, \(aq*\(aq, \(aq\e\(aq
-のどれか一文字にマッチする。
+バックスラッシュ \(aq\e\(aq を前置すれば、 \(aq?\(aq, \(aq*\(aq, \(aq[\(aq は通常の文字として扱われる。
+またはシェルのコマンドラインの一部に指定する場合は、 クォートで囲っても同じ効果が得られる。ブラケットの内部では、
+これらの文字はその文字自身だけを意味する。 すなわち "\fI[[?*\e]\fP" は \(aq[\(aq, \(aq?\(aq, \(aq*\(aq,
+\(aq\e\(aq のどれか一文字にマッチする。
 .SS "パス名 (pathname)"
-glob 動作は、パス名のそれぞれの部分に独立に適用される。
-パス名に存在する \(aq/\(aq は \(aq?\(aq や \(aq*\(aq ワイルドカードにはマッチしない。
-また "\fI[.\-0]\fP" のような領域指定にもマッチしない。
-領域指定は陽に \(aq/\(aq 文字を含むことはできない。これは文法エラーとなる。
+glob 動作は、パス名のそれぞれの部分に独立に適用される。 パス名に存在する \(aq/\(aq は \(aq?\(aq や \(aq*\(aq
+ワイルドカードにはマッチしない。 また "\fI[.\-0]\fP" のような領域指定にもマッチしない。 領域指定は陽に \(aq/\(aq
+文字を含むことはできない。これは文法エラーとなる。
 
-\(aq.\(aq で始まるパス名では、この文字は陽にマッチさせなければならない。
-(つまり \fIrm\ *\fP は .profile を削除しない。また \fItar\ c\ *\fP
-ではすべてのファイルはアーカイブされない。 \fItar\ c\ .\fP の方が良い。)
+\(aq.\(aq で始まるパス名では、この文字は陽にマッチさせなければならない。 (つまり \fIrm\ *\fP は .profile を削除しない。また
+\fItar\ c\ *\fP ではすべてのファイルはアーカイブされない。 \fItar\ c\ .\fP の方が良い。)
 .SS 空のリスト
-先に与えた、わかりやすく簡単なルール、
-「ワイルドカードパターンをマッチしたパス名のリストに展開する」と言うのは、
-オリジナルの UNIX における定義であった。
-これはパターンが空のリストに展開されることも許可されていた。
-例えば
+先に与えた、わかりやすく簡単なルール、 「ワイルドカードパターンをマッチしたパス名のリストに展開する」と言うのは、 オリジナルの UNIX
+における定義であった。 これはパターンが空のリストに展開されることも許可されていた。 例えば
 .br
 .nf
     xv \-wait 0 *.gif *.jpg
 .fi
-において、*.gif ファイルが全くない場合でも、
-これは空のリストに展開されるため、エラーにならない。
-しかし POSIX では、文法的に正しくないパターンや、
-マッチがなかったパターンは、
-そのまま変更されずに残されることになっている。
-.I bash
-では
-.I allow_null_glob_expansion=true
-を指定することで、以前の振る舞いに設定することができる。
+において、*.gif ファイルが全くない場合でも、 これは空のリストに展開されるため、エラーにならない。 しかし POSIX
+では、文法的に正しくないパターンや、 マッチがなかったパターンは、 そのまま変更されずに残されることになっている。 \fIbash\fP では
+\fIallow_null_glob_expansion=true\fP を指定することで、以前の振る舞いに設定することができる。
 
 (同様の問題は別のところでも起こっている。例えば、古いスクリプトにおける
 .br
@@ -134,45 +97,28 @@ glob 動作は、パス名のそれぞれの部分に独立に適用される。
 .nf
     rm \-f nosuchfile \`find . \-name "*~"\`
 .fi
-のようにしなければならない。さもないと
-.I rm
-を引き数リストなしで呼び出す可能性があり、
-エラーメッセージが出てしまう。)
+のようにしなければならない。さもないと \fIrm\fP を引き数リストなしで呼び出す可能性があり、 エラーメッセージが出てしまう。)
 .SH 注意
 .SS 正規表現
-ワイルドカードパターンは正規表現と多少似ているが、しかしこの両者は異なる。
-まず第一に、前者がファイル名にマッチするのに対して、
-後者はテキストにマッチする。第二に、ルールも同じではない。
-例えば正規表現における \(aq*\(aq は、
-前置された文字の 0 以上の繰り返しを表す。
+ワイルドカードパターンは正規表現と多少似ているが、しかしこの両者は異なる。 まず第一に、前者がファイル名にマッチするのに対して、
+後者はテキストにマッチする。第二に、ルールも同じではない。 例えば正規表現における \(aq*\(aq は、 前置された文字の 0
+以上の繰り返しを表す。
 
-正規表現にもブラケット表現はあるが、否定は \(aq^\(aq でなされる。
-POSIX ではワイルドカードパターンにおける "\fI[^...]\fP" を未定義であるとしている。
+正規表現にもブラケット表現はあるが、否定は \(aq^\(aq でなされる。 POSIX ではワイルドカードパターンにおける "\fI[^...]\fP"
+を未定義であるとしている。
 .SS 文字クラスと国際化
-領域指定は、もともとはもちろん ASCII における順序並びを意味していた。
-したがって "\fI[\ \-%]\fP" は "\fI[\ !"#$%]\fP" の意味であり、
-"\fI[a\-z]\fP" は「すべての小文字」の意味であった。
-UNIX の実装の中には、これを拡張したものが存在し、
-そこでは X\-Y という領域指定は、X のコードと
-Y のコードに挟まれたコードを持つ文字すべてを表すようになっていた。
-しかし、これにはユーザーがローカルなシステムにおける
-文字コードを知らなければならず、
-さらにローカルなアルファベットに対する照合順序
-(collating sequence) が文字コードの順序と異なっている場合には不便であった。
-(訳注: collating sequence に関しては
-.BR regex (7)
-を参照して下さい。)
-したがって POSIX では、ワイルドカードパターンと正規表現の双方において、
-ブラケット表記を大幅に拡張している。
-これまで我々は、ブラケット表記には三つの要素が含まれうることを見てきた。
-すなわち (i) 否定、(ii) 単一の文字、(iii) 領域指定、の三つである。
-POSIX では、領域指定をより国際化に便利なように定義しており、
+領域指定は、もともとはもちろん ASCII における順序並びを意味していた。 したがって "\fI[\ \-%]\fP" は "\fI[\ !"#$%]\fP"
+の意味であり、 "\fI[a\-z]\fP" は「すべての小文字」の意味であった。 UNIX の実装の中には、これを拡張したものが存在し、 そこでは X\-Y
+という領域指定は、X のコードと Y のコードに挟まれたコードを持つ文字すべてを表すようになっていた。
+しかし、これにはユーザーがローカルなシステムにおける 文字コードを知らなければならず、 さらにローカルなアルファベットに対する照合順序
+(collating sequence) が文字コードの順序と異なっている場合には不便であった。 (訳注: collating sequence
+に関しては \fBregex\fP(7)  を参照して下さい。)  したがって POSIX では、ワイルドカードパターンと正規表現の双方において、
+ブラケット表記を大幅に拡張している。 これまで我々は、ブラケット表記には三つの要素が含まれうることを見てきた。 すなわち (i) 否定、(ii)
+単一の文字、(iii) 領域指定、の三つである。 POSIX では、領域指定をより国際化に便利なように定義しており、
 また三つのタイプをブラケット表記の要素として追加している。
 
-(iii) 領域指定 X\-Y は X と Y に挟まれた (両端含む) すべての文字を意味する。
-このとき、カレントロケール (current locale) の
-.B LC_COLLATE
-カテゴリで定義されている照合順序が用いられる。
+(iii) 領域指定 X\-Y は X と Y に挟まれた (両端含む) すべての文字を意味する。 このとき、カレントロケール (current
+locale) の \fBLC_COLLATE\fP カテゴリで定義されている照合順序が用いられる。
 
 (iv) 名前付き文字クラス: 以下のようなものである。
 .nf
@@ -182,30 +128,19 @@ POSIX では、領域指定をより国際化に便利なように定義して
 [:punct:]  [:space:]  [:upper:]  [:xdigit:]
 
 .fi
-これを用いれば "\fI[a\-z]\fP" の代わりに "\fI[[:lower:]]\fP" のような指定ができる。
-またデンマークのように、アルファベットの \(aqz\(aq 以降に
-3 つの文字が存在するような場合でも、同じような動作が期待できる。
-これらの文字クラスはカレントロケールの
-.B LC_CTYPE
-カテゴリで定義されている。
+これを用いれば "\fI[a\-z]\fP" の代わりに "\fI[[:lower:]]\fP" のような指定ができる。 またデンマークのように、アルファベットの
+\(aqz\(aq 以降に 3 つの文字が存在するような場合でも、同じような動作が期待できる。 これらの文字クラスはカレントロケールの
+\fBLC_CTYPE\fP カテゴリで定義されている。
 
-(v) 照合順序におけるシンボル: "\fI[.ch.]\fP" や "\fI[.a-acute.]\fP" のように "\fI[.\fP"
-と "\fI.]\fP" で挟まれた文字列は、カレントロケールで定義された照合順序の要素となる。
-ある一つの要素が複数の文字からなる場合もありうることに注意。
+(v) 照合順序におけるシンボル: "\fI[.ch.]\fP" や "\fI[.a\-acute.]\fP" のように "\fI[.\fP" と "\fI.]\fP"
+で挟まれた文字列は、カレントロケールで定義された照合順序の要素となる。 ある一つの要素が複数の文字からなる場合もありうることに注意。
 
-(vi) 等価クラス表現 (equivalence class expressions): "\fI[=a=]\fP"
-のように "\fI[=\fP" と "\fI=]\fP" とで挟まれた文字列である。
-これは等価クラスのメンバーである照合順序の要素すべてになる。
-等価クラスはカレントロケールで定義されているものになる。
-例えば、"\fI[[=a=]]\fP" は
-"\fI[a[.a\-acute.][.a\-grave.][.a\-umlaut.][.a\-circumflex.]]\fP"
-と等価である
-(Latin-1 表記では [a\e`{a}\e'{a}\e"{a}\e^{a}] も同じ。
-[訳注] 日本語の roff ページでは latin1 コードが出ないので、
-ここでは TeX 表記で記載)。
+.\" FIXME . the accented 'a' characters are not rendering properly
+.\" mtk May 2007
+(vi) 等価クラス表現 (equivalence class expressions):
+"\fI[=a=]\fP" のように "\fI[=\fP" と "\fI=]\fP" とで挟まれた文字列であり、
+カレントロケールで定義された等価クラスのメンバーである照合要素のいずれかを表す。
+例えば、"\fI[[=a=]]\fP" は "\fI[aáàäâ]\fP" (注意: これは Latin\-1 表記)、つまり
+"\fI[a[.a\-acute.][.a\-grave.][.a\-umlaut.][.a\-circumflex.]]\fP" と等価になる。
 .SH 関連項目
-.BR sh (1),
-.BR fnmatch (3),
-.BR glob (3),
-.BR locale (7),
-.BR regex (7)
+\fBsh\fP(1), \fBfnmatch\fP(3), \fBglob\fP(3), \fBlocale\fP(7), \fBregex\fP(7)