Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 664c05250964d29fcf1d0bb310959fbc > files > 60

mandrake-doc-fr-10.0-5.1.100mdk.noarch.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Motifs d'englobement du shell</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="cmdline.html" title="Chapitre 3. Introduction à la ligne de commande"><link rel="previous" href="cmdline-attr.html" title="Manipulation des attributs de fichiers"><link rel="next" href="shell-pipes.html" title="Redirections et tubes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Motifs d'englobement du shell</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cmdline-attr.html">Précédent</a> </td><th width="60%" align="center">Chapitre 3. Introduction à la ligne de commande</th><td width="20%" align="right"> <a accesskey="n" href="shell-pipes.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="glob-regex"></a>Motifs d'englobement du shell</h2></div></div><div></div></div><p><a name="BId-cmdline-pa69"></a>   
         <a class="indexterm" name="BId-cmdline-it33"></a>
         <a class="indexterm" name="BId-cmdline-it34"></a>
         <a class="indexterm" name="BId-cmdline-it35"></a>

   Il est probable que vous utilisiez déjà sans le savoir des
   caractères d'<a name="BId-cmdline-gt3" href="glossary.html#term-globbing"><i class="glossterm">englobement</i></a>. Quand vous
   enregistrez un fichier dans une application sous <span class="application">Windows</span> ou
   lorsque vous recherchez un fichier, vous utilisez
   <tt class="literal">*</tt> pour désigner une suite de caractères
   quelconques. Par exemple, <tt class="literal">*.txt</tt> désigne
   l'ensemble des fichiers dont le nom se termine par
   <tt class="filename">.txt</tt>. Nous l'avons également utilisé
   fréquemment dans la section précédente, mais l'englobement va
   beaucoup plus loin que le seul <tt class="literal">*</tt>.
  </p><p><a name="BId-cmdline-pa70"></a>   Quand vous tapez une commande comme <span><b class="command">ls *.txt</b></span>, puis
   <b class="userinput"><tt>Entrée</tt></b>, la tâche de trouver quels fichiers
   correspondent au motif <tt class="literal">*.txt</tt> n'est pas du ressort de
   <span><b class="command">ls</b></span>, mais doit passer par le <span class="foreignphrase"><i class="foreignphrase">shell</i></span> lui-même. Cela
   requiert donc une petite explication sur la façon dont le
   <span class="foreignphrase"><i class="foreignphrase">shell</i></span> interprète une ligne de commande. Lorsque vous
   tapez :</p><a name="BId-cmdline-sc11"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ ls *.txt
readme.txt  recipes.txt
</pre></td></tr></table><p><a name="BId-cmdline-pa71"></a>La ligne de commande est tout d'abord
   séparée en mots (<tt class="literal">ls</tt> et <tt class="literal">*.txt</tt>
   en l'occurrence). Quand le <span class="foreignphrase"><i class="foreignphrase">shell</i></span> voit le
   <tt class="literal">*</tt> dans un des mots, il interprète le mot comme
   étant un motif englobant et le remplace dans la ligne de commande
   par les noms de tous les fichiers correspondant au motif. Avant que
   ne s'exécute la ligne de commande dans le <span class="foreignphrase"><i class="foreignphrase">shell</i></span>, ce dernier
   aura remplacé l'astérisque (<tt class="literal">*</tt>) par
   <tt class="filename">readme.txt</tt> et
   <tt class="filename">recettes.txt</tt> ; la commande deviendra donc
   <span><b class="command">ls readme.txt recettes.txt</b></span>, ce qui donnera le
   résultat recherché. Le <span class="foreignphrase"><i class="foreignphrase">shell</i></span> réagit aussi à la vue d'autres
   caractères :
      </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa72"></a><tt class="literal">?</tt> : correspond à
      un caractère unique, quel qu'il soit ;
	</p></li><li><p><a name="BId-cmdline-pa73"></a><tt class="literal">[...]</tt> :
     <a class="indexterm" name="BId-cmdline-it36"></a>correspond
     à tout caractère écrit entre les crochets ; les caractères
     peuvent désigner soit des intervalles (par exemple,
     <tt class="literal">1-9</tt>), soit des valeurs 
     <a name="BId-cmdline-gt4" href="glossary.html#term-discrete-values"><i class="glossterm">discrètes</i></a>, soit encore
     un mélange des deux. Exemple : <tt class="literal">[a-zBE5-7]</tt>
     correspond à tous les caractères de <tt class="literal">a</tt> à
     <tt class="literal">z</tt>, un <tt class="literal">B</tt>, un
     <tt class="literal">E</tt>, un <tt class="literal">5</tt>, un
     <tt class="literal">6</tt> ou un <tt class="literal">7</tt> ;
    </p></li><li><p><a name="BId-cmdline-pa74"></a><tt class="literal">[^...]</tt> : correspond
     à tous les caractères qui ne se trouvent <span class="emphasis"><em>pas</em></span>
     entre les crochets ; <tt class="literal">[^a-z]</tt>, par exemple,
     correspond à tout caractère qui n'est pas une lettre
     minuscule<sup>[<a name="id2538163" href="#ftn.id2538163">6</a>]</sup>.</p></li><li><p><a name="BId-cmdline-pa76"></a><tt class="literal">{c1,c2}</tt> :
	correspond à <tt class="literal">c1</tt> ou <tt class="literal">c2</tt>,
	où <tt class="literal">c1</tt> et <tt class="literal">c2</tt> sont
	également des caractères d'englobement, ce qui signifie que
	vous pouvez écrire <tt class="literal">{[0-9]*,[acr]}</tt>
	par exemple.
    </p></li></ul></div><p><a name="BId-cmdline-pa77"></a>Voici quelques exemples de motifs et
   leur signification :
  </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa78"></a><tt class="literal">/etc/*conf</tt> : tous
    les fichiers du répertoire <tt class="filename">/etc</tt> dont le nom
    se termine par <tt class="filename">conf</tt>. Cela peut correspondre
    au fichier <tt class="filename">/etc/inetd.conf</tt>, mais aussi à
    <tt class="filename">/etc/conf.linuxconf</tt>, et à
    <tt class="filename">/etc/conf</tt> si un tel fichier
    existe. Souvenez-vous que <tt class="literal">*</tt> peut correspondre à
    une chaîne vide.
    </p></li><li><p><a name="BId-cmdline-pa79"></a><tt class="literal">image/{cars,space[0-9]}/*.jpg</tt> :
    tous les fichiers dont le nom se termine par
    <tt class="filename">.jpg</tt> dans les répertoires
    <tt class="filename">image/cars</tt>,
    <tt class="filename">image/space0</tt>, jusqu'à
    <tt class="filename">image/space9</tt>, s'ils existent.
    </p></li><li><p><a name="BId-cmdline-pa80"></a><tt class="literal">/usr/share/doc/*/README</tt> :
     tous les fichiers de nom <tt class="filename">README</tt> dans tous
     les sous-répertoires immédiats de
     <tt class="filename">/usr/share/doc</tt>. Cela correspondra à
     <tt class="filename">/usr/share/doc/mandrake/README</tt> par exemple,
     mais pas à <tt class="filename">/usr/share/doc/myprog/doc/README</tt>.
    </p></li><li><p><a name="BId-cmdline-pa81"></a><tt class="filename">*[^a-z]</tt> :
     tous les fichiers du répertoire courant dont le nom ne finit
     <span class="emphasis"><em>pas</em></span> par une lettre minuscule.
    </p></li></ul></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2538163" href="#id2538163">6</a>] </sup>
     <a class="indexterm" name="BId-cmdline-it37"></a> Attention ! Bien que cela soit
     vrai pour la plupart des langues, il est possible que cela ne
     fonctionne pas pour votre langue locale. Cela dépend de l'ordre
     de tri (<span class="foreignphrase"><i class="foreignphrase">collating order</i></span>). Pour
     certaines configurations de langue, <tt class="literal">[a-z]</tt>
     correspondra à <tt class="literal">a</tt>, <tt class="literal">A</tt>,
     <tt class="literal">b</tt>, <tt class="literal">B</tt> (...),
     <tt class="literal">Z</tt>. Et cela, sans parler du fait que certaines
     langues contiennent des caractères accentués...</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cmdline-attr.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdline.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="shell-pipes.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Manipulation des attributs de fichiers </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Redirections et tubes</td></tr></table></div></body></html>