LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


commande:cp_mv

— page corrigée — oh!rocks 2009/05/09 18:29

Utilisation des commandes cp et mv en ligne de commande

L'utilisation de la ligne de commande pour copier, déplacer ou renommer des fichiers ne parait pas spécialement nécessaire au premier abord. Pourtant, la puissance des deux commandes cp et mv dépasse largement ce que nous pourrions faire avec un gestionnaire de fichiers en interface graphique. Voici quelques exemples pour vous donner l'eau à la bouche :
- utilisation de jokers pour des traitements par lots efficaces ;
- pas besoin d'ouvrir tel ou tel dossier pour y déplacer ou copier des fichiers ;
- gestion fine des paramètres de copie (les droits, notamment !) ;
- …et tant d'autres !

Voici donc une petite présentation de l'utilisation classique de ces deux commandes. Mais n'oubliez pas que les options de celles-ci sont bien plus complètes et apportent des fonctionnalités intéressantes.

Pour la mise en pratique, je vous propose de créer quelques fichiers et dossiers de test.
Ouvrez une console, puis tapez les commandes suivantes :

$ mkdir dossier_test
$ cd dossier_test
$ mkdir truc
$ touch fichier1
$ touch ploumploum

<note>Pour plus d'infos sur les commandes utilisées : mkdir, cd, touch.</note>

Nous voici donc maintenant dans le dossier dossier_test que nous venons de créer. Il suffit d'utiliser la commande ls pour voir les trois fichiers créés :

$ ls
fichier_test1 ploumploum

La copie avec la commande cp

La copie de fichier simple

En toute simplicité, vous voulez copier un fichier, dans le même dossier, avec un nom différent, voici la commande qui copie le fichier fichier1 en fichier2 :

$ cp fichier1 fichier2

Quand vous voulez le mettre dans un dossier nommé “truc”, il suffit de préciser le nom du dossier :

$ cp fichier1 truc

Attention : si “truc” n'existe pas dans le dossier où vous vous situez ou si “truc” n'est pas un dossier, la commande cp créera un fichier “truc” qui sera la copie de fichier1.
Vous pouvez aussi, explicitement, dire que vous voulez mettre “fichier1” dans le dossier “truc” et ainsi choisir le nom du fichier :

$ cp fichier1 truc/fichier1

La copie de dossier

Comme vous devez souvent l'avoir entendu dire, dans GNU/Linux tout est fichier. C'est aussi vrai pour les dossiers. C'est pourquoi la commande est exactement la même. La seule différence, c'est qu'il faut expliquer à notre console que nous voulons aussi copier ce qu'il y a dedans. Pour cela, nous utilisons l'option de récursivité (-R, -r ou –recursive) . Si je veux copier le dossier truc en truc2, il suffira donc de faire :

cp -r truc truc2

La copie, dans l'arborescence

Vous pouvez régulièrement vous trouver dans un dossier et vous souhaitez manipuler les fichiers d'un autre dossier. Une solution simple serait d'utiliser la commande cd à outrance pour se déplacer dans les répertoires souhaités. Ou bien tout simplement, vous pouvez utiliser cp en utilisant l'arborescence des fichiers. Par exemple :

cp /home/yoplait/dossier_test/fichier1 /home/yoplait/dossier_test/truc/

Cette commande marchera quelque soit votre lieu dans l'arborescence. N'hésitez pas à utiliser la touche tab quand vous écrivez les noms des dossiers et des fichiers, ça va bien plus vite (à ce sujet, voir la page auto-complétion !!

La copie, version expert

Pour les plus avancés, il est possible d'utiliser les jokers du terminal pour pouvoir effectuer des copies.
Si vous voulez par exemple copier tous les fichiers qui commence par “fichier” et non les autres, dans le dossier truc, vous pouvez procéder comme ceci :

cp fichier* truc

Ceci sera équivalent à :

cp fichier1 fichier2 truc

Vous pouvez ainsi remarquer que le dernier élément mis sur la ligne de commande représente la cible de la copie.
Si par ailleurs, vous avez un dossier avec des fichiers fichier1, fichier2, fichier3, fichier4, fichier5, etc… mais que vous ne souhaitez copier que les fichiers de 3 à 5, vous pouvez aussi utiliser les jokers de la ligne de commande comme ceci :

cp fichier[3-5] truc

Il existe de nombreux joker similaires à ces deux derniers mais nous sortons ici du cadre de cet article.

Les options de la commande cp

Comme toute commande qui se respecte, cp possède de nombreuses options. Vous pouvez évidemment toutes les retrouver en utilisant la commande “man cp” mais en voici les plus intéressantes :

  • -a : C'est une option régulièrement utilisée pour les sauvegardes. Les fichiers copiés gardent le propriétaire, la date de création et de modification, les liens et procède récursivement (en récupérant donc toute l'arborescence du répertoire donné).
  • -l : créer un lien au lieu de copier. Cela peut-être intéressant pour gagner de l'espace disque !
  • -i : c'est un mode interactif : il vous demandera confirmation avant chaque copie qui nécessite d'écraser un fichier déjà existant.
  • -u : copie uniquement les fichiers plus récents que la cible (ou s'ils ne sont pas présents).
  • -v : explique ce que la commande est en train de faire.

La commande mv

La commande mv a deux utilités principales : renommer des fichiers et déplacer des fichiers.
Maintenant que nous avons vu dans le détail la commande cp, l'utilisation de mv va être bien plus facile à comprendre. Quasiment tout marche de la même manière. Nous pouvons donc :

  • renommer un fichier fichier1 en fichier2 :
    mv fichier1 fichier2
  • déplacer un fichier fichier1 dans un dossier truc :
    mv fichier1 truc
  • renommer un dossier :
    mv truc trucnouveau
  • déplacer ou renommer dans l'arborescence :
    mv /home/yoplait/dossier_test/fichier1 /home/yoplait

<note> Il est à noter que renommer ou déplacer de nombreux fichiers sur un même disque dur est une opération très rapide sous linux car elle ne change que le chemin ou l'on trouve le fichier proprement dit.
La copie prendra le temps de bien écrire chaque fichier et durera donc plus longtemps.
Pour les plus curieux d'entre vous et ceux qui utilisent régulièrement des connexions distantes, n'hésitez pas à explorer la commande scp qui est l'équivalent de cp en mode ssh.</note>

commande/cp_mv.txt · Dernière modification : 2018/11/17 12:52 de 127.0.0.1