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 [28/08/2011 19:29] martin_mtl |
doc:systeme:cp [18/03/2017 10:30] smolski [Copie d'un fichier dans un répertoire différent] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== CP ====== | + | ====== 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. | La commande ''cp'' permet la copie de fichiers. | ||
- | * Syntaxe | + | ===== Syntaxe ===== |
- | cp | + | <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 : | Elle s'utilise sous plusieurs formes : | ||
- | ===== La copie d'un fichier source dans un fichier destination ===== | + | ===== Copie d'un fichier source ===== |
- | copie du fichier essai dans le répertoire principal. On va tout d'abord vérifier la présence du fichier essai grâce à la commande "[[ls]]". | + | 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> | ||
- | * Exemple | + | On a donc bien copié le fichier **essai** dans le répertoire courant en lui donnant le nouveau nom **essai1**. :-) |
- | + | ||
- | mattux@linux-deb:~> ls | + | |
- | amsn_received bin Desktop Documents essai foto logs public_html | + | |
- | + | ||
- | mattux@linux-deb:~> cp essai essai1 | + | |
- | on regarde le résultat : | + | ===== Copie d'un fichier distant dans le répertoire courant ===== |
- | * Résultat | + | 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. | ||
- | mattux@linux-deb:~> ls | + | 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 : |
- | amsn_received bin Desktop Documents essai1 essai foto logs public_html | + | <code user>cp /home/martin/archives/test .</code> |
- | On a donc copié le fichier essai dans le répertoire courant en lui donnant un nouveau nom. | + | //Pas plus compliqué que cela !// |
- | ===== La copie d'un fichier dans le répertoire courant ===== | + | 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) | ||
- | Le répertoire courant est représenté par un . (voir à ce sujet la commande [[http://wiki.debian-facile.org/commande:cd#option_-_le_point |commande cd]]) | + | ===== Copie d'un fichier dans un répertoire différent ===== |
- | On peut donc, par conséquent, copier un fichier qui se trouve dans un répertoire donné en indiquant seulement le chemin où il se trouve. Si je me trouve, par exemple, dans un répertoire donné et que je veuille y copier le fichier test qui se trouve dans /home/martin/archives, je peux taper la commande suivante : | + | 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 !) : |
- | cp /home/martin/archives/test . | + | <code user>cp essai /home/mattux/Desktop</code> |
- | Pas plus compliqué que cela ! | + | Résultat |
+ | <code user>ls /home/mattux/Desktop</code> | ||
- | ===== La copie d'un fichier dans un répertoire différent ===== | + | <file config retour de la commande>435076.gif MozillaFirefox.desktop |
- | + | beryl-settings.Profile myComputer.desktop | |
- | On va, par exemple, copier le fichier //essai// sur le bureau (Le bureau est en effet un répertoire nommé Desktop !) : | + | essai Network.desktop</file> |
- | + | ||
- | * Exemple | + | |
- | + | ||
- | mattux@linux-deb:~> cp essai /home/mattux/Desktop | + | |
- | + | ||
- | * Résultat | + | |
- | + | ||
- | mattux@linux-deb:~> ls /home/mattux/Desktop | + | |
- | + | ||
- | 435076.gif MozillaFirefox.desktop | + | |
- | beryl-settings.Profile myComputer.desktop | + | |
- | essai Network.desktop | + | |
<note important>**ATTENTION ! :** \\ | <note important>**ATTENTION ! :** \\ | ||
Ligne 59: | Ligne 64: | ||
- | ==== Option -i contrôler la copie ==== | + | ==== Option -i ==== |
+ | Afin de contrôler la copie, on utilise l'option **-i** ainsi : | ||
+ | <code user>cp -i essai /home/mattux/Desktop</code> | ||
- | Afin de contrôler cela, on utilise : | + | 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 ! | ||
- | Soit : | + | <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> |
- | mattux@linux-deb:~> cp -i essai /home/mattux/Desktop | + | |
- | Si un fichier essai est déjà présent sur le bureau (répertoire /Desktop), cp s'interrompt et demande par y (yes) ou n (no) s'il doit écraser le fichier ! | + | |
- | 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...) **Ctrl C** interrompt tous les processus de cp d'un coup... | + | ==== Option -r (récursif) ==== |
- | ===== La copie de plusieurs fichiers dans un répertoire différent ===== | + | L'option cp -r permet de copier un répertoire avec son contenu. |
- | ==== Plusieurs fichiers depuis des répertoires différents ==== | + | Prenons en exemple le répertoire sav_cle_jojo et son contenu d'autres répertoires mais des fichiers aussi : |
+ | <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</code> | ||
+ | <code config retour de la commande>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. | Indiquer le chemin complet pour chacun des fichiers à copier. | ||
Syntaxe : | Syntaxe : | ||
- | + | <code user>cp /chemin1/fichierA /chemin2/fichierB /chemin3/fichierC /répertoire_de_destination/</code> | |
- | cp /chemin1/fichierA /chemin2/fichierB /chemin3/fichierC /répertoire_de_destination/ | + | |
==== Plusieurs fichiers depuis le même répertoire ==== | ==== Plusieurs fichiers depuis le même répertoire ==== | ||
- | === Commande cd === | + | 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> | ||
- | Se placer dans le répertoire d'origine avec [[commande:cd | la commande cd]]. | + | Puis |
- | + | <code user>cp fichierA fichierB fichierC /répertoire_de_destination/</code> | |
- | cd /répertoire_d_origine/ | + | |
- | cp fichierA fichierB fichierC /répertoire_de_destination/ | + | |
=== Commande bash === | === Commande bash === | ||
Rédiger une commande bash en utilisant les accolades {} ainsi : | 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> | ||
- | cp /répertoire_d_origine/{fichierA,fichierB,fichierC} /répertoire_de_destination/ | + | Ce motif : ''{fichierA,fichierB,fichierC}'' est un [[:doc:programmation:shell:regexp | regexp]], ici dans un contexte bash. |
- | + | ||
- | Ce motif : ''{fichierA,fichierB,fichierC}'' est un [[commande:regexp | regexp]], ici dans un contexte bash. | + | |
===== Lien ===== | ===== Lien ===== | ||
- | man cp | + | <code user>man cp</code> |
//Voilà pour la commande cp.// | //Voilà pour la commande cp.// | ||