Copier, déplacer, renommer et effacer des fichiers

Vous avez jusqu'à présent appris quelques notions sur la structure du système de fichiers. Vous avez également appris à créer des fichiers et répertoires.

Savoir créer des fichiers et répertoires n'entend pas que vous devez garder les changements que vous avez effectués. Cette section vous explique comment copier, déplacer, renommer et effacer des fichiers et répertoires.

Copie de fichiers

Comme de nombreuses fonctionnalités Linux, de nombreuses options s'offrent à vous pour manipuler les fichiers et répertoires. Lorsque vous copiez, déplacez ou effacez des fichiers et répertoires, vous pouvez également utiliser des caractères génériques.

Pour copier des fichiers, entrez la commande suivante :

cp <source> <destination>

Pour copier le fichier sneakers.txt dans le répertoire tigger dans votre répertoire de connexion, allez à votre répertoire de connexion et entrez :

cp sneakers.txt tigger

Notez que vous avez également utilisé des noms d'accès relatifs pour copier le fichier. Vous pouvez utiliser les noms d'accès relatifs et absolus avec cp. Notre répertoire de connexion est le parent du répertoire tigger; tigger est l'un des répertoires dépendant de notre répertoire de connexion.

Lisez les pages cp du manuel (man cp) pour obtenir une liste exhaustive des options disponibles avec cp. Voici quelques unes des options que vous pouvez utiliser avec cp :

Si vous utilisez cp sans options, vous ne verrez pas grand chose lorsque la commande sera exécutée. L'utilisation d'une option, comme par exemple -i, peut rendre le processus un peu plus pratique. Si vous voulez copier un fichier dans un emplacement qui comporte déjà un fichier du même nom, vous devrez d'abord dire si vous voulez réellement écraser (ou remplacer) le fichier déjà existant.

Lorsque le fichier sneakers.txt se trouve dans le répertoire tigger, utilisez cp -i pour copier à nouveau le fichier dans le même emplacement.

[newuser@localhost newuser]$ 
cp -i sneakers.txt tigger
cp: overwrite 'tigger/sneakers.txt'?

Pour écraser le fichier déjà existant, appuyez sur Y puis sur Enter. Vous ne voulez pas écraser le fichier ? Appuyez sur N et Enter.

Déplacement de fichiers

Pour déplacer des fichiers, utilisez la commande mv. Elle est similaire à la commande cp, si ce n'est qu'avec mv le fichier est physiquement déplacé d'un endroit à l'autre au lieu d'être copié comme c'est le cas avec cp. Pour obtenir plus d'informations sur mv, consultez la page mv du manuel (entrez man mv).

Voici quelques options communes de mv  :

Si vous voulez déplacer un fichier hors de votre répertoire personnel vers un autre répertoire, entrez la commande suivante (vous devez vous trouver dans votre répertoire personnel)  ;:

mv sneakers.txt tigger

La même commande utilisant des noms d'accès absolus ressemble à ceci : mv sneakers.txt /home/newuser /home/newuser/tigger.

Renommer un fichier

En réalité nous avons déjà traité de la moitié du processus, car lorsque vous copiez ou déplacez un fichier vous pouvez également le renommer.

Pour copier le fichier sneakers.txt de votre répertoire personnel vers le sous-répertoire tigger il vous suffit de taper :

cp sneakers.txt tigger

Pour copier et renommer ce fichier depuis sneakers.txt vers piglet.txt, entrez :

cp sneakers.txt tigger/piglet.txt

Pour déplacer et renommer le fichier, remplacez cp par mv comme dans l'exemple suivant.

Si vous vous déplacez avec cd dans tigger puis entrez ls, vouz verrez s'afficher le fichier piglet.txt.

Si vous voulez uniquement renommer le fichier et le laisser à son emplacement, il vous suffit de mv dans le répertoire en cours :

mv sneakers.txt piglet.txt

Effacer des fichiers et répertoires

Vous avez appris à créer des fichiers à l'aide de la commande touch et par redirections dans le Chapitre 10. Vous avez également créé le répertoire tigger à l'aide de mkdir.

Il vous faut maintenant apprendre à effacer les fichiers et répertoires. Effacer des fichiers et répertoires à l'aide de la commande rm est un processus simple. Consultez la page rm du manuel pour obtenir plus d'informations. Les options pour effacer les fichiers et répertoires comprennent entre autres :

Pour effacer le fichier piglet.txt du répertoire tigger à l'aide de la commande rm :

rm piglet.txt

Que se passe-t-il si vous vous en êtes vraiment débarrassé ? Trop tard ! C'est ici qu'entre en jeu l'option (interactive) -i (interactive) : elle vous donne une seconde chance de décider si vous voulez vraiment effacer le fichier.

[newuser@localhost newuser]$ 
rm -i piglet.txt
rm: remove 'piglet.txt'?

Vous pouvez également effacer des fichiers en utilisant les caractères génériques *. Mais faites attention, car vous risquez d'effacer des fichiers dont vous ne vouliez pas vous débarrasser.

Pour effacer un fichier en utilisant les caractères génériques, entrez :

rm pig*

La commande ci-dessus effacera tous les fichiers du répertoire commençant par les lettres "pig."

Vous pouvez également effacer plus d'un fichier grâce à la commande :

rm piglet.txt sneakers.txt

Voici quelques unes des options pour effacer des fichiers et répertoires :

Vous pouvez utiliser rmdir pour effacer un répertoire (rmdir foo, par exemple), mais uniquement si le répertoire est vide. Pour effacer des répertoires à l'aide de rm, vous devez spécifier l'option the -r.

Si vous voulez par exemple effacer de façon recursive le répertoire tigger, entrez :

rm -r tigger

Si vous voulez combiner des options, comme par exemple forcer un effacement récursif, vous pouvez taper :

rm -rf tigger

AttentionSoyez attentifs lorsque vous utilisez rm!
 

La commande rm peut effacer tout votre système de fichiers ! Si vous êtes connecté en tant que root et que vous entrez la commande rm -rf /, vous aurez des ennuis ; cette commande effacera de façon récursive tout ce qui se trouve dans votre système.

La commande rmdir est une façon plus sûre d'utiliser rm pour effacer des répertoires. Elle ne vous laissera pas utiliser les effacements récursifs. Ainsi, un répertoire contenant des fichiers ne sera pas effacé.

Consultez la page rmdir du manuel (man rmdir) pour obtenir plus d'informations sur cette commande.