Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:cp [12/06/2010 12:30] smolski |
doc:systeme:cp [18/03/2017 13:47] smolski [Copie d'un fichier dans un répertoire différent] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== cp ====== | ||
+ | |||
+ | * Objet : cp | ||
+ | * Niveau requis : {{tag>débutant avisé}} | ||
+ | * Commentaires : //Copie de fichier. // | ||
+ | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
+ | * Suivi : | ||
+ | * Création par [[user>MaTTuX_]] <date> //Mattuxalem...// | ||
+ | * Testé par [[user>smolski]] le 20-06-2009 | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1478 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | |||
+ | ===== Présentation ===== | ||
+ | |||
+ | La commande ''cp'' permet la copie de fichiers. | ||
+ | |||
+ | ===== Syntaxe ===== | ||
+ | |||
+ | <code>cp [option]... source... dossier</code> | ||
+ | <code>cp [option]... [-T] source cible</code> | ||
+ | <code>cp [option]... -t dossier source...</code> | ||
+ | | ||
+ | |||
+ | Elle s'utilise sous plusieurs formes : | ||
+ | |||
+ | ===== Copie d'un fichier source ===== | ||
+ | |||
+ | Exemple de copie du fichier **essai** dans le répertoire principal((le répertoire à la racine de notre user ''/home/user'' en cours)). | ||
+ | - S'assurer d'être bien positionné dans le répertoire principal avec [[doc:programmation:shell:cd|la commande cd]] ainsi :<code user>cd ~</code> | ||
+ | - Créer un fichier vide //essai// avec la commande [[doc:systeme:touch|touch]] :<code user>touch essai</code> | ||
+ | - On va d'abord vérifier la présence du fichier **essai** à l'aide de [[doc:systeme:ls|la commande ls]] :<code user>ls essai</code><file config retour de la commande>essai</file>Impec le fichier ''essai'' est bien présent. | ||
+ | - On copie maintenant notre fichier **essai** et, pour différencier la copie du fichier original présent dans le même répertoire courant((le répertoire d'où on lance la commande)) on lui accole par exemple le chiffre ''1'' :<code user>cp essai essai1</code> | ||
+ | - On regarde le résultat :<code user>ls essai*</code><file config retour de la commande>essai essai1</file> | ||
+ | |||
+ | On a donc bien copié le fichier **essai** dans le répertoire courant en lui donnant le nouveau nom **essai1**. :-) | ||
+ | |||
+ | ===== Copie d'un fichier distant dans le répertoire courant ===== | ||
+ | |||
+ | Le répertoire courant est représenté par un . (Voir à ce sujet [[doc:programmation:shell:repertoires|le tuto des répertoire]]). \\ | ||
+ | On peut donc copier un fichier qui se trouve dans un répertoire donné en indiquant seulement le chemin où il se trouve. | ||
+ | |||
+ | Depuis un répertoire courant dans lequel je veux copier le fichier //test// qui se trouve en **/home/martin/archives**, je tape la commande suivante : | ||
+ | <code user>cp /home/martin/archives/test .</code> | ||
+ | |||
+ | //Pas plus compliqué que cela !// | ||
+ | |||
+ | souvent ,l'utilisateur souhaite copier des fichiers d'un dossier vers un autre sans avoir a ecrire les fichiers un a un : | ||
+ | <code user>cp /chemin_de_ton_dossier/* /chemin_vers_ton_répertoire .</code>(merci a paskal) | ||
+ | |||
+ | ===== Copie d'un fichier dans un répertoire différent ===== | ||
+ | |||
+ | On va, par exemple, copier le fichier //essai// d'où nous nous trouvons par défaut sur le bureau (Le bureau est en effet un répertoire nommé Desktop !) : | ||
+ | <code user>cp essai /home/mattux/Desktop</code> | ||
+ | |||
+ | Résultat | ||
+ | <code user>ls /home/mattux/Desktop</code> | ||
+ | |||
+ | <file config retour de la commande>435076.gif MozillaFirefox.desktop | ||
+ | beryl-settings.Profile myComputer.desktop | ||
+ | essai Network.desktop</file> | ||
+ | |||
+ | <note important>**ATTENTION ! :** \\ | ||
+ | Si le fichier //essai// existe déjà dans le répertoire de destination (Desktop //dans cet exemple//), son contenu est écrasé par le nouveau contenu du fichier essai du répertoire source ! | ||
+ | </note> | ||
+ | |||
+ | |||
+ | ==== Option -i ==== | ||
+ | |||
+ | Afin de contrôler la copie, on utilise l'option **-i** ainsi : | ||
+ | <code user>cp -i essai /home/mattux/Desktop</code> | ||
+ | |||
+ | Si un fichier //essai// est déjà présent sur le bureau (répertoire /Desktop), **cp** s'interrompt et demande par | ||
+ | <file config commande interactive>y (yes) ou n (no)</file> | ||
+ | s'il doit écraser le fichier ! | ||
+ | |||
+ | <note tip>Au cas d'un trop grand nombre de remplacements demandés (une commande de copie redoublée par inadvertance pour des fichiers volumineux par exemple...) <key>C-c</key> sur le clavier interrompt tous les processus de cp d'un coup...</note> | ||
+ | |||
+ | ==== Option -r (récursif) ==== | ||
+ | |||
+ | L'option cp -r permet de copier un répertoire avec son contenu. | ||
+ | |||
+ | Prenons en exemple le répertoire sav_cle_jojo et tout son contenu de fichiers et d'autres répertoires avec leurs répertoires et fichiers contenus aussi en cascade : | ||
+ | <code user>ls sav_cle_jojo</code> | ||
+ | <code config retour de la commande>Affiche commande-2015.odt</code> | ||
+ | * 1 répertoire : Affiche | ||
+ | * 1 fichier : commande-2015.odt | ||
+ | <code user>cp sav_cle_jojo sav_test</code> | ||
+ | <code config retour de la commande>cp: omission du répertoire « sav_cle_jojo »</code> | ||
+ | <code user>cp -r sav_cle_jojo sav_test</code> | ||
+ | <code user>ls sav_test</code> | ||
+ | <code config retour de la commande>Affiche commande-2015.odt</code> | ||
+ | ===== Copie de fichiers depuis des répertoires différents ===== | ||
+ | |||
+ | Indiquer le chemin complet pour chacun des fichiers à copier. | ||
+ | |||
+ | Syntaxe : | ||
+ | <code user>cp /chemin1/fichierA /chemin2/fichierB /chemin3/fichierC /répertoire_de_destination/</code> | ||
+ | |||
+ | ==== Plusieurs fichiers depuis le même répertoire ==== | ||
+ | |||
+ | Se placer dans le répertoire d'origine avec [[:doc:programmation:shell:cd | la commande cd]], et taper : | ||
+ | <code user>cd /répertoire_d_origine/</code> | ||
+ | |||
+ | Puis | ||
+ | <code user>cp fichierA fichierB fichierC /répertoire_de_destination/</code> | ||
+ | |||
+ | === Commande bash === | ||
+ | |||
+ | Rédiger une commande bash en utilisant les accolades {} ainsi : | ||
+ | <code user>cp /répertoire_d_origine/{fichierA,fichierB,fichierC} /répertoire_de_destination/</code> | ||
+ | |||
+ | Ce motif : ''{fichierA,fichierB,fichierC}'' est un [[:doc:programmation:shell:regexp | regexp]], ici dans un contexte bash. | ||
+ | |||
+ | ===== Lien ===== | ||
+ | |||
+ | <code user>man cp</code> | ||
+ | |||
+ | //Voilà pour la commande cp.// | ||