<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Utilitaires de manipulation de fichiers</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="cmdline.html" title="Chapitre 3. Introduction à la ligne de commande"><link rel="previous" href="cmdline.html" title="Chapitre 3. Introduction à la ligne de commande"><link rel="next" href="cmdline-attr.html" title="Manipulation des attributs de fichiers"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Utilitaires de manipulation de fichiers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cmdline.html">Précédent</a> </td><th width="60%" align="center">Chapitre 3. Introduction à la ligne de commande</th><td width="20%" align="right"> <a accesskey="n" href="cmdline-attr.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2535182"></a>Utilitaires de manipulation de fichiers</h2></div></div><div></div></div><p><a name="BId-cmdline-pa3"></a><a class="indexterm" name="BId-cmdline-it3"></a> La manipulation de fichiers signifie ici « <span class="quote">copier</span> », « <span class="quote">déplacer</span> » et « <span class="quote">effacer</span> » des fichiers. Le changement de leurs attributs (propriétaire, permissions associées) sera examiné par la suite. </p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2535230"></a>mkdir, touch : création de répertoires et fichiers vides</h3></div></div><div></div></div><p><a name="BId-cmdline-pa4"></a> <a class="indexterm" name="BId-cmdline-it4"></a> <a class="indexterm" name="BId-cmdline-it5"></a> <a class="indexterm" name="BId-cmdline-it6"></a> <span><b class="command">mkdir</b></span> (<span class="foreignphrase"><i class="foreignphrase">MaKe DIRectory</i></span>) est utilisé pour créer des répertoires. Sa syntaxe est simple : </p><a name="BId-cmdline-sc1"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">mkdir [options] <répertoire> [répertoire ...]</pre></td></tr></table><p><a name="BId-cmdline-pa5"></a> En fait, une seule option est vraiment intéressante : l'option <tt class="option">-p</tt>. Si cette option est passée en argument, elle implique deux comportements : </p><div class="orderedlist"><ol type="1"><li><p><a name="BId-cmdline-pa6"></a><span><b class="command">mkdir</b></span> créera les répertoires parents s'il n'existaient pas avant. Sans cette option, <span><b class="command">mkdir</b></span> échouerait, se plaignant que les répertoires parents n'existent pas ; </p></li><li><p><a name="BId-cmdline-pa7"></a><span><b class="command">mkdir</b></span> terminera silencieusement si le répertoire que vous désirez créer existe déjà. De même, si vous ne spécifiez pas l'option <tt class="option">-p</tt>, <span><b class="command">mkdir</b></span> renverra un message d'erreur, se plaignant cette fois-ci que le répertoire à créer existe déjà. </p></li></ol></div><p><a name="BId-cmdline-pa8"></a>Voici quelques exemples : </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa9"></a><span><b class="command">mkdir toto</b></span> crée un répertoire du nom de <tt class="filename">toto</tt> dans le répertoire courant. </p></li><li><p><a name="BId-cmdline-pa10"></a><span><b class="command">mkdir -p images/divers docs</b></span> crée un répertoire <tt class="filename">divers</tt> dans le répertoire <tt class="filename">images</tt> après avoir créé ce dernier s'il n'existait pas (<tt class="option">-p</tt>) ; il crée également un répertoire <tt class="filename">docs</tt> dans le répertoire courant. </p></li></ul></div><p><a name="BId-cmdline-pa11"></a> <a class="indexterm" name="BId-cmdline-it7"></a> <a class="indexterm" name="BId-cmdline-it8"></a> <a class="indexterm" name="BId-cmdline-it9"></a> <a class="indexterm" name="BId-cmdline-it10"></a> Initialement, la commande <span><b class="command">touch</b></span> n'a pas pour but de créer des fichiers mais de mettre à jour les dates d'accès et de modification<sup>[<a name="id2535561" href="#ftn.id2535561">3</a>]</sup>. Toutefois, l'un des effets de bord de <span><b class="command">touch</b></span> est de créer les fichiers mentionnés comme des fichiers de taille 0 s'ils n'existaient pas déjà. La syntaxe est :</p><a name="BId-cmdline-sc2"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">touch [options] fichier [fichier...]</pre></td></tr></table><p><a name="BId-cmdline-pa13"></a>Il faut donc lancer la commande :</p><a name="BId-cmdline-sc3"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">touch fichier1 images/fichier2</pre></td></tr></table><p><a name="BId-cmdline-pa14"></a> ce qui créera un fichier vide appelé <tt class="filename">fichier1</tt> dans le répertoire courant et un fichier vide appelé <tt class="filename">fichier2</tt> dans le répertoire <tt class="filename">images</tt>, si ces fichiers n'existaient pas déjà.</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2535683"></a>rm : supprimer des fichiers ou des répertoires</h3></div></div><div></div></div><p><a name="BId-cmdline-pa15"></a> <a class="indexterm" name="BId-cmdline-it11"></a> <a class="indexterm" name="BId-cmdline-it12"></a> <a class="indexterm" name="BId-cmdline-it13"></a> <span><b class="command">rm</b></span> (<span class="foreignphrase"><i class="foreignphrase">ReMove</i></span>) remplace les commandes <span><b class="command">del</b></span> et <span><b class="command">deltree</b></span> de <span class="application">DOS</span>, et rajoute des options supplémentaires. Sa syntaxe est : <a name="BId-cmdline-sc4"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">rm [options] <file|directory> [file|directory...]</pre></td></tr></table><p> Parmi les options, on trouve :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa16"></a><tt class="option">-r</tt> ou <tt class="option">-R</tt> : <a class="indexterm" name="BId-cmdline-it14"></a>supprime récursivement. Cette option est <span class="emphasis"><em>obligatoire</em></span> pour supprimer un répertoire, même vide. Toutefois, pour effacer des répertoires vides, vous pouvez également utiliser la commande <span><b class="command">rmdir</b></span>. </p></li><li><p><a name="BId-cmdline-pa17"></a> <tt class="option">-i</tt> : <a class="indexterm" name="BId-cmdline-it15"></a>demande une confirmation avant chaque effacement. Prenez note que, par défaut et pour des raisons de sécurité, la commande <span><b class="command">rm</b></span> dans <span class="application">Mandrakelinux</span> est un <a name="BId-cmdline-gt1" href="glossary.html#term-alias"><i class="glossterm">alias</i></a> de <span><b class="command">rm -i</b></span> (comme le sont également les commandes <span><b class="command">cp</b></span> et <span><b class="command">mv</b></span>). Si vous désirez les effacer, vous pouvez éditer le ficher <tt class="filename">~/.bashrc</tt> et ajouter la ligne suivante : <tt class="literal">unalias rm cp mv</tt>. </p></li><li><p><a name="BId-cmdline-pa18"></a><tt class="option">-f</tt> : le contraire de <tt class="option">-i</tt>, cette option force la suppression des fichiers ou répertoires, même si l'utilisateur n'a pas l'autorisation d'écriture sur les fichiers<sup>[<a name="id2535952" href="#ftn.id2535952">4</a>]</sup>. </p></li></ul></div><p><a name="BId-cmdline-pa20"></a>Quelques exemples : </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa21"></a><span><b class="command">rm -i images/*.jpg fichier1</b></span> : suppression de tous les fichiers dont le nom se termine par <tt class="filename">.jpg</tt> dans le répertoire <tt class="filename">images</tt>, ainsi que le fichier <tt class="filename">fichier1</tt> dans le répertoire courant. Une confirmation est demandée pour chacun des fichiers. Répondez <span><b class="keycap">o</b></span> ou <span><b class="keycap">y</b></span> pour confirmer, <span><b class="keycap">n</b></span> pour annuler. </p></li><li><p><a name="BId-cmdline-pa22"></a><span><b class="command">rm -Rf images/divers/ file*</b></span> : suppression sans demande de confirmation de tout le répertoire <tt class="filename">divers/</tt> dans le répertoire <tt class="filename">images/</tt>. De plus, tous les fichiers du répertoire courant dont le nom commence par <tt class="filename">file</tt> seront également effacés. </p></li></ul></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Avertissement</th></tr><tr><td colspan="2" align="left" valign="top"><p><a name="BId-cmdline-pa23"></a>Un fichier effacé avec <span><b class="command">rm</b></span> l'est de façon <span class="emphasis"><em>irréversible</em></span> : il n'y a alors aucun moyen de récupérer ce fichier<sup>[<a name="id2536103" href="#ftn.id2536103">5</a>]</sup>! N'hésitez donc pas à utiliser l'option <tt class="option">-i</tt> afin d'éviter d'effacer des données par erreur.</p></td></tr></table></div></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2536127"></a>mv : déplacer ou renommer des fichiers</h3></div></div><div></div></div><p><a name="BId-cmdline-pa24"></a><a class="indexterm" name="BId-cmdline-it16"></a><a class="indexterm" name="BId-cmdline-it17"></a> <a class="indexterm" name="BId-cmdline-it18"></a> <a class="indexterm" name="BId-cmdline-it19"></a> <a class="indexterm" name="BId-cmdline-it20"></a>La syntaxe de la commande <span><b class="command">mv</b></span> (<span class="foreignphrase"><i class="foreignphrase">MoVe</i></span>) est la suivante : </p><a name="BId-cmdline-sc5"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> mv [options] <file|directory> [file|directory ...] <destination></pre></td></tr></table><p><a name="BIdNEW-cmdline-pa123"></a>Voici quelques options :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa25"></a><tt class="option">-f</tt> : force l'opération. Aucun avertissement en cas d'écrasement d'un fichier au cours de l'opération. </p></li><li><p><a name="BId-cmdline-pa26"></a><tt class="option">-i</tt> : le contraire. Demande une confirmation à l'utilisateur avant d'écraser un fichier existant. </p></li><li><p><a name="BId-cmdline-pa27"></a><tt class="option">-v</tt> : mode <a name="BId-cmdline-gt2" href="glossary.html#term-verbose"><i class="glossterm">verbeux</i></a> qui rapporte tous les changements.</p></li></ul></div><p><a name="BIdNEW-cmdline-pa124"></a>Quelques exemples :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa28"></a><span><b class="command">mv -i /tmp/pics/*.png .</b></span> : déplace tous les fichiers du répertoire <tt class="filename">/tmp/pics/</tt> dont le nom se termine par <tt class="filename">.png</tt> vers le répertoire courant (<tt class="filename">.</tt>). Une confirmation est demandée avant d'écraser un fichier existant. </p></li><li><p><a name="BId-cmdline-pa29"></a><span><b class="command">mv toto titi</b></span> : renomme le fichier (ou le répertoire) <tt class="filename">toto</tt> en <tt class="filename">titi</tt>. Si un répertoire <tt class="filename">titi</tt> existait déjà, l'effet de cette commande serait de bouger tout le répertoire <tt class="filename">toto</tt> (le répertoire lui-même et tous ses fichiers et sous-répertoires) dans le répertoire <tt class="filename">titi</tt>. </p></li><li><p><a name="BId-cmdline-pa30"></a><span><b class="command">mv -vf fichier* images/ trash/</b></span> : déplace, sans demander de confirmation, tous les fichiers dans le répertoire courant dont le nom commence par <tt class="filename">fichier</tt>, ainsi que tout le répertoire <tt class="filename">images/</tt> vers le répertoire <tt class="filename">trash/</tt>. Tous les changements effectués sont mentionnés. </p></li></ul></div></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2536455"></a>cp : copier des fichiers et des répertoires</h3></div></div><div></div></div><p><a name="BId-cmdline-pa31"></a> <a class="indexterm" name="BId-cmdline-it21"></a> <a class="indexterm" name="BId-cmdline-it22"></a> <a class="indexterm" name="BId-cmdline-it23"></a> <span><b class="command">cp</b></span> remplace les commandes <span><b class="command">copy</b></span> et <span><b class="command">xcopy</b></span> de <span class="application">DOS</span> et contient d'autres options. Sa syntaxe est la suivante : <a name="BId-cmdline-sc6"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> cp [options] <file|directory> [file|directory ...] <destination></pre></td></tr></table><p> Il existe une myriade d'options. Voici les plus utilisées : </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa32"></a><tt class="option">-R</tt> : copie récursivement ; <span class="emphasis"><em>obligatoire</em></span> pour copier un répertoire, même vide. </p></li><li><p><a name="BId-cmdline-pa33"></a><tt class="option">-i</tt> : demande une confirmation avant d'écraser des fichiers. </p></li><li><p><a name="BId-cmdline-pa34"></a><tt class="option">-f</tt> : le contraire de <tt class="option">-i</tt>. Remplace tous les fichiers existants sans demander de confirmation. </p></li><li><p><a name="BId-cmdline-pa35"></a><tt class="option">-v</tt> : mode verbeux qui mentionne toutes les actions effectuées par <span><b class="command">cp</b></span>. </p></li></ul></div><p><a name="BId-cmdline-pa36"></a>Quelques exemples : </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdline-pa37"></a><span><b class="command">cp -i /tmp/images/* images/</b></span> : copie tous les fichiers du répertoire <tt class="filename">/tmp/images</tt> dans le répertoire <tt class="filename">images/</tt> du répertoire courant, en demandant une confirmation avant d'écraser un fichier. </p></li><li><p><a name="BId-cmdline-pa38"></a><span><b class="command">cp -vR docs/ /shared/mp3s/* mestrucs/</b></span> : copie tout le répertoire <tt class="filename">docs</tt> du répertoire courant, en plus de tous les fichiers du répertoire <tt class="filename">/shared/mp3s</tt> dans le répertoire <tt class="filename">mestrucs</tt>, lequel est situé dans le répertoire courant. </p></li><li><p><a name="BId-cmdline-pa39"></a><span><b class="command">cp toto titi</b></span> : copie le fichier <tt class="filename">toto</tt> sous le nom de <tt class="filename">titi</tt> dans le répertoire courant. </p></li></ul></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2535561" href="#id2535561">3</a>] </sup>Il y a trois mesures de temps distinctes pour chaque fichier sous <span class="application">UNIX</span> : la date du dernier accès au fichier (<tt class="literal">atime</tt>), c'est-à-dire la date de la dernière ouverture du fichier en lecture ou en écriture ; la date de la dernière modification des attributs de l'inœud (<tt class="literal">mtime</tt>) ; et enfin la date de la dernière modification du contenu du fichier (<tt class="literal">ctime</tt>). </p></div><div class="footnote"><p><sup>[<a name="ftn.id2535952" href="#id2535952">4</a>] </sup>Pour un utilisateur, il est suffisant de pouvoir écrire dans un répertoire pour en effacer des fichiers, même s'il n'en est pas le propriétaire. </p></div><div class="footnote"><p><sup>[<a name="ftn.id2536103" href="#id2536103">5</a>] </sup>il est en fait possible de récupérer ces fichiers mais c'est un travail de spécialiste.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cmdline.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdline.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="cmdline-attr.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Chapitre 3. Introduction à la ligne de commande </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Manipulation des attributs de fichiers</td></tr></table></div></body></html>