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 | ||
doc:systeme:cp [28/08/2011 18:39] martin_mtl |
doc:systeme:cp [24/08/2019 14:58] Edenris [Copie d'un fichier distant dans le répertoire courant] |
||
---|---|---|---|
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 | + | == Nota == |
+ | Pour les petits fichiers, cp convient très bien mais si vous transférez ou copiez des fichiers lourds et nombreux, utilisez les commandes : | ||
+ | * [[doc:reseau:rsync|rsync - synchronisation entre la source et la destination, ce qui correspond à une copie]] | ||
+ | ou : | ||
+ | * [[doc:systeme:mv|mv - déplacement immédiat]] | ||
+ | Ces deux outils offrant plus d'un tiers de vitesse en rapidité d'exécution et une bonne sécurité en utilisant les options de chacun d'eux qui le permettent. \\ | ||
+ | Lien de test sur le forum : | ||
+ | * [[https://debian-facile.org/viewtopic.php?pid=252419#p252419]] | ||
+ | |||
+ | ===== 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épertoires]]). \\ |
+ | 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 un répertoire différent ===== | + | 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) | ||
- | on va par exemple copier le fichier //essai// sur le bureau (Le bureau est en effet un répertoire nommé Desktop !) : | + | ===== Copie d'un fichier dans un répertoire différent ===== |
- | * Exemple | + | 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> | ||
- | mattux@linux-deb:~> cp essai /home/solange/Desktop | + | Résultat |
+ | <code user>ls /home/mattux/Desktop</code> | ||
- | * Résultat | + | <file config retour de la commande>435076.gif MozillaFirefox.desktop |
- | + | beryl-settings.Profile myComputer.desktop | |
- | mattux@linux-deb:~> ls /home/mattux/Desktop | + | essai Network.desktop</file> |
- | + | ||
- | 435076.gif MozillaFirefox.desktop | + | |
- | beryl-settings.Profile myComputer.desktop | + | |
- | essai Network.desktop | + | |
<note important>**ATTENTION ! :** \\ | <note important>**ATTENTION ! :** \\ | ||
Ligne 49: | Ligne 72: | ||
</note> | </note> | ||
- | Afin de contrôler cela, on utilise : | ||
- | ==== Option -i contrôler la copie ==== | + | ==== Option -i ==== |
- | Soit : | + | Afin de contrôler la copie, on utilise l'option **-i** ainsi : |
- | mattux@linux-deb:~> cp -i essai /home/solange/Desktop | + | <code user>cp -i essai /home/mattux/Desktop</code> |
- | Et si un fichier essai est déjà présent sur le Desktop (répertoire Bureau) 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... | + | 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 ! | ||
- | ===== La copie de plusieurs fichiers dans un répertoire différent ===== | + | <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> |
- | ==== Plusieurs fichiers depuis des répertoires différents ==== | + | ==== 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. | 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 /repertoire 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 /repertoire_d_origine/ | + | |
- | cp fichierA fichierB fichierC /repertoire_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 /repertoire_d_origine/{fichierA,fichierB,fichierC} /repertoire_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.// | ||
- | ===== Remerciements ===== | ||
- | |||
- | Merci à toute une bande de braves : | ||
- | |||
- | **Texou**// sur le salon //#absolinux//, //**captnfab**// et //**MaTTuX_**// nos chéris sur le salon //#debian-facile// !// :-D |