CP(1) Manuel de l'utilisateur Linux CP(1)
NOM
cp - Copier des fichiers.
SYNOPSIS
cp [options] fichier chemin
cp [options] fichier... répertoire
Options POSIX : [-fipRr]
Options GNU (forme courte) : [-abdfilprsuvxPR] [-S SUF
FIXE] [-V {numbered,existing,simple}] [--sparse=WHEN]
[--help] [--version] [--]
DESCRIPTION
cp sert à copier des fichiers (et eventuellement des
répertoires). On peut aussi bien copier un fichier donné
vers une destination précise que copier un ensemble de
fichiers dans un répertoire.
Si le dernier argument correspond à un nom de répertoire,
cp copie dans ce répertoire chaque fichier indiqué en con
servant le même nom.
Sinon, s'il n'y a que deux fichiers indiqués, il copie le
premier sur le second.
Une erreur se produit si le dernier argument n'est pas un
répertoire, et si plus de deux fichiers sont indiqués. Par
défaut, on n'effectue pas la copie de répertoires.
Ainsi `cp -r /a /b' copiera /a dans /b/a et /a/x dans
/b/a/x au cas où /b existe déjà, mais il copiera /a sur /b
et /a/x dans /b/x si /b n'existait pas encore.
Les autorisations d'accès des fichiers et des répertoires
créés seront les mêmes que celles des fichiers d'origine
masquées avec un ET binaire avec 0777, et modifiées par le
umask de l'utilisateur (sauf si l'on invoque l'option -p).
Pendant la copie récursive de répertoires, les nouveaux
répertoires verront leur masque temporairement étendu par
un OU binaire avec S_IRWXU (0700), afin d'autoriser le
processus d'y lire, écrire et vérifier le contenu.
cp ne fait rien lorsque l'on tente de copier un fichier
sur lui-même (sauf éventuellement afficher un message
d'erreur).
Lorsque la copie se fait sur un fichier existant, celui-ci
est ouvert en utilisant `open(chemin, O_WRONLY |
O_TRUNC)'. Lorsque la copie a lieu dans un nouveau
fichier, on invoque `open(chemin, O_WRONLY | O_CREAT,
mode)'. Si l'ouverture d'un fichier existant échoue, et
FSF 5 Mai 1999 1
CP(1) Manuel de l'utilisateur Linux CP(1)
si l'option -f a été invoquée, cp essaye de supprimer,
avec unlink(2), le fichier existant, puis de recréer un
nouveau fichier.
OPTIONS POSIX
Posix défini quatre options et demi :
-f Effacer les fichiers cibles existants (voir ci-
dessus).
-i Interroger l'utilisateur avant d'écraser des
fichiers réguliers existants. La question est
affichée sur stderr, et la réponse lue depuis
stdin.
-p Conserver le propriétaire, le groupe, les permis
sions d'accès et les horodatages du fichier origi
nal. Si la conservation du propriétaire ou du
groupe est impossible, les bits Set-UID et Set-GID
sont effacés. L'horodatage sera quand même
légèrement différent entre l'original et la copie
car l'opération de copie nécessite un accès en lec
ture au fichier source.
-R Copier récursivement les répertoires, et gérer cor
rectement les copies des fichiers spéciaux ou des
FIFOs.
-r Copier récursivement les répertoires mais la ges
tion des fichiers spéciaux n'est pas définie. En
fait l'option -r est autorisée, et même encouragée
à se comporter comme l'option -R, toutefois le com
portement (stupide) de la version GNU n'est pas
interdit.
Spécificité GNU
En général les fichiers sont écrits immédiatement après
lecture de l'original, sauf si l'on utilise l'option
--sparse décrite plus bas.
Par défaut, cp ne copie pas les répertoires (voir l'option
-r).
cp refuse généralement de copier un fichier sur lui-même,
avec l'exception suivante : si les options --force et
--backup sont indiquées, et si les fichiers origine et
copie sont identiques et se rapportent à un fichier
régulier, cp effectuera une copie de sauvegarde (voir plus
bas). Ceci peut servir à faire une sauvegarde d'un
fichier avant de le modifier.
FSF 5 Mai 1999 2
CP(1) Manuel de l'utilisateur Linux CP(1)
OPTIONS GNU
-a, --archive
Préserver autant que possible la structure et les
attributs du fichier original lors de la copie.
Cette option est équivalente à -dpR.
-b, --backup
Effectuer une copie de sauvegarde des fichiers
écrasés ou supprimés.
-d, --no-dereference
Copier les liens symboliques en tant que tels
plutôt que de copier les fichiers vers lesquels ils
pointent. Préserver également les liens matériels
entre les fichiers sources durant la copie.
-f, --force
Effacer les fichiers cibles existants.
-i, --interactive
Interroger l'utilisateur avant d'écraser des
fichiers réguliers existants.
-l, --link
Effectuer des liens matériels plutôt que des copies
des fichiers réguliers.
-P, --parents
Construire le nom de chaque fichier destination en
ajoutant au répertoire cible un slash et le nom du
fichier source indiqué. Le dernier argument de cp
doit être un répertoire existant. Par exemple, la
commande `cp --parents a/b/c rep_existant' copie le
fichier a/b/c en rep_existant/a/b/c, tout en créant
les sous-répertoires intermédiaires manquants.
-p, --preserve
Conserver le propriétaire, le groupe, les permis
sions d'accès et les horodatages du fichier origi
nal.
-r Copier récursivement les répertoires, les sous-
répertoires, et les fichiers réguliers qu'ils con
tiennent. Les fichiers spéciaux et les FIFOs sont
considérés comme des fichiers normaux, desquels ont
essayera de lire des données pour les écrire dans
le fichier destination. Ainsi `cp' risque de blo
quer indéfiniment durant la lecture d'une FIFO ou
d'un fichier spécial /dev/tty. Il faut considérer
ceci comme un bug. Cela signifie qu'il faut éviter
l'option -r, et la remplacer par -R. N'oublions
pas que l'ouverture d'un fichier spécial inconnu,
par exemple un scanner peut avoir des effets
indésirables sur le matériel.
FSF 5 Mai 1999 3
CP(1) Manuel de l'utilisateur Linux CP(1)
-r Copier récursivement les répertoires, les sous-
répertoires, en préservant tous les types de
fichiers rencontrés (voir option -r ci-dessus).
--sparse=QUAND
[NDT : sparse = clairsemé] Un fichier à trous
(sparse file) contient des séquences d'octets nuls
n'occupant pas de place sur le disque. L'appel
système `read' lit ces données comme des zéros. Non
seulement cela permet d'économiser de la place sur
le disque, mais on gagne également de la vitesse de
lecture. De nombreux fichiers binaires (exécutables
par exemple) contiennent des séquences importantes
de zéros. Par défaut, cp détecte les trous dans les
fichiers en utilisant une heuristique grossière et
restituera les trous dans les fichiers de sortie.
L'argument QUAND peut prendre l'une des valeurs
suivantes :
auto Le comportement par défaut, le fichier de
sortie est troué si des trous sont détectés
dans le fichier d'entrée.
always Toujours trouer les fichiers de sortie.
Cette option sert lorsque les fichiers
d'entrée se trouvent sur un système de
fichiers n'acceptant pas les trous, et que
les fichiers de sortie se trouveront sur un
système les acceptant.
never Ne jamais essayer de faire de trous dans les
fichiers de sortie. Si vous trouvez une
utilité à cette option, faites nous le
savoir...
-s, --symbolic-link
Créer des liens symboliques plutôt que des copies
des fichiers réguliers. Tous les noms de fichiers
sources doivent être absolus (commençant par '/') à
moins que les fichiers destinations résident dans
le répertoire en cours. Cette option affiche un
message d'erreur pour les systèmes de fichiers ne
supportant pas les liens symboliques.
-u, --update
Ne pas effectuer la copie si le fichier destination
existant (autre qu'un répertoire) a une date de
modification égale ou plus récente que celle du
fichier source.
-v, --verbose
Afficher le nom de chaque fichier avant de le
copier.
FSF 5 Mai 1999 4
CP(1) Manuel de l'utilisateur Linux CP(1)
-x, --one-file-system
Ignorer les sous-répertoires se trouvant sur un
système de fichiers différent de celui du départ de
la copie.
OPTIONS DE SAUVEGARDE GNU
Les versions GNU des programmes comme cp, mv, ln, install
et patch créeront au besoin une copie de sauvegarde des
fichiers à écraser, à modifier ou à détruire. On demande
une copie de sauvegarde à l'aide de l'option -b, on
indique la nomenclature à adopter avec l'option -V, et si
la sauvegarde se fait avec un suffixe, celui-ci est
précisé avec l'option -S.
-b, --backup
Créer une copie de sauvegarde des fichiers à
écraser ou à détruire.
-S SUFFIXE, --suffix=SUFFIXE
Ajouter le SUFFIXE indiqué à chaque fichier de
sauvegarde créé. Si cette option n'est pas
indiquée, on utilisera la valeur de la variable
d'environnement SIMPLE_BACKUP_SUFFIX. Si la vari
able SIMPLE_BACKUP_SUFFIX n'existe pas, la valeur
par défaut est `~'.
-V METHODE, --version-control=METHODE
Préciser la nomenclature des fichiers de sauvegarde
La METHODE indiquée peut être `numbered' (`t'),
`existing' (`nil'), ou `never' (`simple'). Si
cette option n'est pas indiquée, la valeur de la
variable d'environnement VERSION_CONTROL est
utilisée, et si la variable VERSION_CONTROL
n'existe pas, la valeur par défaut est `existing'.
Cette option correspond à la variable `version-con
trol' sous Emacs. Les METHODES valides (les
abbréviations non-ambigües sont acceptées) sont :
t, numbered
Toujours faire une sauvegarde numérotée.
nil, existing
Faire une sauvegarde numérotée des fichiers
en ayant déjà une précédente, et une sauveg
arde simple pour les autres.
never, simple
Faire toujours une sauvegarde simple.
OPTIONS STANDARDS GNU
--help Afficher un message d'aide sur la sortie standard,
et terminer correctement.
FSF 5 Mai 1999 5
CP(1) Manuel de l'utilisateur Linux CP(1)
--version
Afficher un numéro de version sur la sortie stan
dard, et terminer correctement.
-- Fin de la liste d'options.
ENVIRONMENT
Les variables LANG, LC_ALL, LC_CTYPE et LC_MESSAGES ont
leurs significations habituelles. Pour la version GNU,
les variables SIMPLE_BACKUP_SUFFIX et VERSION_CONTROL con
figurent la nomenclature adoptée pour les sauvegardes de
fichiers.
CONFORMITÉ
POSIX 1003.2.
TRADUCTION
Christophe Blaess, 1997.
FSF 5 Mai 1999 6