465 lines
14 KiB
XML
465 lines
14 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||
<!DOCTYPE html
|
||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||
"tuteurs://DTD/tml.dtd">
|
||
<html>
|
||
<head>
|
||
<title>Fichiers</title>
|
||
</head>
|
||
<body>
|
||
|
||
<h1>Manipuler les fichiers (<em>files</em>)</h1>
|
||
|
||
<h2><a name="comment">Comment un fichier est-il créé ?</a></h2>
|
||
|
||
<p>
|
||
Un fichier est un paquet d'informations : du texte, de la musique, une
|
||
image... Chaque objet que vous manipulez en informatique (une page Web, la
|
||
musique de Casimir, vos photos de vacances, un logiciel...) correspond à un
|
||
fichier. Quand vous écrivez un texte avec Word et que vous le sauvegardez sous
|
||
le nom « Rapport de maîtrise », vous créez un fichier à ce nom, écrit
|
||
sur le disque dur. Chaque fois que vous écrivez quelque chose sur le disque,
|
||
vous créez un ou plusieurs fichiers.
|
||
</p>
|
||
|
||
<p>
|
||
Une des opérations les plus courantes consiste à écrire du texte. Pour cela,
|
||
voir le cours sur les <a href="editeurs/">éditeurs de texte</a>.
|
||
</p>
|
||
|
||
<h2><a name="nom">Quel nom donner à ses fichiers ?</a></h2>
|
||
|
||
<p>
|
||
Les noms de fichiers s'écrivent avec des caractères alphanumériques (lettres
|
||
et chiffres). On peut utiliser des majuscules et des minuscules, mais elles
|
||
ne sont pas interchangeables : <code>document</code> et
|
||
<code>Document</code> sont deux fichiers distincts.
|
||
</p>
|
||
|
||
<p>
|
||
Il est préférable d'éviter les espaces dans les noms de fichiers (les
|
||
remplacer par underscore <code>_</code>, tiret <code>-</code>, virgule
|
||
<code>,</code> ou point <code>.</code>). Il vaut mieux éviter les caractères
|
||
accentués, et proscrire le reste (ponctuations diverses, signes bizarres). Il
|
||
faut aussi éviter de faire commencer un fichier par un <code>.</code> (par
|
||
exemple <code>.document</code>), et de faire des noms trop longs (même si en
|
||
théorie vous avez droit à 255 caractères).
|
||
</p>
|
||
|
||
<p>
|
||
Certains fichiers ont des suffixes conventionnels qui les identifient auprès
|
||
des utilisateurs et de certains programmes (liste non exhaustive de suffixes
|
||
et d'outils) :
|
||
</p>
|
||
|
||
<table class="tableau">
|
||
<tr>
|
||
<th>Suffixe</th>
|
||
<th>Nature</th>
|
||
<th>Logiciel à utiliser</th>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.tex</code></td>
|
||
<td>Fichier source pour LaTeX</td>
|
||
<td><a href="editeurs/">Éditeur de texte</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.dvi</code></td>
|
||
<td>Résultat de la compilation LaTeX</td>
|
||
<td><a href="&url.tuteurs;logiciels/latex/xdvi.html"><code>xdvi</code></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.aux</code>, <code>.log</code>, <code>.toc</code>, <code>.mp</code>, etc.</td>
|
||
<td>Fichiers produits automatiquement par la compilation LaTeX</td>
|
||
<td>À regarder avec <a href="#less"><code>less</code></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.ps</code>, <code>.eps</code></td>
|
||
<td>Fichiers PostScript</td>
|
||
<td><a href="http://www.spi.ens.fr/install/ghostview.html"><code>gv</code></a> (Ghostview)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.txt</code></td>
|
||
<td>Fichier texte</td>
|
||
<td><a href="editeurs/">Éditeur</a> si vous voulez le
|
||
modifier, <a href="#less"><code>less</code></a> si vous voulez juste
|
||
le lire.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.html</code>, <code>.shtml</code>, <code>.htm</code></td>
|
||
<td>Pages Web</td>
|
||
<td><a href="&url.tuteurs;internet/web/lynx.html">Navigateur</a>
|
||
(<code>netscape</code>, <code>links</code>...)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.au</code>, <code>.ogg</code>, <code>.mp2</code>, <code>.mp3</code></td>
|
||
<td>Son</td>
|
||
<td>Les fichiers <code>.au</code> s'écoutent avec <code>play</code>, les
|
||
<code>.ogg</code> avec <code>ogg123</code>, les <code>.mp2</code> avec
|
||
<code>maplay</code> , les <code>.mp3</code> avec <code>mpg123</code>. </td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.tiff</code>, <code>.png</code>, <code>.jpg</code>,
|
||
<code>.gif</code>, <code>.ppm</code>...</td>
|
||
<td>Images</td>
|
||
<td><a href="http://www.spi.ens.fr/install/xv.html"><code>xv</code></a>
|
||
pour les regarder ; <code>gimp</code> pour les modifier</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.mov</code>, <code>.avi</code></td>
|
||
<td>Séquences animées</td>
|
||
<td><a href="http://www.spi.ens.fr/install/xanim.html"><code>xanim</code></a></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.pdf</code></td>
|
||
<td>Portable Document Format</td>
|
||
<td><a href="http://www.spi.ens.fr/install/acrobat.html"><code>acroread</code></a> (Acrobat Reader)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>.gz</code>, <code>.tgz</code>, <code>.tar</code>,
|
||
<code>.tar.gz</code>, <code>.Z</code>, <code>.tar.Z</code>,
|
||
<code>.zip</code>, <code>.zoo</code>, <code>.lha</code>, <code>.lzx</code>,
|
||
<code>.z</code>, <code>.uu</code>, <code>.shar</code></td>
|
||
<td>Divers formats d'archives plus ou moins compressés</td>
|
||
<td>Consultez la page sur la <a href="archives.html">compression</a></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>
|
||
De façon générale, tous les fichiers LaTeX ont un suffixe <code>.tex</code>,
|
||
et toutes les pages Web un suffixe <code>.html</code> (par exemple ce document
|
||
s'appelle <code>fichiers.html</code>).
|
||
</p>
|
||
|
||
<h2><a name="less"><code>less <em>fichier</em></code></a></h2>
|
||
|
||
<p>
|
||
Permet lire un fichier sans l'éditer (c'est-à-dire ouvrir un document afin de
|
||
pouvoir le modifier). Les commandes de base sont :
|
||
</p>
|
||
|
||
<table class="tableau">
|
||
<tr>
|
||
<td><code>h</code></td>
|
||
<td>afficher une aide.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SPC</code></td><td>faire défiler le texte page par page</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>d, ^D</code> (<em>down</em>)</td><td>descendre d'un demi-écran</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>f, ^F</code> (<em>forward</em>)</td><td>descendre d'un écran</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>p, ^P</code> (<em>previous</em>)</td><td>remonter d'un demi-écran</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>b, ^B</code> (<em>back</em>)</td><td>remonter d'un écran</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>j</code></td><td>descendre d'une ligne</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>k</code></td><td>remonter d'une ligne</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>G</code></td><td>aller à la fin du texte</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code><em>nombre</em>G</code></td>
|
||
<td>aller à la ligne de numéro <em>nombre</em> (par exemple, <code>1G</code>
|
||
place à la première ligne du fichier).</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>/mot</code></td>
|
||
<td>chercher le « mot » dans le texte. Il sera signalé en inverse dans
|
||
tout le texte. Pour aller à la prochaine occurence du mot, taper
|
||
<code>n</code>, pour aller à la précédente occurence, taper
|
||
<code>N</code>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>q</code> </td><td>quitter</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<h2><a name="more">Remarques sur <code>more</code> et <code>cat</code></a></h2>
|
||
|
||
<p>
|
||
<strong><code>cat</code></strong> a pour fonction première d'afficher un
|
||
fichier. Il est rapide et pratique pour un fichier très court, mais nous ne
|
||
vous le conseillons pas pour regarder un fichier un peu conséquent :
|
||
<code>cat</code> affiche le contenu du fichier d'un seul coup (si le texte
|
||
fait plus de 10-15 lignes, on ne voit rien). D'autre part, il ne permet aucune
|
||
recherche.
|
||
</p>
|
||
|
||
<p>
|
||
<strong><code>more</code></strong> (en savoir <em> davantage</em> sur un
|
||
fichier) est une commande standard sur tous les systèmes Unix (alors que
|
||
<code>less</code> n'est pas installé partout). <code>less</code> (installé à
|
||
l'École) est cependant plus performant : les mots recherchés apparaissent
|
||
sur fond noir au lieu d'être juste placés en haut de l'écran, le défilement du
|
||
texte est plus précis. Si vous n'avez que <code>more</code> à disposition,
|
||
vous pouvez utiliser les commandes suivantes :
|
||
</p>
|
||
|
||
<table class="tableau">
|
||
<tr>
|
||
<td><code>h</code></td><td>afficher une aide</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>d</code> (<em> down</em>)</td><td>descendre d'un demi-écran</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>f</code> (<em> forward</em>)</td><td>descendre d'un écran</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>b</code> (<em> back</em>)</td><td>remonter d'un demi-écran</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>/mot</code></td>
|
||
<td>chercher le « mot » dans le texte (le résultat est beaucoup moins clair
|
||
qu'avec <code>less</code> ).</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>q</code></td><td>quitter</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<h2>Manipuler les fichiers</h2>
|
||
|
||
<h3><a name="cp"><code>cp <em>nom1</em> <em>nom2</em></code> (<em>copy</em>)</a></h3>
|
||
|
||
<p>
|
||
Permet de recopier le fichier <code>nom1</code>dans un fichier
|
||
<code>nom2</code>. Ils seront donc identiques.
|
||
</p>
|
||
|
||
<p>
|
||
&icone.note;
|
||
<a href="exercices/cp_mv.html">Exercices sur cp</a>.
|
||
</p>
|
||
|
||
<h3><a name="mv"><code>mv <em>nom1</em> <em>nom2</em></code> (<em>move</em>,
|
||
déplacer et renommer)</a></h3>
|
||
|
||
<h4>Renommer</h4>
|
||
|
||
<p>
|
||
<code>mv truc chose</code> :
|
||
renomme le fichier ou le répertoire <code>truc</code> en <code>chose</code>.
|
||
</p>
|
||
|
||
<h4>Déplacer</h4>
|
||
|
||
<p>
|
||
<code>mv truc chose/</code> :
|
||
déplace le fichier <code>truc</code> dans le répertoire <code>chose/</code>.
|
||
</p>
|
||
|
||
<p>
|
||
<code>mv fichier ..</code> :
|
||
déplace un fichier dans le répertoire père (pour ce terme, voir dans le
|
||
tableau qui illustre <a href="repertoires.html#cd"><code>cd</code></a>).
|
||
</p>
|
||
|
||
<p>
|
||
&icone.note;
|
||
<a href="exercices/cp_mv.html">Exercices sur mv</a>.
|
||
</p>
|
||
|
||
<h3><a name="rm"><code>rm <em>fichier</em></code> (<em>remove</em>)</a></h3>
|
||
|
||
<p>
|
||
À ne jamais confondre avec <code>mv</code> ... Cette commande détruit le
|
||
fichier, de façon irréversible. Avec la config conscrits, confirmation est
|
||
demandée (option <code>-i</code> de <code>rm</code>). Ce n'est pas le cas
|
||
pour toutes les configurations : observez donc la plus grande prudence
|
||
avec cette commande...
|
||
</p>
|
||
|
||
<p>
|
||
<strong>Remarques</strong> : Les partitions utilisateurs sont
|
||
sauvegardées toutes les nuits par le SPI. Si donc vous effacez un fichier
|
||
accidentellement et qu'il avait plus d'un ou deux jours, vous pouvez envoyer
|
||
un courrier électronique au SPI pour demander qu'on vous le récupère
|
||
(<code>spi@clipper</code>).
|
||
</p>
|
||
|
||
<p>
|
||
Il existe aussi <a href="&url.tuteurs;logiciels/rcs.html">RCS</a>, qui
|
||
enregistre des copies de sauvegarde de vos fichiers, et permet de gérer
|
||
les différentes versions de votre travail.
|
||
</p>
|
||
|
||
<h3>Exemple</h3>
|
||
|
||
<p>
|
||
On veut renommer le fichier
|
||
<code>chrono</code> du sous-répertoire <code>ancienne/</code> en
|
||
<code>evolution</code>, et le mettre dans le répertoire
|
||
<code>histoire/</code>. Dans cet exemple, nous sommes dans
|
||
<code>histoire/ancienne/</code> :
|
||
</p>
|
||
|
||
<div class="illustration">
|
||
<table class="tableau">
|
||
<tr>
|
||
<td>
|
||
<p class="continue"><strong>(1)</strong> État de départ :</p>
|
||
<img src="fichiers_ex1.png" alt="[histoire (ancienne (chrono, empire.tex))]"/>
|
||
</td>
|
||
<td>
|
||
<p class="continue"><strong>(2)</strong> <code>cp chrono evolution</code></p>
|
||
<img src="fichiers_ex2.png" alt="[histoire (ancienne (chrono, empire.tex, evolution))]"/>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<p class="continue"><strong>(3)</strong> <code>mv evolution ..</code></p>
|
||
<img src="fichiers_ex3.png" alt="[histoire (ancienne (chrono, empire.tex), evolution)]"/>
|
||
</td>
|
||
<td>
|
||
<p class="continue"><strong>(4)</strong> <code>rm chrono</code></p>
|
||
<img src="fichiers_ex4.png" alt="[histoire (ancienne (empire.tex), evolution)]"/>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
|
||
<p>
|
||
On peut aussi faire plus rapidement :
|
||
</p>
|
||
|
||
<pre>
|
||
mv chrono evolution
|
||
mv evolution ..</pre>
|
||
|
||
<p>
|
||
Ou, en une seule ligne de commande :
|
||
</p>
|
||
|
||
<pre>
|
||
mv chrono ../evolution</pre>
|
||
|
||
<p>
|
||
La même série d'opérations est possible depuis <code>histoire/</code>; elle se
|
||
fera avec la suite de commandes suivantes :
|
||
</p>
|
||
|
||
<table class="tableau">
|
||
<tr>
|
||
<td><pre>cp ancienne/chrono evolution
|
||
rm ancienne/chrono</pre>
|
||
</td>
|
||
<td>On recopie le fichier <code>chrono</code> du sous-répertoire
|
||
<code>ancienne/</code> en un second fichier <code>evolution</code> placé dans
|
||
le répertoire courant : on se retrouve directement dans l'état 3.
|
||
Ensuite, on efface le fichier <code>chrono</code> qui est toujours dans le
|
||
répertoire <code>ancienne/</code>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><pre>mv ancienne/chrono ..
|
||
mv chrono evolution</pre></td>
|
||
<td>D'abord on déplace le fichier, ensuite on le renomme.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<pre>mv ancienne/chrono evolution</pre></td>
|
||
<td> En une seule ligne, on déplace le fichier et on le renomme.</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>
|
||
Il y a donc rarement une seule façon de manipuler ses fichiers, c'est une
|
||
question d'aisance et de rapidité.
|
||
</p>
|
||
|
||
|
||
<h2><a name="cat"><code>cat</code></a></h2>
|
||
|
||
<h3>Afficher un fichier</h3>
|
||
|
||
<p>
|
||
C'est pratique pour lire un fichier court, inutilisable sinon (voir les <a
|
||
href="#more">remarques à propos de more et de cat</a>). Dans cet usage,
|
||
<code>cat</code> sert surtout lorsque vous programmez.
|
||
</p>
|
||
|
||
<h3>Concaténer des fichiers</h3>
|
||
|
||
<pre>cat <em>fichier1</em> <em>fichier2</em> > <em>fichier3 </em></pre>
|
||
|
||
<p>
|
||
Les fichiers 1 et 2 sont concaténés (placés bout à à bout) et le résultat est
|
||
mis dans un <code>fichier3</code> créé automatiquement. Le <em>shell</em>
|
||
refuse d'écraser un fichier existant.
|
||
</p>
|
||
|
||
<p>
|
||
Dans <code>fichier3</code> apparaît d'abord <code>fichier1</code> puis
|
||
<code>fichier2</code>. Concaténer deux fichiers de la sorte ne les détruit
|
||
pas (il existe à la fois <code>fichier1</code>, <code>fichier2</code> et
|
||
<code>fichier3</code>).
|
||
</p>
|
||
|
||
<p>
|
||
On peut aussi placer deux fichiers bout à bout sans créer de troisième
|
||
fichier. La syntaxe est alors la suivante :
|
||
</p>
|
||
|
||
<pre>cat fichier2 >> fichier1</pre>
|
||
|
||
<p>
|
||
<code>fichier2</code> est placé « au bout » de <code>fichier1</code>.
|
||
<code>fichier2</code> reste inchangé, <code>fichier1</code> contient désormais
|
||
son propre texte suivi du texte de <code>fichier2</code>.
|
||
</p>
|
||
|
||
<h3>Écrire</h3>
|
||
|
||
<p>
|
||
<code>cat</code> peut faire office d'éditeur minimaliste; tapez la commande
|
||
suivante, et quelques mots :
|
||
</p>
|
||
|
||
<pre>
|
||
<span class="prompt">corvette ~ $</span> cat > notes
|
||
Faire les courses
|
||
Passer à la bibliothèque
|
||
...
|
||
</pre>
|
||
|
||
<p>
|
||
Et finissez par <code>^D</code>. Le fichier <code>notes</code> contient les
|
||
quelques lignes que vous avez saisies.
|
||
</p>
|
||
|
||
<h2><a name="head"><code>head <em>fichier</em></code> et <code>tail
|
||
<em>fichier</em></code></a></h2>
|
||
|
||
<p>
|
||
Par défaut, ces commandes montrent les dix premières (<code>head</code>) ou
|
||
les dix dernières (<code>tail</code>) lignes d'un fichier.
|
||
</p>
|
||
|
||
<p>
|
||
On peut utiliser l'option <code>-<em>nombre</em></code> pour spécifier le
|
||
nombre de lignes que l'on veut faire apparaître :
|
||
</p>
|
||
|
||
<pre>head -24 mon-fichier</pre>
|
||
|
||
<p>
|
||
affiche les 24 premières lignes du fichier.
|
||
</p>
|
||
|
||
<div class="metainformation">
|
||
Auteur : Émilia Robin.
|
||
Dernière modification le 2002-11-22.
|
||
</div>
|
||
|
||
</body>
|
||
</html>
|