|
|
Copie-6 : Créer un nouvel exemplaire d'un fichier - Autocopie ?
Page précédente : CP-5 - Copie de répertoires (suite) - Copie et écrasement (suite et fin) Page suivante : CP-7 - Copie "imparfaite" ou pourquoi se passer de toute option ? Toutes les pages sur la copie - Index de la section - Index de la Base de Connaissances 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érentDans 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
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 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
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 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. |