Systèmes d'exploitation

Copier, déplacer et renommer : les commandes cp et mv

En bref :

  • cp source destination copie un fichier ; pour un dossier, ajoutez -r (ou -a pour conserver droits et dates).
  • mv source destination déplace, et renomme quand le nom de destination est différent. Il n’a pas besoin de -r, même pour un dossier.
  • Par défaut, les deux commandes écrasent sans prévenir : prenez l’habitude d’ajouter -i (confirmation) ou -n (ne jamais écraser).

Dans le terminal, cp (copy) et mv (move) remplacent le copier-coller et le glisser-déposer de l’explorateur de fichiers, avec un avantage : une seule ligne peut traiter des centaines de fichiers. Les deux ont la même forme (une ou plusieurs sources, puis une destination) ; seul le résultat change : cp laisse l’original en place, mv le retire de son ancien emplacement. Elles figurent parmi les commandes Linux de base ; pour vous repérer dans les dossiers, voir la structure des répertoires Linux.

cp et mv en un coup d’œil

Commande Exemple Effet
cp cp notes.txt ~/Documents/ Copie le fichier dans un dossier, en gardant son nom
cp -r cp -r projet/ sauvegarde/ Copie un dossier et tout son contenu
cp -a cp -a projet/ /mnt/usb/ Copie en conservant droits, propriétaire, dates et liens
mv mv notes.txt ~/Documents/ Déplace le fichier
mv mv ancien.txt nouveau.txt Renomme le fichier

Copier avec cp

La syntaxe est cp [options] source destination. Si la destination est un dossier existant, le fichier y est copié avec son nom ; sinon, la copie prend le nom indiqué. Les jokers fonctionnent (cp *.jpg ~/Images/) et un nom contenant des espaces se met entre guillemets : cp "mon fichier.txt" /tmp/.

  • -u ne copie que si la source est plus récente que la destination : pratique pour compléter une sauvegarde ;
  • -p conserve les droits, le propriétaire et les dates ;
  • -a (archive) équivaut à -r plus la conservation de tout ce qui précède, liens symboliques compris.

Copier un dossier avec cp -r

Sans -r, cp refuse un dossier et répond « -r non spécifié ; omission du répertoire ». Avec l’option, la copie est récursive. Un détail piège beaucoup de débutants : cp -r projet sauvegarde crée sauvegarde/projet si sauvegarde existe déjà, mais crée une copie de projet nommée sauvegarde si elle n’existe pas. Pour copier uniquement le contenu, fichiers cachés compris, écrivez cp -r projet/. sauvegarde/.

Déplacer et renommer avec mv

Linux n’a pas de commande dédiée pour renommer : c’est mv qui s’en charge. mv rapport.txt rapport-2026.txt renomme ; mv rapport.txt ~/Documents/rapport-final.txt déplace et renomme en une fois ; mv anciendossier nouveaudossier renomme un dossier, sans -r. Sur une même partition, mv ne fait que modifier l’entrée du fichier : c’est instantané. D’un disque à l’autre, il copie puis supprime l’original : ne l’interrompez pas. Pour effacer ensuite ce qui ne sert plus, voir supprimer un fichier ou un dossier avec rm.

Options de sécurité : -i, -n, -b

Il n’y a pas de corbeille en ligne de commande : un fichier écrasé est perdu. Ces options valent pour cp comme pour mv :

  • -i demande confirmation avant d’écraser un fichier existant ;
  • -n n’écrase jamais, sans poser de question ;
  • -b crée une sauvegarde du fichier remplacé (suffixe ~) ;
  • -v détaille chaque opération.

Pour que -i soit systématique, ajoutez alias cp='cp -i' et alias mv='mv -i' à la fin de votre fichier ~/.bashrc. Un « Permission non accordée » signifie que vous ne pouvez pas écrire dans la destination : consultez chmod et les droits des fichiers avant de recourir à sudo. Si le message est « Aucun fichier ou dossier de ce type », vérifiez le chemin avec ls (Linux distingue majuscules et minuscules) ou cherchez le fichier avec la commande find.

Renommer en masse

Pour changer l’extension de dizaines de fichiers, deux méthodes. La commande rename existe en deux versions incompatibles : sur Debian et Ubuntu, c’est la version Perl, rename -n 's/\.jpeg$/.jpg/' *.jpeg (l’option -n simule sans rien modifier ; retirez-la pour appliquer) ; sur Fedora ou Arch, c’est la version util-linux, rename .jpeg .jpg *.jpeg. La méthode valable partout est une boucle :

for f in *.jpeg; do mv -n -- "$f" "${f%.jpeg}.jpg"; done

Le -n protège contre un fichier .jpg déjà présent.

Cas pratique : sauvegarder ses photos avant de renommer

Camille a remis en service un vieux portable sous une distribution Linux légère. Avant de trier ses photos, elle branche un disque USB monté dans /media/camille/SAUVEGARDE et lance cp -av ~/Photos /media/camille/SAUVEGARDE/ : le dossier est copié avec ses dates d’origine. Elle compare les tailles avec du -sh, teste rename -n pour passer ses 340 fichiers .jpeg en .jpg, contrôle l’aperçu et relance sans -n. Les photos de 2025 sont enfin classées avec mv *2025*.jpg 2025/.

À lire aussi : chercher un texte dans des fichiers avec grep.

Questions fréquentes

Comment copier un dossier avec la commande cp ?

Utilisez cp -r dossier destination/. Pour conserver aussi les droits, les dates et les liens, préférez cp -a.

Comment renommer un fichier dans le terminal ?

Avec mv ancien_nom nouveau_nom. C’est la même commande que pour déplacer : seul le nom de destination change.

Quelle est la différence entre cp et mv ?

cp duplique et laisse l’original en place ; mv déplace ou renomme.

Comment éviter d’écraser un fichier existant ?

Ajoutez -i pour qu’une confirmation soit demandée, ou -n pour ne jamais écraser. Les deux options valent pour cp et mv.

Comment copier aussi les fichiers cachés d’un dossier ?

Écrivez cp -r source/. destination/ ou utilisez cp -a. Le joker * ignore les fichiers dont le nom commence par un point.

Peut-on annuler un mv ou un cp ?

Un mv s’annule en redéplaçant le fichier à son emplacement d’origine. Un fichier écrasé par cp ou mv est en revanche perdu, d’où l’intérêt de -i et d’une sauvegarde.

Articles Similaires

Bouton retour en haut de la page