373 lines
13 KiB
HTML
373 lines
13 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
|||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|||
|
<title>Systèmes de fichiers</title>
|
|||
|
<link rel="stylesheet" href="../tuteurs.css" type="text/css" />
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div class="navigation">
|
|||
|
<h1>Tuteurs informatique<br /><a href="../meta/contact.html">Nous contacter</a></h1>
|
|||
|
<hr />
|
|||
|
<ul class="menu">
|
|||
|
<li>
|
|||
|
<a href="../meta/charte_graphique.html">Utiliser ce site</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../actualite.html">Actu et stages</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../docs/">Docs à imprimer</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../meta/plan_site.html">Plan du site</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../search.html">Rechercher</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<hr />
|
|||
|
<ul class="arbre">
|
|||
|
<li>
|
|||
|
<a href="../">Les tuteurs</a>
|
|||
|
<ul class="arbre">
|
|||
|
<li>
|
|||
|
<a href="./">Unix</a>
|
|||
|
<ul class="arbre">
|
|||
|
<li>
|
|||
|
<a href="accents-base.html">Accents</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="aide.html">Aide</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="archives.html">Archiver</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="chercher.html">Chercher</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="clavier.html">Clavier, souris</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="communiquer.html">Autres utilisateurs</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="config/">Config conscrits</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="copyright.html">Copyrights</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="disquettes.html">Disquettes</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="divers.html">Divers</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="droits.html">Droits d'accès</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="editeurs/">Éditeurs</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="exercices/">Exercices</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="fichiers.html">Fichiers</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="formats-memo.html">Mémo formats</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="histoire.html">Histoire</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="imprimer.html">Imprimer</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="jamais.html">Jamais !</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="jeux.html">Jeux</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="loguer.html">Se loguer</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="media.html">Supports de données amovibles</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="place_disque.html">Place disque</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="prelude.html">Unix</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="processus.html">Processus</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="repertoires.html">Répertoires</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="shell/">Shell</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="systemes_fichiers.html" class="actuel">Systèmes de fichiers</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="unix-technique.html">Machines Unix</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<hr />
|
|||
|
<ul class="menu">
|
|||
|
<li>
|
|||
|
<a href="http://www.eleves.ens.fr/">Serveur des élèves</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="http://www.ens.fr/">ENS</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="http://www.spi.ens.fr/">SPI</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<div class="corps">
|
|||
|
<h1>Système de fichiers</h1>
|
|||
|
<div class="sommaire">
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<a href="#s1">Notions</a>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<a href="#s1_1">Noms de fichiers</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="#s1_2">Commandes pour manipuler le système de fichiers</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="#s2">Raccourcis pour les noms de fichiers</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<h2>
|
|||
|
<a name="s1" id="s1">Notions</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
Les répertoires sont appelés <em>directories</em> en anglais. Un répertoire
|
|||
|
est une boîte qui peut contenir des fichiers et d'autres répertoires (comme
|
|||
|
les catalogues de MS-DOS, ou les dossiers du Macintosh). Des exemples de
|
|||
|
répertoires :
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
/users
|
|||
|
/bin
|
|||
|
/usr/local/bin
|
|||
|
</pre>
|
|||
|
<p>
|
|||
|
On désigne les fichiers (et les répertoires) contenus dans un répertoire
|
|||
|
par :
|
|||
|
</p>
|
|||
|
<pre><em>nom de répertoire</em>/<em>nom de fichier</em></pre>
|
|||
|
<p>
|
|||
|
Par exemple : <code>/bin/sh</code> est le fichier <code>sh</code> contenu
|
|||
|
dans le répertoire <code>/bin</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Les répertoires sont organisés en arbre, c'est-à-dire qu'ils sont tous
|
|||
|
contenus dans un répertoire appelé la <em>racine</em>, et désigné par "/".
|
|||
|
Chaque répertoire contient deux répertoires spéciaux :
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li><code>.</code> désigne le répertoire lui-même.</li>
|
|||
|
<li><code>..</code> désigne le père du répertoire.</li>
|
|||
|
</ul>
|
|||
|
<p>
|
|||
|
Exemples :
|
|||
|
<code>/users/92/.</code> est le même répertoire que <code>/users/92</code>,
|
|||
|
<code>/users/92/..</code> est le même répertoire que <code>/users</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Chaque utilisateur a un <em>home-directory</em>, ou <em>répertoire
|
|||
|
personnel</em>. C'est l'endroit ou il range ses fichiers. Sur les machines
|
|||
|
de la salle S, le répertoire personnel a pour nom
|
|||
|
<code>/users/<em>année</em>/<em>groupe</em>/<em>nom-de-login</em></code>.
|
|||
|
</p>
|
|||
|
<p>Exemples :
|
|||
|
<code>/users/92/maths/<em>vous</em></code>,
|
|||
|
<code>/users/formel/doligez</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
On peut aussi désigner le répertoire personneld'un autre utilisateur par le
|
|||
|
nom de login de l'utilisateur précédé d'un tilde (le caractère tilde).
|
|||
|
Exemple : <code>~leroy</code>.
|
|||
|
</p>
|
|||
|
<h3>
|
|||
|
<a name="s1_1" id="s1_1">Noms de fichiers</a>
|
|||
|
</h3>
|
|||
|
<p>
|
|||
|
Un nom de fichier qui commence par <code>/</code> est dit <em>absolu</em>.
|
|||
|
Il est interprété en partant de la racine, et en descendant dans l'arbre.
|
|||
|
Un nom de fichier qui ne commence pas par <code>/</code> est
|
|||
|
<em>relatif</em>. Il est interprété en partant du <em>répertoire
|
|||
|
courant</em>. Le répertoire courant est initialement (au moment où vous vous
|
|||
|
connectez) votre répertoire personnel ; le répertoire courant est le
|
|||
|
répertoire dans lequel vous vous trouvez.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Exemples :
|
|||
|
<code>/users/formel/doligez/foo</code> est un nom (ou chemin) absolu.
|
|||
|
<code>bar</code> est un nom relatif. Il désigne un fichier appelé
|
|||
|
<code>bar</code> et situé dans le répertoire courant. Le fichier exact dont
|
|||
|
il s'agit dépend donc de votre répertoire courant.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Remarque :
|
|||
|
Le seul caractère spécial dans les noms de fichiers est le slash
|
|||
|
<code>/</code>. Un nom de fichier peut avoir jusqu'à 255 caractères, et
|
|||
|
contenir un nombre quelconque de points.
|
|||
|
</p>
|
|||
|
<h3>
|
|||
|
<a name="s1_2" id="s1_2">Commandes pour manipuler le système de fichiers</a>
|
|||
|
</h3>
|
|||
|
<h4>
|
|||
|
<code>pwd</code>
|
|||
|
</h4>
|
|||
|
<p>
|
|||
|
Affiche le répertoire courant.
|
|||
|
Exemple :
|
|||
|
</p>
|
|||
|
<pre><span class="prompt">chaland ~ $</span> pwd
|
|||
|
/users/formel/doligez</pre>
|
|||
|
<h4>
|
|||
|
<code>cd</code>
|
|||
|
</h4>
|
|||
|
<p>
|
|||
|
Change le répertoire courant. Si on ne lui donne pas d'argument, on
|
|||
|
retourne dans le répertoire personnel. Exemple :
|
|||
|
</p>
|
|||
|
<pre><span class="prompt">chaland ~ $</span> pwd
|
|||
|
/users/formel/doligez
|
|||
|
<span class="prompt">chaland ~ $</span> cd ..
|
|||
|
<span class="prompt">chaland /users/formel/ $</span> cd
|
|||
|
<span class="prompt">chaland ~ $</span> pwd
|
|||
|
/users/formel/doligez</pre>
|
|||
|
<h4>
|
|||
|
<code>mkdir</code>
|
|||
|
</h4>
|
|||
|
<p>
|
|||
|
Crée un nouveau répertoire, (presque) vide. Il ne contient que
|
|||
|
<code>.</code> et <code>..</code>.
|
|||
|
</p>
|
|||
|
<h4>
|
|||
|
<code>rmdir</code>
|
|||
|
</h4>
|
|||
|
<p>
|
|||
|
Supprime un répertoire vide. Si le répertoire contient autre
|
|||
|
chose que <code>.</code> et <code>..</code> ça ne marche pas.
|
|||
|
</p>
|
|||
|
<h4>
|
|||
|
<code>mv</code>
|
|||
|
</h4>
|
|||
|
<p>
|
|||
|
Renomme un fichier, mais peut aussi le déplacer d'un répertoire à
|
|||
|
un autre. Exemple :
|
|||
|
</p>
|
|||
|
<pre><span class="prompt">chaland ~ $</span> mkdir foo
|
|||
|
<span class="prompt">chaland ~ $</span> nano bar
|
|||
|
<span class="prompt">chaland ~ $</span> mv bar foo/bar2
|
|||
|
<span class="prompt">chaland ~ $</span> cd foo
|
|||
|
<span class="prompt">chaland ~/foo $</span> pwd
|
|||
|
/users/formel/doligez/foo
|
|||
|
<span class="prompt">chaland ~/foo $</span> ls
|
|||
|
bar2</pre>
|
|||
|
<h4>
|
|||
|
<code>ls</code>
|
|||
|
</h4>
|
|||
|
<p>
|
|||
|
Liste les fichiers et les répertoires qu'on lui donne en arguments,
|
|||
|
ou le répertoire courant si on ne lui donne pas d'argument. <code>ls</code>
|
|||
|
ne liste pas les fichiers dont le nom commence par <code>.</code> C'est
|
|||
|
pourquoi <code>.</code> et <code>..</code> n'apparaissent pas ci-dessus.
|
|||
|
</p>
|
|||
|
<h2>
|
|||
|
<a name="s2" id="s2">Raccourcis pour les noms de fichiers</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
Il est parfois ennuyeux d'avoir à taper un nom complet de fichier comme
|
|||
|
<code>nabuchodonosor</code>. Il est encore plus ennuyeux d'avoir à taper une
|
|||
|
liste de fichier pour les donner en arguments à une commande, comme :
|
|||
|
<code>cc -o foo bar.c gee.c buz.c gog.c</code>. Pour éviter ces problèmes,
|
|||
|
on peut utiliser des <em>jokers</em> (<em>wildcards</em> en anglais).
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Une étoile <code>*</code> dans un nom de fichier est interprétée par le shell
|
|||
|
comme « n'importe quelle séquence de caractères ».
|
|||
|
Exemple : <code>cc -o foo *.c</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Pour interpréter l'étoile, le shell va faire la liste de tous les noms de
|
|||
|
fichiers du répertoire courant qui ne commencent pas par <code>.</code> et
|
|||
|
qui finissent par <code>.c</code> Ensuite, il remplace <code>*.c</code> par
|
|||
|
cette liste (triée par ordre alphabétique) dans la ligne de commande, et
|
|||
|
exécute le résultat, c'est-à-dire par exemple : <code>cc -o foo bar.c buz.c
|
|||
|
foo.c gee.c gog.c</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
On a aussi le <code>?</code>, qui remplace un (et exactement un) caractère
|
|||
|
quelconque. Par exemple, <code>*.?</code> liste tous les fichiers sont
|
|||
|
l'extension n'a qu'une seule lettre.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
La forme <code>[abcd]</code> remplace un caractère quelconque parmi
|
|||
|
<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>. Enfin,
|
|||
|
<code>[^abcd]</code> remplace un caractère quelconque qui ne se trouve pas
|
|||
|
parmi <code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Exemple : <code>echo /users/*</code>
|
|||
|
affiche la même chose que
|
|||
|
<code>ls /users</code>
|
|||
|
(La commande <code>echo</code> se contente d'afficher ses arguments.)
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Attention :
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li>C'est le shell qui fait le remplacement des arguments contenant un
|
|||
|
joker. On ne peut donc pas faire <code>mv *.c *.bak</code>, car le shell va
|
|||
|
passer à
|
|||
|
<code>mv</code> les arguments <code>foo.c bar.c foo.bak bar.bak</code>, et
|
|||
|
<code>mv</code> ne sait pas quel fichier remplacer.
|
|||
|
</li>
|
|||
|
<li>Attention aux espaces. Si vous tapez <code>rm * ~</code>, le shell remplace
|
|||
|
l'étoile par la liste des fichiers présents, et ils seront tous effacés. Si
|
|||
|
vous tapez <code>rm *~</code>, seuls les fichiers dont le nom finit par un
|
|||
|
tilde seront effacés.
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<p>
|
|||
|
Interlude : comment effacer un fichier nommé <code>?*</code> ? On ne peut
|
|||
|
pas taper <code>rm ?*</code> car le shell remplace <code>?*</code> par la
|
|||
|
liste de tous les fichiers du répertoire courant. On peut taper <code>rm -i
|
|||
|
*</code> qui supprime tous les fichiers, mais en demandant confirmation à
|
|||
|
chaque fichier. On répond <code>no</code> à toutes les questions sauf
|
|||
|
<code>rm: remove ?*?</code>. Autre méthode : utiliser les mécanismes de
|
|||
|
quotation (voir ci-dessous).
|
|||
|
</p>
|
|||
|
<div class="metainformation">
|
|||
|
Auteurs : Roberto Di Cosmo, Xavier Leroy; Marc Espie.
|
|||
|
Mise à jour d'Émilia Robin et de Nicolas George.
|
|||
|
Dernière modification : 2002-11-23 par Nicolas George.
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|