File: glob.7

package info (click to toggle)
manpages-fr 0.9.3-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 7,052 kB
  • ctags: 4
  • sloc: makefile: 58; sh: 8
file content (197 lines) | stat: -rw-r--r-- 8,113 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
.\" Copyright (c) 1998 Andries Brouwer
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\"
.\"
.\" Traduction 15/09/1998 par Christophe Blaess (ccb@club-internet.fr)
.\" LDP-man-pages-1.20
.\"
.TH GLOB 7 "15 Septembre 1998" Linux "Manuel de l'administrateur Linux"
.SH NOM
glob \- D�veloppement de noms de fichiers.
.SH DESCRIPTION
Il y a bien longtemps, dans Unix V6, existait un programme nomm�
.I /etc/glob
qui permettait de d�velopper les motifs g�n�riques dans les noms de fichiers.
Ce programme devint bient�t une routine interne du shell.

De nos jours, on trouve �galement une routine de biblioth�que nomm�e
.BR glob (3)
qui effectue le m�me travail en �tant invoqu�e par un programme utilisateur.

Les r�gles de d�veloppement sont les suivantes (POSIX 1003.2, 3.13).
.SH "MOTIFS G�N�RIQUES"
Une cha�ne est un motif g�n�rique si elle contient un ou plusieurs
caract�res parmi `?', `*' et `['. Le d�veloppement (globbing) est l'op�ration
qui transforme un motif g�n�rique en une liste de noms de fichiers
correspondant � ce motif.
La correspondance est d�finie ainsi :

Un `?' (sans les apostrophes) correspond � n'importe quel caract�re.

A `*' (sans les apostrophes) correspond � n'importe quelle cha�ne, y compris
la cha�ne vide.

.SS "Classes de caract�res"
Une expression du type `[...]', dans laquelle le premier caract�re apr�s le `['
n'est pas un `!' est mise en correspondance avec un seul des caract�res contenus
entre les crochets.
L'ensemble des caract�res cit�s ne peut pas �tre vide, ainsi, le crochet fermant `]'
peut �tre pr�sent dans l'ensemble, � la condition qu'il soit en premi�re place.
Par cons�quent, la cha�ne `[][!]' peut �tre mise en correspondance avec l'un des
trois caract�res `[', `]' et `!'.

.SS Intervalles
Il existe une convention particuli�re, suivant laquelle deux caract�res s�par�s par
un tiret `-' indiquent un intervalle.
Ainsi, `[A-Fa-f0-9]' �quivaut � `[ABCDEFabcdef0123456789]'.
Pour inclure un tiret au sens litt�ral, il suffit de l'utiliser en premier ou en dernier
entre les crochets. `[]-]' correspond uniquement aux caract�res `]' et `-',
alors que `[--/]' correspond aux trois caract�res `-', `.', `/'.

.SS N�gation
Une expression `[!...]' correspond � n'importe quel caract�re qui ne puisse pas �tre
mis en correspondance avec la cha�ne obtenue en supprimant le `!' initial.
(ainsi, `[!]a-]' correspond � tout caract�re sauf `]', `a' et `-'.)

On peut d�sactiver le comportement sp�cial des caract�res `?', `*' et `[' en
les faisant pr�c�der par un backslash '\e', ou, dans le cas d'une ligne de commande
shell, en les encadrant par des guillemets.
Entre crochets, ces caract�res ne prennent que leur signification litt�rale.
Ainsi, `[[?*\e]' correspond aux quatres caract�res `[', `?', `*' et `\e'.

.SH CHEMINS D'ACC�S

Le d�veloppement est appliqu� a chaque composant du chemin d'acc�s
s�par�ment. Un `/' dans un chemin ne peut pas �tre mis en correspondance
avec un `?' ou `*', ni par un intervalle tel que `[.-0]'.
Un intervalle ne peut pas contenir explicitement un caract�re `/'. Ceci
d�clencherait une erreur de syntaxe.

Si un nom de fichier commence par un `.', Ce caract�re doit �tre mis en
correspondance explicitement. (Ainsi, `rm *' ne supprimera pas .profile,
et `tar c *' n'archivera pas tous les fichiers ; `tar c .' serait pr�f�rable.)

.SH "LISTES VIDES"

La d�finition simple et �l�gante fournie plus haut `transformer un motif g�n�rique
en une liste de noms de fichiers correspondants' est la d�finition Unix
originale. Elle autorisait la pr�sence de motif se d�veloppant en listes
vides, comme
.br
.nf
	xv -wait 0 *.gif *.jpg
.fi
alors qu'il n'y a peut-�tre aucun fichiers *.gif pr�sents (et on ne
peut pas consid�rer cela comme une erreur).


Toutefois, POSIX r�clame qu'un motif soit laiss� inchang� s'il
est syntaxiquement incorrect, ou si la liste des noms de fichiers
correspondants est vide.
On peut forcer
.I bash
� adopter le comportement classique en positionnant la variable
d'environnement
.IR allow_null_glob_expansion=true .

(Des probl�mes similaires se produisent ailleurs. Par exemple des
vieux scripts ayant
.br
.nf
	rm `find . -name "*~"`
.fi
devraient �tre remplac�s par des nouveaux scripts contenant
.br
.nf
	rm -f nosuchfile `find . -name "*~"`
.fi
pour �viter les messages d'erreurs si
.I rm
est invoqu� avec une liste vide d'arguments).

.SH NOTES
.SS Expressions r�guli�res
Notez que les motifs g�n�riques ne sont pas des expressions
r�guli�res bien qu'ils leur ressemblent. Tout d'abord, ils
correspondent � des noms de fichiers, et pas � du texte, de plus
les conventions ne sont pas identiques, par exemple, dans une
expression r�guli�re, `*' signifie z�ro ou plusieurs copies
de l'�l�ment pr�cedent.

Maintenant que les expressions r�guli�res disposent de composants
entre crochets o� la n�gation est indiqu�e par un `^', POSIX
a pr�cis� que le motif g�n�rique `[^...]' a un effet ind�fini.

.SS Internationalisation et cmasses de caract�res.

Bien entendu, les intervalles ont �t� cr��s � l'origine en tant
qu'intervalle ASCII o� `[ -%]' signifie `[ !"#$%]' et `[a-z]' correspond
� "tout caract�re minuscule".
Certaines impl�mentations Unix ont g�n�ralis� ceci de mani�re � ce que
l'intervalle X-Y correspondent � l'ensemble des caract�res dont les
codes se trouvent entre ceux de X et de Y. N�anmoins, ceci signifie
que l'utilisateur doit conna�tre le codage utilis� sur le syst�me local.
De plus ceci ne fonctionne pas si l'ordre de l'alphabet local n'est
pas celui adopt� pour le codage des caract�res.
POSIX a alors �tendu grandement la notation des expressions entre crochets
autant pour les motifs g�n�riques que pour les expressions r�guli�res.

Nous avons vu pr�c�dement 3 types d'�l�ments pouvant se trouver entre
crochets. Plus pr�cis�ment (i) une negation, (ii) des caract�res explicites,
et (iii) des intervalles. POSIX sp�cifie les intervalles d'une mani�re
plus utile au niveau international, et ajoute trois nouveaux types :

(iii) Les intervalles X-Y comprenant tous les caract�res se trouvant entre X
et Y (inclus) dans l'ordre de l'alphabet d�crit par la cat�gorie LC_COLLATE de 
la localisation en cours.

(iv) Des classes de caract�res comme
.br
.nf
[:alnum:]  [:alpha:]  [:blank:]  [:cntrl:]
[:digit:]  [:graph:]  [:lower:]  [:print:]
[:punct:]  [:space:]  [:upper:]  [:xdigit:]
.fi
ainsi, on peut �crire `[[:lower:]]' � la place de `[a-z]', et que le
comportement soit aussi valide au Danemark, o� il existe 3 lettres
post�rieures au `z'.
Ces classes de caract�res sont d�finies par la cat�gorie LC_CTYPE 
de la localisation en cours.

(v) Les symboles groupant plusieurs lettres comme `[.ch.]' ou `[.a-acute.]',
dans lesquels les cha�nes entre `[.' et `.]' sont un �l�ment d�fini dans
la localisation en cours. Il peut �galement s'agir de multi-caract�res.

(vi) Des classes d'�quivalence comme `[=a=]', o� la cha�ne entre `[=' et `=]'
est un �l�ment d�finissant une classe d'�quivalence dans la localisation en cours
par exemple `[[=a=]]' peut �tre �quivalent � `[a����]' (Latin-1), c'est � dire
`[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]'.

.SH "VOIR AUSSI"
.BR sh (1),
.BR glob (3),
.BR fnmatch (3),
.BR locale (7),
.BR regex (7).

.SH TRADUCTION
Christophe Blaess, 1998.