Space Menu Home Downloads Kiosk Newbie Area Documentation Knowledge Base E-Training Forum Blogs Chat RPMs Farm Linux Events
HistoryHistory |
View
Code | XML |
Help
XWiki Syntax |



Page précédente : CP-12

CP-13 :

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

Décomposer l'option '-a'

Nous avons vu précédemment que fournir l'option -a à la commande 'cp' entraînait six conséquences sur les résultats de l'opération de copie :

  • 1. les répertoires éventuellement inclus dans votre sélection initiale sont recopiés avec leur contenu
  • 2. les fichiers ou répertoires conservent leur horodatage (date et heure) d'origine
  • 3. le propriétaire et le groupe propriétaire du fichier ou du répertoire copié sont conservés
  • 4. les permissions sont maintenues
  • 5. les liens symboliques restent des liens symboliques (et ils conservent l'adresse vers laquelle ils pointaient, qu'elle soit absolue ou relative)
  • 6. les liens en dur passés en argument restent liés.
En revanche aucune de ces six propriétés n'est plus garantie en l'absence de l'option '-a'.

Naturellement, on peut imaginer des situations où un utilisateur ou un programmeur souhaite quelque chose de moins brutal qu'un choix entre toutes ces caractéristiques de la copie et aucune d'entre elles !

Il existe pour répondre à ce type de besoin des options plus 'fines', quasi 'atomiques', ne reprenant qu'une part de l'option 'moléculaire' '-a'. Nous décrirons dans ce qui suit les options de ce type suivantes :

  • -p, -d, -R
Des options plus fines encore, les particules "subatomiques" du monde des options de "cp", sont disponibles, nous décrirons les suivantes :
  • -P, -L, --preserve=[ATTRIBUT]
Et notons pour commencer cette 'formule de la chimie des options' dont vous pourrez vérifier l'exactitude en lisant cette page :

-a = -dpPR

Les options "atomiques"

L'option -p

Cette option permet de conserver à travers la copie :

  1. les permissions du fichier ou du répertoire
  2. le propriétaire et le groupe propriétaire
  3. l'horodatage
Un exemple d'emploi pourrait être :

cp -p * /home/partage
qui copierait tous les fichiers situés à la racine du répertoire de travail dans /home/partage en conservant permissions, propriétaires et horodatages.

L'option -p peut être appropriée lorsque vous créez une sauvegarde d'un fichier que vous allez ensuite modifier. Vous en trouverez un exemple ici.

L'option -d

Cette option permet de :

  1. maintenir à travers la copie la relation entre deux ou plusieurs liens en dur passés en argument à la commande 'cp'. Voir là-dessus CP-12.
  2. copier les liens symboliques comme des liens symboliques. Voir là-dessus CP-11

L'option -R

Cette option implique :

  • la copie 'récursive' des répertoires et sous-répertoires et de leur contenu.
En outre par défaut elle implique aussi :
  • la copie des liens symboliques comme liens (les liens ne sont pas "suivis").
Si votre répertoire de travail contient un répertoire desserts/, la commande :

cp -R tartes/ desserts
y copiera le répertoire tartes/ avec tout ce qu'il contient, y compris ses sous-répertoires. De plus d'éventuels liens symboliques seront copiés comme des liens.

La seconde propriété (copie des liens symboliques comme liens) peut être supprimée en utilisant avec '-R' l'option '-L' qui impose le "suivi" des liens symboliques : si 'cp' est employée avec '-RL', les liens symboliques seront copiés comme des fichiers ayant le nom du lien copié mais le contenu du fichier vers lequel pointait le lien d'origine.

Problèmes de portabilité (pour les programmeurs) Sous la Mandriva 2006 et la plupart des Linux '-r' est l'exact synonyme de '-R'. Toutefois sous certains Unix '-r' peut par défaut suivre les liens symboliques à la différence de '-R'.

Il semble aussi que sur certains systèmes Unix '-R' permette par défaut le suivi des liens symboliques. Si on veut être sûr que cela ne sera pas le cas, on peut alors avoir recours à '-RP', qui est toujours possible.

Les options "subatomiques"

L'option -P

Cette option impose la copie des liens symboliques en tant que liens (voir là-dessus CP-11).

cp -P ~/Documents/poemes/*  /mnt/DISKUSB2.0
copierait sur la clé USB DISKUSB2.0 tous les fichiers situés à la racine de ~/Documents/poemes (cf. CP-5) de telle façon que tous les liens symboliques copiés conservent sur la clé leur statut de liens symboliques.

L'option -L

Cette option impose à 'cp' de "suivre les liens symboliques" : dans ce cas la copie est un fichier qui porte le nom du lien mais qui a le contenu du fichier vers lequel le lien d'origine pointait. Pour un type d'emploi de cette option voir plus haut la section sur l'option -R.

L'option preserve=[ATTRIBUT]

Cette option prend diverses 'valeurs' appelées des 'attributs' qui chacun imposent une certaine contrainte à l'opération de copie. Voici la liste des attributs possibles :

  • mode : impose la conservation des permissions (y inclus les ACL)
  • ownership : préserve le propriétaire et le groupe propriétaire du fichier
  • timestamps : préserve l'horodatage
  • links : préserve les liens entre 'noms' d'un même fichier (liens en dur) passés en argument
  • all : équivalent à l'ensemble des attributs précédents
Par exemple une préservation de l'horodatage pourra être obtenue ainsi :
cp --preserve=timestamps piment condiments/

et pour imposer une préservation de l'horodatage et des propriétaires on pourra taper :

cp --preserve=timestamps --preserve=ownership piment condiments/

Pour finir, vérifiez donc, maintenant que vous avez tous les éléments pour le faire, la validité de la 'formule' donnée en début de page… et vérifiez aussi la validité de ces nouvelles formules de la chimie des options :

-p = --preserve=mode --preserve=timestamps -- preserve=ownership
-d = -P -- preserve=links

Autres ressources

Pour des informations complémentaires sur la commande cp (rappelons que ces pages de la Base de Connaissances de Mandriva ne visent pas l'absolue exhaustivité), on pourra consulter l'excellente page (malheureusement en anglais) :
info cp
Les pages de man :
man cp
plus complexes, font une place plus large à des normes en usage dans le monde Unix en dehors de Linux.

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


Page suivante : Copier des fichiers cachés
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.CP-13 fr Last Author: ptyxs  Date: 2006/03/31 10:21
Powered by XWiki
Copyright (c) 2006 Mandriva