Copie, déplacement et changement des noms de fichiers et de répertoires

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.

Copie de fichiers

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 :

cp source destination
	    

Ainsi, pour copier le fichier tennis.txt dans le sous-répertoire tigger de votre répertoire de connexion, entrez simplement :

cp tennis.txt tigger
	    

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 :

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.

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.

Déplacement de fichiers

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 :

Si vous voulez déplacer un fichier d'un répertoire personnel vers un autre répertoire, entrez :

mv tennis.txt tigger
	    

ou mv tennis.txt /home/newuser /home/newuser/tigger en utilisant des noms de chemin absolus.

Modification du nom d'un fichier

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 :

cp tennis.txt tigger
	    

Pour copier et renommer ce fichier de tennis.txt en basket.txt, entrez :

cp tennis.txt tigger/piglet.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 :

mv  tennis.txt basket.txt
	    

Suppression de fichiers et de répertoires

Nous avons parlé de la création de fichiers à l'aide de la commande touch et de la redirection dans le Chapitre 15. 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 :

rm basket.txt
	    

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 :

rm bask*
	    

Vous pouvez également supprimer plusieurs fichiers dans une seule commande, par exemple, en entrant :

rm basket.txt tennis.txt
	    

Parmi les options pour la suppression de fichiers et de répertoires figurent :

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 :

rm -r tigger
	    

Si vous voulez combiner des options, par exemple forcer une suppression récursive, entrez :

rm -rf tigger
	    

AttentionSoyez 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.