Commande cp

Fonction

Cette commande permet de copier des fichiers.

Syntaxe

Pour copier un fichier dans un autre fichier

cp [ -E{force|ignore|warn} ] [ -f ] [ -h ] [  -i ] [ -p ] [ -I ] [ -U ] [ ] FichierSource FichierCible

Pour copier un fichier dans un répertoire

cp [ -E{force|ignore|warn} ] [ -f ] [  -h ] [  -i ] [  -p ] [[  -r -R ] [ -H | -L | -P ]] [ -I ] [ -U ] [ ] FichierSource ... RépertoireCible

Pour copier un répertoire dans un répertoire

cp [ -E{force|ignore|warn} ] [ -f ] [  -h ] [  -i ] [  -p ] {  -r -R } [ -H | -L | -P ] [ -I ] [ -U ] [  ] RépertoireSource ... RépertoireCible

Description

La commande cp copie le fichier source indiqué par le paramètre FichierSource vers le fichier cible indiqué par le paramètre FichierCible. Si le fichier cible existe, cp écrase son contenu, mais le mode, le propriétaire et le groupe correspondants ne sont pas modifiés. La date et heure du dernier accès au FichierSource et de la dernière modification du FichierCible sont réglées sur la date et heure de la copie. Si le FichierCible n'existe pas, cp crée un fichier appelé FichierCible dont le mode est identique à celui du fichier source, sauf que le bit de rappel n'est pas défini (à moins que l'opération soit exécutée par un superutilisateur). Le propriétaire et le groupe du FichierCible sont ceux de l'utilisateur. Si le FichierCible est un lien vers un autre fichier, cp remplace le lien cible par le contenu du fichier source. Les liens provenant du FichierCible sont conservés. La commande cp peut en outre copier les fichiers source indiqués par le paramètre FichierSource (ou les répertoires indiqués par le paramètre RépertoireSource) vers le répertoire indiqué par le paramètre RépertoireCible.

Remarque :
Si l'un des paramètres source est un répertoire, vous devez spécifier l'une des options -r ou -R.

Si un répertoire est créé par la commande cp lors du processus de copie, son mode correspond à celui du répertoire source.

Vous pouvez également copier des fichiers d'unité spéciaux. L'option la plus adaptée à cette opération est -R. Spécifier -R entraîne la recréation des fichiers spéciaux, le nouveau chemin étant appliqué. Spécifier l'option -r force la commande cp à tenter de copier le fichier spécial dans un fichier standard.

Options

-E L'option -E requiert l'un des arguments indiqués ci-dessous. Si vous omettez l'option -E, le comportement est réglé sur warn par défaut.
force
L'opération cp échoue sur un fichier s'il est impossible de conserver la taille de l'ensemble de blocs contigus fixes ou la réservation de l'espace du fichier.
ignore
Ignore toute erreur liée à la conservation des attributs relatifs à l'ensemble de blocs contigus.
warn
Génère un avertissement s'il est impossible de conserver la taille de l'ensemble de blocs contigus fixe ou la réservation de l'espace.
-f Spécifie la suppression du fichier cible s'il ne peut pas être ouvert pour les opérations d'écriture. La suppression précède toute copie exécutée par la commande cp.
-h Impose à la commande cp de copier les liens symboliques. Ceux-ci sont suivis par défaut. En d'autres termes, les fichiers vers lesquels pointent les liens symboliques sont copiés.
-H Effectue les actions basées sur le type et le contenu du fichier référencé par un lien symbolique spécifié sous forme d'opérande FichierSource.
-i Affiche le nom du fichier qui va être écrasé. Cette opération se produit si le paramètre RépertoireCible ou FichierCible contient un fichier portant le même nom qu'un fichier indiqué par le paramètre FichierSource ou RépertoireSource. Si vous entrez y ou son équivalent dans l'environnement local, la commande cp poursuit son exécution. Toute autre réponse empêche la commande cp d'écraser le fichier.
-I Supprime le message d'avertissement lors de la conversion LCA.
-L Effectue les actions basées sur le type et le contenu du fichier référencé par un lien symbolique qui est spécifié sous forme d'opérande FichierSource ou détecté lors de la traversée d'une arborescence de fichiers.
-p Duplique les caractéristiques suivantes de chaque FichierSource/RépertoireSource dans le FichierCible et/ou RépertoireCible correspondant :
  • La date et heure de la dernière modification de données et du dernier accès. Si cette duplication échoue, quelle qu'en soit la raison, la commande cp écrit un message de diagnostic (erreur-type).
  • L'identificateur de l'utilisateur et du groupe. Si cette duplication échoue, quelle qu'en soit la raison, la commande cp écrit parfois un message de diagnostic (erreur-type).
  • Les bits de droits d'accès au fichier, ainsi que les bits S_ISUID et S_ISGID. Si cette duplication échoue, quelle qu'en soit la raison, la commande cp écrit un message de diagnostic (erreur-type).

S'il est impossible de dupliquer l'identificateur de l'utilisateur ou du groupe, les bits de droits d'accès au fichier S_ISUID et S_ISGID sont effacés.

Pour conserver l'identificateur du propriétaire et celui du groupe, les modes de droit d'accès, ainsi que la date et heure de modification et d'accès, l'utilisateur doit disposer des droits d'accès au fichier appropriés (il doit être un superutilisateur ou disposer du même identificateur de propriétaire que le fichier cible).

S'il est impossible de conserver ces caractéristiques, le fichier cible n'est pas supprimé.

Les listes de contrôle d'accès (LCA) associées au FichierSource sont conservées si le système de fichiers cible les gère également. Si le fichier source contient une LCA NFS4 et que le système de fichiers cible ne la gère pas, la LCA NFS4 est convertie au format AIXC.

Si la conversion de la LCA aboutit, un message d'avertissement est imprimé sur la sortie standard.

-P Effectue les actions associées à tout lien symbolique spécifié sous forme d'opérande FichierSource ou détecté lors de la traversée d'une arborescence de fichiers.
-r Copie les arborescences de fichiers sous le fichier ou le répertoire indiqué par le paramètre FichierSource ou RépertoireSource (copie récursive). L'option -r traite les fichiers spéciaux comme des fichiers standard.
-R Copie les arborescences de fichiers sous les répertoires et fichiers standard du répertoire indiqué par le paramètre FichierSource ou RépertoireSource vers le répertoire indiqué par le paramètre RépertoireCible. Les types de fichier spécial, tels que les fichiers premier entré, premier sorti et les fichiers d'unités par caractère et par bloc sont recréés ou lieu d'être copiés. Les liens symboliques sont suivis, sauf si l'option -h est indiquée. (L'option -R est préférable à l'option -r.)

Si aucune des options -H, -L ou -P n'est spécifiée, l'option utilisée par défaut n'est pas indiquée. Envisagez le cas de figure suivant :

  • Si vous avez spécifié l'option -H, la commande cp effectue les actions basées sur le type et le contenu du fichier référencé par tout lien symbolique défini sous forme d'opérande FichierSource.
  • Si vous avez spécifié l'option -L, la commande cp effectue les actions basées sur le type et le contenu du fichier référencé par un lien symbolique qui est spécifié sous forme d'opérande FichierSource ou détecté lors de la traversée d'une arborescence de fichiers.
  • Si vous avez spécifié l'option -P, la commande cp copie tout lien symbolique qui est spécifié sous forme d'opérande FichierSource ou détecté lors de la traversée d'une arborescence de fichiers, et ne suit aucun lien symbolique.
-U Copie les attributs étendus et les listes de contrôle d'accès (LCA) provenant du FichierSource vers le FichierCible. Si les attributs étendus ne sont pas pris en charge par le système de fichiers cible, ils ne sont pas pris en compte. Si le type de LCA source n'est pas pris en charge par le système de fichiers cible, la liste est convertie en type compatible géré.
-- Indique que les paramètres qui suivent l'option -- (tiret, tiret) doivent être interprétés comme des noms de fichier. Cette option NULL permet de définir des noms de fichier qui débutent par un signe moins (-).

Etat de sortie

Cette commande renvoie les valeurs de sortie suivantes :

0 L'opération de copie de tous les fichiers a abouti.
>0 Il s'est produit une erreur.

Exemples

  1. Pour copier un fichier vers le répertoire en cours, entrez :

    cp prog.c prog.bak

    Cette commande copie prog.c dans prog.bak. Si le fichier prog.bak n'existe pas encore, la commande cp le crée. S'il existe, la commande cp le remplace par une copie du fichier prog.c.

  2. Pour copier un fichier résidant dans le répertoire en cours vers un autre répertoire, entrez :

    cp dupont /home/nicolas/clients

    Cette commande copie le fichier dupont vers /home/nicolas/clients/dupont.

  3. Pour copier un fichier dans un nouveau fichier et conserver la date et heure de modification et la liste de contrôle d'accès associées au fichier source, entrez :
    cp  -p durant durant.jr
    Cette commande copie le fichier durant dans le fichier durant.jr. Au lieu de lui associer la date et l'heure en cours, le système attribue au fichier durant.jr la même date et heure que le fichier durant. Le fichier durant.jr hérite également de la protection de contrôle d'accès du fichier durant.
  4. Pour copier tous les fichiers d'un répertoire vers un nouveau répertoire, entrez :

    cp /home/josiane/clients/* /home/nicolas/ventes

    Cette commande ne copie que les fichiers du répertoire clients vers le répertoire ventes.

  5. Pour copier un répertoire, y compris tous ses fichiers et sous-répertoires, vers un autre répertoire, entrez :
    cp  -R /home/nicolas/clients /home/nicolas/ventes
    Remarque :
    Un répertoire ne peut pas être copié dans lui-même.
    Cette commande copie le répertoire clients, y compris tous ses fichiers, ses sous-répertoires et les fichiers de ces derniers, vers le répertoire ventes/clients.
  6. Pour copier un ensemble de fichiers spécifique vers un autre répertoire, entrez :

    cp dupont lynnet durant /home/nicolas/clients

    Cette commande copie les fichiers dupont, lynnet et durant de votre répertoire de travail en cours vers le répertoire /home/nicolas/clients.

  7. Pour utiliser des métacaractères pour copier des fichiers, entrez :

    cp programmes/*.c .

    Cette commande copie les fichiers stockés dans le répertoire programmes qui se terminent par .c vers le répertoire en cours, représenté par le point (.) unique . Vous devez entrer un espace entre le c et le point final.

  8. Pour copier un fichier vers un nouveau fichier tout en conservant la LCA et les attributs étendus associés au fichier source, entrez :
    cp -U durant durant.jr
    

Fichiers

/usr/bin/cp
Contient la commande cp.

Rubriques connexes

Commande mv.


Envoyer un commentaire | Evaluer la page