Modifications à propos de l'option -h de du, qui n'est plus disponible

sur les Sun.

Ajout de quelques exemples pratiques : connaître les plus gros
fichiers de son compte, savoir la taille de sa boîte aux lettres.
This commit is contained in:
mlnguyen 2004-02-03 14:03:36 +00:00
parent 55c4d4ea10
commit bb5aa3c7de

View file

@ -33,22 +33,32 @@ contr
<code>du</code> et <code>df</code>.
</p>
<h2>Les outils</h2>
<h2><a name="du">Taille de fichiers et de répertoires : <code>du</code></a></h2>
<h3><a name="du"><code>du</code> : tailles de fichiers et de répertoires</a></h3>
<h4>Connaître la taille d'un répertoire</h4>
<h3>Connaître la taille d'un répertoire</h3>
<p>
La commande <strong><code><a name="du">du</a></code></strong> (<em>
disk usage</em>) indique la taille de vos répertoires et
sous-répertoires. Sur certains systèmes, il peut être utile d'ajouter
l'option <code>-k</code> (<em>kilobytes</em>), pour être sûr que le
résultat sera bien en kilo-octets. L'option <code>-h</code> est aussi
sous-répertoires. Sur certains systèmes, <code>du</code> indique la
taille des fichiers en blocs et non en Ko, prenez donc le réflexe
d'ajouter l'option <code>-k</code> (<em>kilobytes</em>).
</p>
<p>
Sur les FreeBSD est disponible l'option <code>-h</code> qui est aussi
très utile : elle donne des résultats beaucoup plus lisibles par un
humain (la taille est exprimée en Ko, Mo ou Go quand c'est possible).
</p>
<div class="encadre">
<strong>À noter</strong> : certaines commandes basiques comme
<code>ps</code> ou <code>du</code> n'ont pas le même comportement sur
les stations Sun (sous Solaris) et les PC (sous
FreeBSD). Reportez-vous aux <a
href="&url.tuteurs;unix/aide.html">pages de man</a> (l'aide en ligne)
pour vérifier quelles sont les options disponibles sur chaque système.
</div>
<p>
Par exemple, voici le contenu du répertoire « histoire » de Toto
@ -57,7 +67,7 @@ sur les r
</p>
<pre>
<span class="prompt">clipper ~ $</span> du histoire
<span class="prompt">clipper ~ $</span> du -k histoire
1973 histoire/maitrise
127 histoire/sources/AN
36 histoire/sources/divers
@ -78,12 +88,12 @@ avec tout ce qu'il contient, soit 4910 Ko.
</p>
<p class="continue">
Ajouter l'option <code>-h</code> (comme « <i lang="en">human
readable</i> ») donne des résultats plus lisibles :
Sur un FreeBSD, ajouter l'option <code>-h</code> (comme « <i
lang="en">human readable</i> ») donne des résultats plus lisibles :
</p>
<pre>
<span class="prompt">clipper ~ $</span> du -h histoire
<span class="prompt">brick ~ $</span> du -h histoire
2.0M histoire/maitrise
127K histoire/sources/AN
36K histoire/sources/divers
@ -100,71 +110,192 @@ readable</i>
<div class="encadre">
<strong>Note</strong> : souvenez-vous que les ordinateurs comptent de
manière binaire et non décimale. Un kilo-octets vaut donc 1024 octets,
et non 1000. Un méga-octet vaut 1 024 Ko et non 1000, et donc en tout
1.048.576 octets. Diviser par 1000 est une approximation commode mais
elle peut donner des idées assez inexactes quand on considère beaucoup
de données.
manière <em>binaire</em> et non décimale. <em>Un kilo-octets vaut donc
1024 octets</em>, et non 1000. Un méga-octet vaut 1 024 Ko et non
1000, et donc en tout 1.048.576 octets. Diviser par 1000 est une
approximation commode mais elle peut donner des idées assez inexactes
quand on considère des données très volumineuses.
</div>
<h4>Connaître la taille totale de son compte</h4>
<h3>Connaître la taille totale de son compte</h3>
<p>
<code>du -s</code> permet de n'afficher que la dernière ligne,
L'option <code>-s</code> permet de n'afficher que la dernière ligne,
c'est-à-dire le total de tous les répertoire et sous-répertoires, sans
tous les détails. Ainsi, pour connaître la taille de votre compte,
faites un <code>du -s</code> à la racine de votre compte&nbsp;:
faites un <code>du -sk</code> à la racine de votre compte&nbsp;:
</p>
<pre>
<span class="prompt">clipper ~ $</span> du -s
<span class="prompt">clipper ~ $</span> du -sk
98280 .
</pre>
<p>
Encore une fois, ajouter l'option <code>-h</code> ne fera pas de mal :
Encore une fois, si vous êtes sur un PC FreeBSD, utiliser l'option
<code>-h</code> ne fera pas de mal :
</p>
<pre>
<span class="prompt">clipper ~ $</span> du -sh
<span class="prompt">brick ~ $</span> du -sh
96M .
</pre>
<h4>Connaître la taille d'un fichier</h4>
<h3>Connaître la taille d'un fichier</h3>
<p>
<code>du -a</code> affiche la taille de tous les fichiers contenus
dans vos répertoires et sous-répertoires. Ici, toujours pour le
répertoire « histoire » de Toto&nbsp;:
L'option <code>-a</code> demande l'affichage la taille de tous les
fichiers contenus dans vos répertoires et sous-répertoires. Ici,
toujours pour le répertoire « histoire » de Toto&nbsp;:
</p>
<pre>
<span class="prompt">clipper ~ $</span> du -ah histoire | head -10
200K histoire/maitrise/maitrise.dvi.bz2
29K histoire/maitrise/1.html
6.0K histoire/maitrise/maitrise.tex
18K histoire/maitrise/intro.tex
29K histoire/maitrise/1a.tex
11K histoire/maitrise/conclu.tex
112K histoire/maitrise/maitrise.idx
22K histoire/maitrise/A.tex
27K histoire/maitrise/biblio.tex
10K histoire/maitrise/maitrise.toc
<span class="prompt">clipper ~ $</span> du -ak histoire
200 histoire/maitrise/maitrise.dvi.bz2
29 histoire/maitrise/1.html
6 histoire/maitrise/maitrise.tex
18 histoire/maitrise/intro.tex
29 histoire/maitrise/1a.tex
11 histoire/maitrise/conclu.tex
112 histoire/maitrise/maitrise.idx
22 histoire/maitrise/A.tex
27 histoire/maitrise/biblio.tex
10 histoire/maitrise/maitrise.toc
(...)
</pre>
<p>
Pour connaître la taille d'un fichier précis, il suffit d'indiquer à
<code>du -ah</code> le nom de votre fichier (<code>ls -s</code> fait la:
même chose)&nbsp;:
<code>du -ak</code> le nom de votre fichier (<code>ls -s</code> fait
la même chose)&nbsp;:
</p>
<pre>
<span class="prompt">clipper ~ $</span> du -ah histoire/maitrise/maitrise.tex
6.0K histoire/maitrise/maitrise.tex
<span class="prompt">clipper ~ $</span> du -ak histoire/maitrise/maitrise.tex
6 histoire/maitrise/maitrise.tex
</pre>
<h3><a name="df"><code>df</code> : taille d'une partition</a></h3>
<h3><a name="bigf">Application : quels sont les plus gros fichiers de votre compte ?</a></h3>
<p>
En utilisant <code>du -ak</code> et le en combinant avec d'autres
commandes, vous pouvez savoir précisément quels sont les fichiers et
les répertoires qui prennent le plus de place sur votre compte.
</p>
<pre>
<span class="prompt">clipper ~ $</span> du -ak | sort -nr | head -10
98280 .
22007 ./www
1658 ./Mail
9637 ./www/hist
5005 ./www/hist/maitrise
4910 ./histoire
3941 ./Mail/archives
3757 ./www/philo/
3274 ./www/philo/cours
3112 ./www/philo/cours/hegel
2841 ./prive
</pre>
<p class="continue">
Vous savez donc que sur ce compte, le répertoire le plus volumineux
est <code>www</code> (le répertoire qui contient la page Web), puis
<code>Mail</code> (qui contient les dossiers de votre boîte aux
lettres). À l'intérieur de <code>www</code>, le répertoire le plus
gros est <code>www/hist</code> dont <code>www/hist/maitrise</code>
occupe la plus grande part, etc.
</p>
<h4>Explications</h4>
<ol>
<li> <code>du -ak</code> : on demande la taille de tous les fichiers
et répertoires du compte, en kilo-octets.</li>
<li> <code>|</code> : c'est ce qu'on appelle en anglais un <i
lang="en">pipe</i>, un tuyau. Ce « tuyau » sert à envoyer à une autre
commande le résultat de <code>du -ak</code>.</li>
<li> <code>sort -nr</code> : la commande <code>sort</code> sert à
trier des données, en l'espèce on lui demande de trier par taille
(<code>-n</code>) puis de classer par ordre décroissant
(<code>-r</code>) la liste des fichiers et de leur taille (donnée par
<code>du -ak</code>).</li>
<li> après un autre <i lang="en">pipe</i>, on utilise la commande
<code>head</code>, qui affiche seulement le début d'un fichier. En
l'espèce, on lui demande de ne montrer que les 10 premières lignes du
résultat des opérations précédentes.</li>
</ol>
<p class="continue">
Le résultat de toutes ces opérations un peu complexes, c'est que vous
avez affiché les 10 plus gros répertoires ou fichiers (les deux
confondus) de votre compte. Pour ajuster le nombre de fichiers à
afficher, changez le nombre après <code>head</code>.
</p>
<p>
Si vous voulez conserver quelque part la liste de vos gros fichiers,
par exemple si vous demandez une longue liste, utilisez une
redirection (<code>&gt;</code>) :
</p>
<pre>
<span class="prompt">clipper ~ $</span> du -ak | sort -nr | head -50 &gt; gros_fichiers.txt
</pre>
<p class="continue">
Le résultat de votre tri sera conservé dans le fichier
<code>gros_fichiers.txt</code> que vous pourrez étudier à tête
reposée.
</p>
<h3>Application : quelle est la taille de votre boîte aux lettres ?</h3>
<p>
Nous allons de nouveau utiliser le mécanisme des pipes décrit
ci-dessus. Toutes les boîtes aux lettres des gens ayant un compte sur
<code>clipper</code> sont dans le répertoire <code>/var/mail</code>. À
chaque utilisateur correspond le fichier
<code>/var/mail/login</code> : c'est le contenu de votre boîte aux
lettres principale.
</p>
<pre>
<span class="prompt">clipper</span> ~ $ ls -s /var/mail | grep toto
1142 /var/mail/toto
</pre>
<p>
Cette fois-ci, il s'agit de :
</p>
<ol>
<li> demander la taille des fichiers contenus dans le répertoire
<code>/var/mail</code></li>
<li> <a href="&url.tuteurs;unix/chercher.html">chercher</a> avec la
commande <code>grep</code> le fichier qui vous correspond</li>
</ol>
<p class="continue">
La boîte mail de l'utilisateur <code>toto</code> fait donc 1142
Ko. Pour savoir qui ont les plus grosses boîtes aux lettres :
</p>
<pre>
<span class="prompt">clipper</span> ~ $ ls -s /var/mail | sort -nr | head -10
161704 blevy
116728 derrida
75888 hcartan
64912 raron
51744 pasteur
45368 htaine
44720 poincare
44712 cpeguy
44336 rthom
43896 egalois
</pre>
<h2><a name="df">Taille d'une partition : <code>df</code></a></h2>
<p>
La commande <strong><code><a name="df">df</a></code></strong> (<em>
@ -317,7 +448,7 @@ la page des WinTuteurs
</p>
<div class="metainformation">Auteur&nbsp;: Émilia Robin, Marie-Lan
Nguyen. Dernière modification&nbsp;: le <date value="$Date: 2003-12-02 15:13:21 $" />.</div>
Nguyen. Dernière modification&nbsp;: le <date value="$Date: 2004-02-03 14:03:36 $" />.</div>
</body>
</html>