A ce stade, vous disposez déjà de quelques
connaissances sur la structure du système de
fichiers ; vous avez également appris à
créer des fichiers et des répertoires.
Mais une fois les fichiers et répertoires
créés, ils ne sont pas immuables. Que se
passe-t-il si vous voulez renommer et/ou déplacer des
fichiers et des répertoires ?
Commençons par la commande de copie.
Comme pour bon nombre de fonctions de Linux, vous avez le
choix entre toute une série d'options lorsque vous
voulez manipuler des fichiers et des répertoires. Vous
pouvez également utiliser des caractères
génériques lorsque vous copiez, déplacez
ou supprimez des fichiers et des répertoires.
Fondamentalement, la commande de copie se résume
à entrer ceci :
Ainsi, pour copier le fichier tennis.txt
dans le sous-répertoire tigger de
votre répertoire de connexion, entrez simplement :
Remarquez que vous avez également utilisé des
noms de chemin relatifs pour copier le fichier. La commande
cp permet d'utiliser des noms de chemin
relatifs ou absolus. Le répertoire de connexion est le
répertoire parent du répertoire
tigger ; cela signifie que
tigger est un sous-répertoire du
répertoire de connexion.
Consultez la page de manuel cp
(man cp) pour obtenir une liste
complète des options offertes par la commande
cp. Voici cependant quelques-unes des
options de la commande cp :
-i -- interactive. Vous demande de
confirmer si le fichier va écraser un fichier dans
le répertoire de destination. Cette option est
utile car elle peut vous aider à éviter de
commettre des erreurs.
-r -- récursive. Au lieu de
copier tous les fichiers et répertoires, copie
l'ensemble de l'arborescence des répertoires, avec
les sous-répertoires et leur contenu, vers un autre
emplacement.
-f -- forcée. Copie sans vous
demander de confirmer l'écrasement du fichier. A
moins d'être certain de vouloir forcer la copie, ne
vous habituez pas trop vite à cette option.
-v - verbeuse. Indique l'état
d'avancement de la copie des fichiers.
Si vous utilisez la commande cp toute
seule, vous ne verrez pas grand-chose de l'exécution de
la commande . L'usage d'une option telle que
-i peut rendre le processus un peu plus
utile car, si vous voulez copier un fichier vers un
emplacement contenant déjà un fichier du
même nom, le système commencera par vous demander
si vous voulez réellement écraser (remplacer) le
fichier existant.
 | Ne soyez pas trop "énergique" |
|---|
| | N'oubliez pas que l'une des options possibles,
-f (forcée), peut écraser
des fichiers sans vous demander confirmation. Lorsque vous
utilisez cette option f, assurez-vous que vous souhaitez
réellement écraser le
fichier concerné.
|
A présent que le fichier
tennis.txt se trouve dans le
répertoire tigger, utilisons la
commande cp -i pour copier de nouveau le
fichier au même endroit.
[newuser@localhost newuser]$ cp -i tennis.txt tigger
cp: overwrite 'tigger/tennis.txt'?
|
Pour écraser le fichier qui se trouve
déjà dans le répertoire, cliquez sur
Y, puis appuyez sur
Entrée. Vous ne souhaitez pas
écraser le fichier ? C'est le moment d'appuyer sur
N, puis sur la touche
Entrée.
Pour déplacer des fichiers, utilisez la commande
mv (man mv), similaire
à la commande cp ; la seule
différence est qu'avec mv, le
fichier est physiquement déplacé d'un endroit
à l'autre, au lieu d'être simplement copié
comme c'est le cas avec cp.
Les options communes avec mv
comprennent :
-i -- interactive. Vous demande de
confirmer si le fichier sélectionné doit
écraser un fichier existant dans le
répertoire de destination. C'est une option utiles
car, comme l'option -i de
cp, vous avez la possibilité de
confirmer votre
volonté de remplacer un fichier existant.
-f -- forcée. Prend le pas sur
le mode interactif et opère le déplacement
sans vous demander confirmation. A moins d'être
certain de vouloir forcer le déplacement, utilisez
cette option avec précaution ; il convient
d'être suffisamment familiarisé avec le
système.
-v -- verbeuse. Affiche la liste des
fichiers en cours de déplacement.
Si vous voulez déplacer un fichier d'un
répertoire personnel vers un autre répertoire,
entrez :
ou mv tennis.txt /home/newuser
/home/newuser/tigger en utilisant des noms de chemin
absolus.
En réalité, nous avons déjà
couvert la moitié de la procédure de changement
de nom car, lorsque vous copiez ou déplacez des
fichiers, vous pouvez également les renommer.
Pour copier le fichier tennis.txt du
répertoire de connexion vers le sous-répertoire
tigger, entrez simplement :
Pour copier et renommer ce fichier de
tennis.txt en
basket.txt, entrez :
cp tennis.txt tigger/basket.txt
|
Pour déplacer et renommer le
fichier, substituez simplement la commande
mv à la commande
cp dans l'exemple ci-dessus.
Si vous accédez au répertoire
(cd) tigger et
utilisez la commande ls, vous voyez le
fichier basket.txt.
Si vous voulez simplement renommer le fichier en conservant
son emplacement, exécutez uniquement la commande
mv dans le répertoire en
cours :
Nous avons parlé de la création de fichiers
à l'aide de la commande touch et de
la redirection dans le Chapitre 13. Nous
avons également créé le répertoire
tigger à l'aide de la commande
mkdir.
Mais nous n'avons pas encore vu comment supprimer des fichiers
et des répertoires.
La suppression de fichiers et de répertoires à
l'aide de la commande rm (man rm
) est un processus simple.
Prenons le nouveau fichier basket.txt et
supprimons-le du répertoire tigger
à l'aide de la commande
rm :
Que se passe-t-il si nous ne voulions pas réellement
nous en débarrasser ? Trop tard ! Une fois de
plus, c'est là où l'option -i
(interactive) devient utile car elle offre la
possibilité de réfléchir à deux
fois avant de supprimer un fichier.
[newuser@localhost newuser]$ rm -i basket.txt
rm: remove 'basket.txt'?
|
Vous pouvez également supprimer des fichiers à
l'aide du caractère générique
*. Soyez prudent néanmoins car vous
risquez de supprimer certains fichiers involontairement.
Pour supprimer un fichier à l'aide d'un
caractère générique, entrez :
Vous pouvez également supprimer plusieurs fichiers dans
une seule commande, par exemple, en entrant :
Parmi les options pour la suppression de fichiers et de
répertoires figurent :
-i -- interactive. Vous demande de
confirmer la suppression. C'est une option très
utile.
-f -- forcée. Prend le pas sur
le mode interactif et supprime le ou les fichiers sans
demander confirmation. Cette option peut poser
problème à moins que vous ne sachiez
exactement ce que vous faites.
-v -- verbeuse. Affiche la liste des
fichiers en cours de suppression.
-r -- récursive. Lors de la
suppression de répertoires, cette option supprime
tous les fichiers et sous-répertoires qu'ils
contiennent. Elle permet également de se
débarrasser d'un répertoire vide.
Pour supprimer des répertoires à l'aide de la
commande rm, spécifiez l'option
-r.
Par exemple, si vous voulez supprimer de façon
récursive le répertoire
tigger, entrez :
Si vous voulez combiner des options, par exemple forcer une
suppression récursive, entrez :
 | Soyez prudent ! |
|---|
| | La commande rm est suffisamment puissante
pour anéantir tout votre système ! Si
vous êtes connecté en tant que root et entrez
la commande rm -rf / vous êtes
éliminé (comme un serpent se mordant la queue,
la commande supprime de façon récursive tout
ce qu'il y a sur le système).
|
Une alternative plus sûre à l'utilisation de
rm pour supprimer des répertoires
est la commande rmdir. Cette commande ne
permet pas d'effectuer des suppressions de manière
récursive, de sorte qu'il est impossible de supprimer
un répertoire contenant des fichiers.
Consultez la page de manuel rmdir en
entrant man rmdir pour en savoir plus sur
la commande.