Commande cp
Objectif
Permet de copier des fichiers.
Syntaxe
Pour copier un fichier dans un autre fichier, utilisez la syntaxe suivante:
cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] [ -I ] [ -S ] [ -U ] [ -- ] SourceFile TargetFile
Pour copier un fichier dans un répertoire, utilisez la syntaxe suivante:
cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] [[ -r | -R ] [ -H | -L | -P ]] [ -I ] [ -U ] [ -- ] SourceFile ... TargetDirectory
Pour copier un répertoire dans un répertoire, utilisez la syntaxe suivante:
cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] { -r | -R } [ -H | -L | -P ] [ -I ] [ -U ] [ -- ] SourceDirectory ... TargetDirectory
Descriptif
La commande cp copie le fichier source spécifié par le paramètre SourceFile dans le fichier cible spécifié par le paramètre TargetFile . Si le fichier cible existe, cp écrase le contenu, mais le mode, le propriétaire et le groupe qui lui sont associés ne sont pas modifiés. L'heure du dernier accès à SourceFile et l'heure de la dernière modification de TargetFile sont définies sur l'heure à laquelle la copie a été effectuée. Si TargetFile n'existe pas, cp crée un nouveau fichier nommé TargetFile qui a le même mode que le fichier source, sauf que le bit de rappel n'est pas défini sauf s'il a été effectué par un superutilisateur ; le propriétaire et le groupe de TargetFile est celui de l'utilisateur. Lorsque TargetFile est un lien vers un autre fichier, cp remplace le lien de destination par le contenu du fichier source ; les liens du TargetFile restent. En outre, la commande cp peut copier les fichiers source spécifiés par le paramètre SourceFile (ou les répertoires nommés par le paramètre SourceDirectory ) dans le répertoire spécifié par le paramètre TargetDirectory .
Remarque: Si l'un des paramètres source est un répertoire, vous devez spécifier l'un des indicateurs -r ou -R .
Si des répertoires sont créés par la commande cp lors du processus de copie, le répertoire nouvellement créé aura le même mode que le répertoire source correspondant.
Vous pouvez également copier des fichiers d'unité spéciaux. L'option privilégiée pour ce faire est l'indicateur -R . Si vous indiquez -R, les fichiers spéciaux doivent être recréés sous le nouveau nom de chemin d'accès. Si vous spécifiez l'indicateur -r , la commande cp tente de copier le fichier spécial dans un fichier standard.
Indicateurs
| Article | Descriptif |
|---|---|
| -d | Indique que le fichier source est stocké au format déchiffré (texte en clair) sur la cible. |
| -e | Indique que le fichier source est stocké sous forme chiffrée, si le système de fichiers cible est un système de fichiers chiffré (EFS). |
| -e | L'option -E requiert l'un des arguments suivants. Si vous omettez l'option -E, le
comportement est réglé sur warn par défaut.
|
| -f | Indique le retrait du fichier cible s'il ne peut pas être ouvert pour des opérations d'écriture. La suppression précède toute copie effectuée par la commande cp . |
| -h | Force la commande cp à copier les liens symboliques. La valeur par défaut consiste à suivre les liens symboliques, c'est-à-dire à copier les fichiers vers lesquels pointent les liens symboliques. |
| -h | Exécutez des actions en fonction du type et du contenu du fichier référencé par un lien symbolique spécifié en tant qu'opérande SourceFile . |
| -i | Vous invite à indiquer le nom d'un fichier à remplacer. Cela se produit si le paramètre TargetDirectory ou TargetFile contient un fichier portant le même nom qu'un fichier spécifié dans le paramètre SourceFile ou SourceDirectory . Si vous entrezyou l'équivalent de l'environnement local de y, la commande cp continue. Toute autre réponse empêche la commande cp d'écraser le fichier. |
| -I | Supprime le message d'avertissement lors de la conversion de la liste de contrôle d'accès. |
| -l | Effectuer des actions en fonction du type et du contenu du fichier référencé par un lien symbolique spécifié en tant qu'opérande SourceFile ou des liens symboliques rencontrés lors de la traversée d'une hiérarchie de fichiers. |
| -P | Duplique les caractéristiques suivantes de chaque fichier source / répertoire source dans le TargetFile et/ou le répertoire cible correspondant :
Si l'ID utilisateur ou l'ID groupe ne peut pas être dupliqué, les bits d'autorisation de fichier S_ISUID et S_ISGID sont effacés. Afin de préserver l'ID propriétaire et l'ID groupe, les modes d'autorisation, les modifications et les temps d'accès, l'utilisateur doit disposer des droits d'accès au fichier appropriés (l'utilisateur doit être un superutilisateur ou avoir le même ID propriétaire que le fichier de destination). Le fichier cible ne sera pas supprimé si ces caractéristiques ne peuvent pas être conservées. Les listes de contrôle d'accès (ACL) associées à SourceFile sont conservées si le système de fichiers cible les prend en charge. Si le fichier source contient la liste de contrôle d'accès NFS4 et que le système de fichiers cible ne prend pas en charge la liste de contrôle d'accès NFS4 , la liste de contrôle d'accès NFS4 est convertie en AIXC. Lorsque la conversion de la liste de contrôle d'accès aboutit, un message d'avertissement est imprimé dans le fichier stderr. Si le fichier source est chiffré et que l'indicateur -p est spécifié, la commande cp conserve les informations EFS . En règle générale, l'indicateur -e ou -d est prioritaire sur l'indicateur -p . Si un utilisateur demande la conversion d'un fichier texte en clair dans un format chiffré à l'aide de l'indicateur -e , même si l'utilisateur spécifie l'indicateur -p , la copie ne conserve pas les attributs tels que l'heure de la dernière modification des données, l'heure du dernier accès, etc. Tant que le statut de chiffrement ou de déchiffrement reste le même, l'indicateur -p conserve les attributs de fichier et les informations EFS . |
| -P | Effectue des actions sur tout lien symbolique spécifié en tant qu'opérande SourceFile ou tout lien symbolique rencontré lors de la traversée d'une hiérarchie de fichiers. |
| -r | Copie les hiérarchies de fichiers sous le fichier ou le répertoire spécifié par le paramètre SourceFile ou SourceDirectory (copie récursive). L'indicateur -r traite les fichiers spéciaux de la même manière que les fichiers standard. |
| -r | Copie les hiérarchies de fichiers sous les fichiers et répertoires standard du répertoire spécifié par le paramètre SourceFile ou SourceDirectory vers le répertoire spécifié par le paramètre TargetDirectory . Les types de fichiers spéciaux, tels que les fichiers FIFO (premier entré, premier sorti) et les fichiers de bloc et d'unité de caractères, sont recréés au lieu d'être copiés. Les liens symboliques sont suivis à moins que l'indicateur -h ne soit spécifié. (L'indicateur -R est préféré à l'indicateur -r .) Si aucune des options -H, -Lou -P n'a été spécifiée, il n'est pas spécifié laquelle de ces options sera utilisée par défaut. Tenez compte des éléments suivants :
|
| -S | Conserve l'éparsité du fichier source pendant que vous le copiez dans le fichier cible si le fichier source est clairsemé. Un fichier fractionné est un type de fichier d'ordinateur qui tente d'utiliser l'espace du système de fichiers de manière plus efficace lorsque les blocs alloués au fichier sont pour la plupart vides. |
| -U | Copie les attributs étendus (EA), les listes de contrôle d'accès (ACL) dans SourceFile vers TargetFile. Si EA n'est pas pris en charge sur le système de fichiers cible, il est ignoré. Si le type de liste de contrôle d'accès source n'est pas pris en charge sur le système de fichiers cible, il est converti en type de liste de contrôle d'accès compatible pris en charge par le système de fichiers cible. |
| -- | Indique que les paramètres qui suivent l'indicateur -- (tiret, tiret) doivent être interprétés comme des noms de fichier. Cet indicateur null permet de spécifier des noms de fichier commençant par - (signe moins). |
| Indicateur explicite pour la commande cp | Fichier source | Système de fichiers cible | Résultat |
|---|---|---|---|
| -e (chiffré) | Non- EFS | Non- EFS | Erreur |
| -e | Non- EFS | EFS | Fichier chiffré |
| -e | EFS | EFS | Fichier chiffré |
| -e | EFS | Non- EFS | Erreur |
| -d (déchiffré) | Non- EFS | Non- EFS | Fichier texte en clair |
| -d | Non- EFS | EFS | Fichier texte en clair |
| -d | EFS | Non- EFS | Fichier texte en clair |
| -d | EFS | EFS | Fichier texte en clair |
| Aucun indicateur explicite | Non- EFS | Non- EFS | Fichier texte en clair |
| Aucun indicateur explicite | Non- EFS | EFS | Si l'héritage EFS est activé pour le répertoire cible, le fichier cible est un fichier chiffré. Sinon, le fichier cible est un fichier en texte clair. |
| Aucun indicateur explicite | EFS | EFS | Fichier chiffré |
| Aucun indicateur explicite | EFS | Non- EFS | Erreur |
Statut de sortie
Cette commande renvoie les valeurs de sortie suivantes :
| Article | Descriptif |
|---|---|
| 0 % | Tous les fichiers ont été copiés. |
| >0 | Une erreur s'est produite. |
Exemples
- Pour effectuer une copie d'un fichier dans le répertoire de travail, entrez:
Cette copieprog.càprog.bak. Si leprog.bakLe fichier n'existe pas déjà, la commande cp le crée. S'il existe, la commande cp le remplace par une copie duprog.c.xlsx.cp prog.c prog.bak - Pour copier un fichier de votre répertoire en cours dans un autre répertoire, entrez:
Cette opération copie lajonesfichier dans/home/nick/clients/jones.cp jones /home/nick/clients - Pour copier un fichier dans un nouveau fichier et conserver la date, l'heure et la liste de contrôle d'accès associées au fichier source, entrez:
Cette opération copie lasmithdans le fichiersmith.jr.xlsx. Au lieu de créer le fichier avec la date et l'heure en cours, le système fournitsmith.jrenregistrer la même date et l'heure que lasmith.xlsx. :NONE.smith.jrLe fichier hérite également dusmithprotection du contrôle d'accès du fichier.cp -p smith smith.jr - Pour copier tous les fichiers d'un répertoire dans un nouveau répertoire, entrez:
Cette opération copie uniquement les fichiers de laclientsvers le répertoirecustomers.cp /home/janet/clients/* /home/nick/customers - Pour copier un répertoire, y compris tous ses fichiers et sous-répertoires, dans un autre répertoire, entrez:
cp /home/janet/clients/* /home/nick/customersRemarque: Un répertoire ne peut pas être copié dans lui-même.Cette opération copie laclientsrépertoire, y compris tous ses fichiers, sous-répertoires et fichiers de ces sous-répertoires,customers/clients. - Pour copier un ensemble de fichiers spécifique dans un autre répertoire, entrez:
Cette opération copie lajones,lewisetsmithfichiers de votre répertoire de travail en cours dans le/home/nick/clients.cp jones lewis smith /home/nick/clients - Pour utiliser des caractères de correspondance de modèle pour copier des fichiers, entrez:
Cette opération copie les fichiers de laprogramsqui se termine par.cdans le répertoire en cours, indiqué par l'unique.(point). Vous devez entrer un espace entre lescet le point final.cp programs/*.c . - Pour copier un fichier dans un nouveau fichier et conserver l'ACL et l'EA associées au fichier source, entrez:
cp -U smith smith.jr - Pour conserver l'éparsité du fichier source lors de la copie, entrez:
cp -S file.c sparse_file.c
Fichiers
- /usr/bin/cp
- Contient la commande cp .