Space Menu Home Downloads Goodies Newbie Area Documentation Knowledge Base E-Training Forum Blogs RPM Farm Linux Events
HistoryHistory |



Copie-6 : Créer un nouvel exemplaire d'un fichier - Autocopie ?

Toutes les pages sur la copie - Index de la section - Index de la Base de Connaissances

Créer par copie un nouvel exemplaire d'un fichier doté d'un nom différent

Dans toutes les pages qui précèdent nous avons vu comment copier fichiers ou répertoires dans un répertoire différent du répertoire d'origine du (ou des) fichier(s)/répertoire(s) copié(s).

En conséquence, toutes nos lignes de commandes se terminaient par l'indication du répertoire de destination où devait être créée la nouvelle copie.

Mais que se passerait-il si le dernier argument passé à la commande 'cp', l'argument qui figure en fin de ligne, était non plus un nom de répertoire mais un nom de fichier ? Message d'erreur ? Blocage silencieux de la commande ??

Non, non, dans ce cas il y aurait création d'une nouvelle copie du fichier dotée d'un nom différent de celui du fichier original.

Par exemple, si vous envisagez d'élaborer une recette de charlotte personnelle à partir de la description classique contenue dans charlotte1.txt, vous pourriez avoir envie de créer un fichier nouveau qui abritera votre recette mise au point à partir du texte précédent et cela tout en conservant par devers vous, au moins pour un certain temps le texte de départ, pour référence… Vous pourriez alors taper ceci :

cp charlotte1.txt ma_charlotte.txt
immédiatement après l'exécution de la commande vous disposerez donc de deux exemplaires du fichier de recette, au contenu identique mais portant des noms distincts : 'charlotte1.txt', qui reste présent, et le nouveau 'ma_charlotte.txt'. Notez bien que ces fichiers sont maintenant complètement séparés : ils pourront acquérir par la suite des contenus et des propriétés complètement différentes. Il n'y a plus aucun lien entre eux. La situation est à cet égard complètement différente de ce qui se serait passé si vous aviez créé un 'lien en dur'.

Attention à l'écrasement Si, dans l'exemple qui précède, il se trouvait que votre répertoire de travail contienne déjà, avant le lancement de la commande, un fichier nommé ma_charlotte.txt, ce fichier courrait le risque de disparaître complètement et définitivement, en d'autres termes d'être "écrasé". Pour découvrir les précautions à prendre afin d'éviter l'écrasement non désiré de fichiers par la commande 'cp', voir la page Copier sans écraser.
Le lecteur attentif n'aura pas manqué de noter que la commande qui nous a servi d'exemple est dépourvue d'option. On n'y retrouve pas la sempiternelle option '-a que nous avions introduite dans tous les exemples de toutes les pages qui précèdent. Pourquoi ? Pour changer un peu… et aussi parce que dans ce cas particulier cela pourrait être particulièrement naturel. Mais il n'y a rien là d'obligatoire : l'option '-a' serait parfaitement possible dans ce cas aussi. Pour les différences sur le fichier ou répertoire copié qu'entraîne la présence ou l'absence de l'option '-a', voir… les pages suivantes.

Renommer

Rappel : si vous voulez seulement renommer un fichier, sans en créer une copie supplémentaire, vous pouvez faire usage de la commande 'mv' :

mv charlotte1.txt ma_charlotte.txt
changerait simplement le nom du fichier 'charlotte1.txt' qui deviendrait 'ma_charlotte.txt'. Pour plus de détails sur 'mv' (et sur les ressemblances et différences entre 'cp' et 'mv') voir Comment déplacer fichiers et répertoires.

Et si je voulais 'copier un fichier sur lui-même' ?

Dans un système Linux, il est parfaitement possible de faire coexister deux fichiers de même nom, pourvu qu'ils soient situés dans des répertoires différents. Vous pouvez parfaitement avoir sur votre système, par exemple, un fichier ~/recettes/toto/charlotte.txt et un autre fichier ~/recettes/julie/charlotte.txt susceptible de contenir une recette complètement différente… Mais à la racine d'un même répertoire, il est impossible d'avoir deux fichiers de même nom, même avec des contenus ou des propriétés différentes. C'est pour cette raison qu'une commande comme la suivante, qui tenterait de 'copier un fichier sur lui-même' :

cp charlotte.txt  charlotte.txt
ne pourra pas être exécutée et provoquera, sur la Mandriva 2006, l'affichage d'un message d'erreur.

En insistant vraiment...

Toutefois, en y ajoutant la combinaison d'options '-b' et '--force', la commande précédente deviendrait exécutable :

cp -b --force charlotte.txt  charlotte.txt
elle provoquerait simplement la création d'une copie de 'sauvegarde' du fichier, dont le nom serait formé du nom du fichier suivi d'un tilde (dans notre exemple : charlotte.txt~). Très utile pour créer par précaution une sauvegarde d'un fichier avant de de le modifier.

Toutes les pages sur la copie - Index de la section - Index de la Base de Connaissances


Page suivante : CP-7 - Copie "imparfaite" ou pourquoi se passer de toute option ?
Auteur : ptyxs (février 2006)
Legal: This page is covered by the GNU Free Documentation License . Standard disclaimers of warranty apply. Copyright LSTB and Mandrakesoft.

RSS
KB.CPSummary > Copie-6 : Créer un nouvel exemplaire d'un fichier - Autocopie ? (fr)
Creator: ptyxs  Date: 2006/02/24 08:31
Last Author: ptyxs  Date: 2006/10/14 10:38
Copyright (c) 2006 Mandriva