tuteurs.ens.fr/unix/fichiers.tml

466 lines
14 KiB
Text
Raw Normal View History

2002-11-22 20:19:50 +01:00
<?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<63><72><EFBFBD>?</a></h2>
<p>
Un fichier est un paquet d'informations<6E>: 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 <20> un
fichier. Quand vous <20>crivez un texte avec Word et que vous le sauvegardez sous
le nom <20><>Rapport<72>de<64>ma<6D>trise<73><65>, vous cr<63>ez un fichier <20> ce nom, <20>crit
sur le disque dur. Chaque fois que vous <20>crivez quelque chose sur le disque,
vous cr<63>ez un ou plusieurs fichiers.
</p>
<p>
Une des op<6F>rations les plus courantes consiste <20> <20>crire du texte. Pour cela,
voir le cours sur les <a href="editeurs/"><3E>diteurs de texte</a>.
</p>
<h2><a name="nom">Quel nom donner <20> ses fichiers<72>?</a></h2>
<p>
Les noms de fichiers s'<27>crivent avec des caract<63>res alphanum<75>riques (lettres
et chiffres). On peut utiliser des majuscules et des minuscules, mais elles
ne sont pas interchangeables<65>: <code>document</code> et
<code>Document</code> sont deux fichiers distincts.
</p>
<p>
Il est pr<70>f<EFBFBD>rable d'<27>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 <20>viter les caract<63>res
accentu<EFBFBD>s, et proscrire le reste (ponctuations diverses, signes bizarres). Il
faut aussi <20>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<EFBFBD>orie vous avez droit <20> 255 caract<63>res).
</p>
<p>
Certains fichiers ont des suffixes conventionnels qui les identifient aupr<70>s
des utilisateurs et de certains programmes (liste non exhaustive de suffixes
et d'outils)<29>:
</p>
<table class="tableau">
<tr>
<th>Suffixe</th>
<th>Nature</th>
<th>Logiciel <20> utiliser</th>
</tr>
<tr>
<td><code>.tex</code></td>
<td>Fichier source pour LaTeX</td>
<td><a href="editeurs/"><3E>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><3E> 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/"><3E>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>
2002-11-22 20:19:50 +01:00
(<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'<27>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<65>; <code>gimp</code> pour les modifier</td>
</tr>
<tr>
<td><code>.mov</code>, <code>.avi</code></td>
<td>S<>quences anim<69>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<73>s</td>
<td>Consultez la page sur la <a href="archives.html">compression</a></td>
</tr>
</table>
<p>
De fa<66>on g<>n<EFBFBD>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'<27>diter (c'est-<2D>-dire ouvrir un document afin de
pouvoir le modifier). Les commandes de base sont<6E>:
</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-<2D>cran</td>
</tr>
<tr>
<td><code>f, ^F</code> (<em>forward</em>)</td><td>descendre d'un <20>cran</td>
</tr>
<tr>
<td><code>p, ^P</code> (<em>previous</em>)</td><td>remonter d'un demi-<2D>cran</td>
</tr>
<tr>
<td><code>b, ^B</code> (<em>back</em>)</td><td>remonter d'un <20>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 <20> la fin du texte</td>
</tr>
<tr>
<td><code><em>nombre</em>G</code></td>
<td>aller <20> la ligne de num<75>ro <em>nombre</em> (par exemple, <code>1G</code>
place <20> la premi<6D>re ligne du fichier).</td>
</tr>
<tr>
<td><code>/mot</code></td>
<td>chercher le <20><>mot<6F><74> dans le texte. Il sera signal<61> en inverse dans
tout le texte. Pour aller <20> la prochaine occurence du mot, taper
<code>n</code>, pour aller <20> la pr<70>c<EFBFBD>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<6D>re d'afficher un
fichier. Il est rapide et pratique pour un fichier tr<74>s court, mais nous ne
vous le conseillons pas pour regarder un fichier un peu cons<6E>quent<6E>:
<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<73>mes Unix (alors que
<code>less</code> n'est pas install<6C> partout). <code>less</code> (install<6C> <20>
l'<27>cole) est cependant plus performant<6E>: les mots recherch<63>s apparaissent
sur fond noir au lieu d'<27>tre juste plac<61>s en haut de l'<27>cran, le d<>filement du
texte est plus pr<70>cis. Si vous n'avez que <code>more</code> <20> disposition,
vous pouvez utiliser les commandes suivantes<65>:
</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-<2D>cran</td>
</tr>
<tr>
<td><code>f</code> (<em> forward</em>)</td><td>descendre d'un <20>cran</td>
</tr>
<tr>
<td><code>b</code> (<em> back</em>)</td><td>remonter d'un demi-<2D>cran</td>
</tr>
<tr>
<td><code>/mot</code></td>
<td>chercher le <20><>mot<6F><74> 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<EFBFBD>placer et renommer)</a></h3>
<h4>Renommer</h4>
<p>
<code>mv truc chose</code><3E>:
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><3E>:
d<EFBFBD>place le fichier <code>truc</code> dans le r<>pertoire <code>chose/</code>.
</p>
<p>
<code>mv fichier ..</code><3E>:
d<EFBFBD>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>
<EFBFBD> ne jamais confondre avec <code>mv</code> ... Cette commande d<>truit le
fichier, de fa<66>on irr<72>versible. Avec la config conscrits, confirmation est
demand<EFBFBD>e (option <code>-i</code> de <code>rm</code>). Ce n'est pas le cas
pour toutes les configurations<6E>: observez donc la plus grande prudence
avec cette commande...
</p>
<p>
<strong>Remarques</strong><3E>: Les partitions utilisateurs sont
sauvegard<EFBFBD>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 <20>lectronique au SPI pour demander qu'on vous le r<>cup<75>re
(<code>spi@clipper</code>).
</p>
<p>
Il existe aussi <a href="&url.tuteurs;logiciels/rcs/">RCS</a>, qui
2002-11-22 20:19:50 +01:00
enregistre des copies de sauvegarde de vos fichiers, et permet de g<>rer
les diff<66>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><3E>:
</p>
<div class="illustration">
<table class="tableau">
<tr>
<td>
<p class="continue"><strong>(1)</strong> <20>tat de d<>part<72>:</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<6E>:
</p>
<pre>
mv chrono evolution
mv evolution ..</pre>
<p>
Ou, en une seule ligne de commande<64>:
</p>
<pre>
mv chrono ../evolution</pre>
<p>
La m<>me s<>rie d'op<6F>rations est possible depuis <code>histoire/</code>; elle se
fera avec la suite de commandes suivantes<65>:
</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<61> dans
le r<>pertoire courant<6E>: on se retrouve directement dans l'<27>tat 3.
Ensuite, on efface le fichier <code>chrono</code> qui est toujours dans le
r<EFBFBD>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<66>on de manipuler ses fichiers, c'est une
question d'aisance et de rapidit<69>.
</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 <20> propos de more et de cat</a>). Dans cet usage,
<code>cat</code> sert surtout lorsque vous programmez.
</p>
<h3>Concat<61>ner des fichiers</h3>
<pre>cat <em>fichier1</em> <em>fichier2</em> &gt; <em>fichier3 </em></pre>
<p>
Les fichiers 1 et 2 sont concat<61>n<EFBFBD>s (plac<61>s bout <20> <20> bout) et le r<>sultat est
mis dans un <code>fichier3</code> cr<63><72> automatiquement. Le <em>shell</em>
refuse d'<27>craser un fichier existant.
</p>
<p>
Dans <code>fichier3</code> appara<72>t d'abord <code>fichier1</code> puis
<code>fichier2</code>. Concat<61>ner deux fichiers de la sorte ne les d<>truit
pas (il existe <20> la fois <code>fichier1</code>, <code>fichier2</code> et
<code>fichier3</code>).
</p>
<p>
On peut aussi placer deux fichiers bout <20> bout sans cr<63>er de troisi<73>me
fichier. La syntaxe est alors la suivante<74>:
</p>
<pre>cat fichier2 &gt;&gt; fichier1</pre>
<p>
<code>fichier2</code> est plac<61> <20><>au bout<75><74> de <code>fichier1</code>.
<code>fichier2</code> reste inchang<6E>, <code>fichier1</code> contient d<>sormais
son propre texte suivi du texte de <code>fichier2</code>.
</p>
<h3><3E>crire</h3>
<p>
<code>cat</code> peut faire office d'<27>diteur minimaliste; tapez la commande
suivante, et quelques mots<74>:
</p>
<pre>
<span class="prompt">corvette ~ $</span> cat &gt; notes
Faire les courses
Passer <20> la biblioth<74>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<6D>res (<code>head</code>) ou
les dix derni<6E>res (<code>tail</code>) lignes d'un fichier.
</p>
<p>
On peut utiliser l'option <code>-<em>nombre</em></code> pour sp<73>cifier le
nombre de lignes que l'on veut faire appara<72>tre<72>:
</p>
<pre>head -24 mon-fichier</pre>
<p>
affiche les 24 premi<6D>res lignes du fichier.
</p>
<div class="metainformation">
Auteur<75>: <20>milia Robin.
Derni<6E>re modification le 2002-11-22.
</div>
</body>
</html>