289 lines
6.6 KiB
Text
289 lines
6.6 KiB
Text
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|||
|
<!DOCTYPE html
|
|||
|
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
|||
|
"tuteurs://DTD/tml.dtd">
|
|||
|
<html>
|
|||
|
<head>
|
|||
|
<title>R<>pertoires</title>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
|
|||
|
<h1>Corrig<69> des exercices sur les r<>pertoires
|
|||
|
(<code>mkdir</code>, <code>rmdir</code>, <code>cd</code>)</h1>
|
|||
|
|
|||
|
<p>
|
|||
|
Ces exercices sont des questions de cours<72>: les solutions se trouvent
|
|||
|
toutes dans les pages de man des commandes en question. On suppose donc
|
|||
|
connues les commandes de <code>less</code>, qui servent <20> se d<>placer dans
|
|||
|
les pages de man... et la commande servant <20> chercher un mot. Testez les
|
|||
|
commandes sur des fichiers et r<>pertoires d'essai pour vous faire la main et
|
|||
|
comprendre ce qui se passe.</p>
|
|||
|
|
|||
|
<h2><a name="mkdir"><code>mkdir, rmdir</code></a></h2>
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li><a name="mk1"> <strong>Cr<43>ez trois r<>pertoires en une seule ligne de
|
|||
|
commande</strong></a>.
|
|||
|
|
|||
|
<p>
|
|||
|
Si vous voulez cr<63>er trois r<>pertoires <code>bla</code>, <code>ble</code> et
|
|||
|
<code>bli</code>, tapez
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
mkdir bla ble bli
|
|||
|
</pre></li>
|
|||
|
|
|||
|
<li><a name="mk2"> <strong>Effacez ces trois r<>pertoires en une seule ligne
|
|||
|
de commande</strong> </a>.
|
|||
|
|
|||
|
<p>
|
|||
|
Il faut taper
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
rmdir bla ble bli
|
|||
|
</pre></li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li><a name="mk3"> <strong>Que se passe-t-il si vous tapez <code>mkdir
|
|||
|
mkdir</code> <20>?</strong> </a>
|
|||
|
|
|||
|
<p>Vous cr<63>ez chez vous un r<>pertoire appel<65> <code>mkdir</code>.</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li><a name="mk4"> <strong>Vous voulez d<>truire un r<>pertoire
|
|||
|
<code>bla/</code>... mais <20>a ne marche pas.</strong> </a>
|
|||
|
|
|||
|
<p>
|
|||
|
<code>ls</code> vous dit qu'il est vide, et pourtant vous ne r<>ussissez pas <20>
|
|||
|
l'effacer<65>: c'est qu'il n'est pas vide. Il doit y avoir des fichiers
|
|||
|
cach<EFBFBD>s, commen<65>ant par un point, que vous ne voyez pas avec <code>ls</code>
|
|||
|
sans option. Il faut taper
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
ls -a
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
et effacer les fichiers trouv<75>s.
|
|||
|
</p></li>
|
|||
|
|
|||
|
<li><a name="mk5"> <strong>Est-ce que <code>mkdir</code> peut prendre des
|
|||
|
options ?</strong> </a>
|
|||
|
<p>
|
|||
|
Oui, une<6E>: l'option <code>-p</code>, dont on va parler tout de suite.
|
|||
|
</p></li>
|
|||
|
|
|||
|
<li><a name="mk6"> <strong><3E> quelle condition est-ce que la ligne de commande
|
|||
|
<EFBFBD><code>mkdir Rapport/annexes</code><3E> peut fonctionner et cr<63>er effectivement
|
|||
|
ce sous-r<>pertoire<72>? </strong> </a>
|
|||
|
|
|||
|
<p>
|
|||
|
Il faut que le r<>pertoire <code>Rapport</code> existe, pour que l'on puisse y
|
|||
|
cr<EFBFBD>er un sous-r<>pertoire.
|
|||
|
</p></li>
|
|||
|
|
|||
|
<li><a name="mk7"> <strong>Y a-t-il une option de <code>mkdir</code> qui
|
|||
|
permette de cr<63>er <20> la fois un r<>pertoire et un sous-r<>pertoire de ce
|
|||
|
r<EFBFBD>pertoire ?</strong> </a>
|
|||
|
|
|||
|
<p>
|
|||
|
Oui, c'est l'option <code>-p</code>. Quand vous tapez
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>mkdir -p Rapport/annexes
|
|||
|
</pre>
|
|||
|
|
|||
|
<p class="continue">
|
|||
|
un r<>pertoire <code>Rapport</code> est cr<63><72>, et dans ce r<>pertoire un
|
|||
|
sous-r<>pertoire <code>annexes</code>.
|
|||
|
</p></li>
|
|||
|
|
|||
|
<li><a name="mk8"> <strong> Comment cr<63>er un r<>pertoire en sp<73>cifiant des
|
|||
|
droits<EFBFBD>? </strong> </a>
|
|||
|
|
|||
|
<p>
|
|||
|
On utilise l'option <code>-m</code> (<em>mode</em>) de <code>mkdir</code>.
|
|||
|
Par exemple<6C>:
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
<span class="bireme ~ $">bireme ~ $</span><3E>mkdir<69>-m<>700<30>Mail
|
|||
|
<span class="bireme ~ $">bireme ~ $</span><3E>ls<6C>-ld<6C>Mail
|
|||
|
drwx------ 2 robin litt95 2048 Jun 2 15:27 Mail/
|
|||
|
</pre></li>
|
|||
|
|
|||
|
|
|||
|
<li><a name="mk9"> <strong> Quel est l'effet de la commande
|
|||
|
suivante<EFBFBD>:</strong></a>
|
|||
|
<pre> rmdir -p toto/tata/tutu/</pre>
|
|||
|
|
|||
|
<p>
|
|||
|
Cette commande efface toute la hi<68>rarchie des r<>pertoires, <20> condition qu'ils
|
|||
|
soient vides; si par exemple <code>tutu/</code> est vide mais
|
|||
|
<code>toto/</code> ne l'est pas, <code>tutu/</code> sera effac<61> mais pas
|
|||
|
<code>toto/</code>, et le programme s'arr<72>te.
|
|||
|
</p></li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li><a name="mk10"> <strong>Cr<43>ation r<>cursive sans message d'erreur
|
|||
|
</strong> </a>
|
|||
|
<p>
|
|||
|
On ach<63>ve avec ceci le tour de l'option <code>-p</code>... Si donc on tape
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
mkdir -p toto/tutu/
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
le sous-r<>pertoire <code>tutu/</code> est cr<63><72> si <code>toto/</code> existe
|
|||
|
d<EFBFBD>j<EFBFBD>; et si <code>toto/</code> n'existe pas, ce r<>pertoire et son
|
|||
|
sous-r<>pertoire sont cr<63><72>s. Il n'y a pas de message d'erreur.
|
|||
|
</p></li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
<h2><a name="cd"><code>cd</code></a></h2>
|
|||
|
|
|||
|
<p>
|
|||
|
But de l'exercice<63>: apprendre <20> se servir de <code>.</code> et
|
|||
|
<code>..</code> (<28>point<6E> et <20>point point<6E>). <code>..</code> d<>signe le
|
|||
|
r<EFBFBD>pertoire p<>re du r<>pertoire courant, et <code>.</code> d<>signe le r<>pertoire
|
|||
|
courant. <code>..</code> sert beaucoup avec <code>cd</code>, pour remonter
|
|||
|
d'un niveau dans une arborescence; <code>.</code> est tr<74>s utile avec des
|
|||
|
commandes comme <code>mv</code> ou <code>cp</code>, o<> il signifie en fait
|
|||
|
<EFBFBD>ici<EFBFBD>.
|
|||
|
</p>
|
|||
|
|
|||
|
<p class="centre">
|
|||
|
<a name="arbo">
|
|||
|
<img src="exocd.gif" alt="[Exemple d'arborescence]" />
|
|||
|
</a>
|
|||
|
</p>
|
|||
|
|
|||
|
<ol>
|
|||
|
|
|||
|
<li><a name="cd1"> <strong>Dans quel r<>pertoire vous trouvez-vous quand vous
|
|||
|
vous loguez<65>?</strong> </a>
|
|||
|
|
|||
|
<p>
|
|||
|
Vous vous trouvez dans votre r<>pertoire personnel, dans <code>~</code> (tilde).
|
|||
|
</p></li>
|
|||
|
|
|||
|
<li><a name="cd2"> <strong>Allez directement dans
|
|||
|
<code>~/Rapport/docs/afaire/</code></strong> </a>
|
|||
|
|
|||
|
<p>
|
|||
|
Taper
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
cd Rapport/docs/afaire
|
|||
|
</pre></li>
|
|||
|
|
|||
|
<li><a name="cd3"> <strong>De l<>, passez dans
|
|||
|
<code>~/Rapport/docs/fait/</code></strong> </a>
|
|||
|
|
|||
|
|
|||
|
<pre>
|
|||
|
cd ../fait
|
|||
|
</pre></li>
|
|||
|
|
|||
|
|
|||
|
<li><a name="cd4"> <strong>Revenez dans <code>~/Rapport/</code></strong>
|
|||
|
</a>
|
|||
|
<p>
|
|||
|
Taper
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
cd ../..
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
ou
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
cd ~/Rapport
|
|||
|
</pre></li>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<li><a name="cd5"> <strong>Sans changer de r<>pertoire, regardez avec
|
|||
|
<code>less</code> le contenu de <code>~/www/index.html</code></strong>
|
|||
|
</a>
|
|||
|
|
|||
|
<p>
|
|||
|
Il faut taper
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
less ~/www/index.html
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
ou
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
less ../www/index.html
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
|
|||
|
|
|||
|
<li><a name="cd6"> <strong>Passez dans <code>~/Rapport/docs/</code></strong>
|
|||
|
</a>
|
|||
|
|
|||
|
<pre>
|
|||
|
cd docs/
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
|
|||
|
<li><a name="cd7"> <strong>En restant l<> o<> vous <20>tes, affichez les droits de
|
|||
|
<code>~/Mail/</code></strong> </a>
|
|||
|
|
|||
|
|
|||
|
<p>
|
|||
|
Il y a un petit pi<70>ge dans cette question. En effet, si vous tapez</p>
|
|||
|
<pre>
|
|||
|
ls -l Mail/
|
|||
|
</pre>
|
|||
|
|
|||
|
<p>
|
|||
|
vous allez obtenir le contenu du r<>pertoire <code>Mail/</code>, mais pas le
|
|||
|
statut du r<>pertoire lui-m<>me. Il faut donc utiliser l'option <code>-d</code>
|
|||
|
de <code>ls</code><3E>:
|
|||
|
</p>
|
|||
|
|
|||
|
<pre>
|
|||
|
<span class="prompt">bireme ~ $</span><3E>ls<6C>-ld<6C>Mail
|
|||
|
drwx------ 2 toto litt98 512 Apr 2 19:02 /users/98/litt/toto/Mail/
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
|
|||
|
<li><a name="cd8"> <strong>Revenez dans votre r<>pertoire principal</strong>
|
|||
|
</a>
|
|||
|
|
|||
|
<p>
|
|||
|
Taper <code>cd</code>, sans arguments.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
|
|||
|
<li><a name="cd9"> <strong>Que se passe-t-il si vous vous d<>loguez alors que
|
|||
|
vous n'<27>tes pas dans votre r<>pertoire principal<61>?</strong> </a>
|
|||
|
|
|||
|
<p>
|
|||
|
Strictement rien<65>! <20>a n'a aucune importance.
|
|||
|
</p></li>
|
|||
|
|
|||
|
</ol>
|
|||
|
|
|||
|
<div class="metainformation">
|
|||
|
Auteur<75>: <20>milia Robin, Jo<4A>l Riou. Derni<6E>re modification le 2002-12-08.
|
|||
|
</div>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
|
|||
|
|