La commande mv pour déplacer des fichiers ou répertoires

La commande mv (pour move) permet de déplacer un fichier, répertoire ou tout arborescence sur Linux.
Elle s'utilise donc lorsque vous désirez déplacer un fichier ou répertoire d'un emplacement vers un autre.
Mais on peut aussi l'utiliser pour renommer un fichier.
Ainsi, c'est une des commandes de base Linux à connaître au côté de cp, rm ou ls pour manipuler les fichiers.

Dans ce tutoriel, je vous montre comment utiliser la commande mv avec de multiples exemples.

La commande mv pour déplacer des fichiers ou répertoires

Comment utiliser la commande mv sur Linux

Voici la syntaxe de la commande mv :

mv [OPTIONS] Source Destination

La source et la destination peuvent être un fichier ou un répertoire.
Ainsi vous pouvez déplacer n'importe quel fichier ou répertoire vers l'emplacement souhaité.

Par défaut la commande mv n'affiche aucune confirmation, si vous déplacez un fichier vers un emplacement où un fichier avec le même nom existe, il sera écrasé.

Enfin la liste des options.

OPTIONSDESCRIPTION
--backup[=CONTROL] ou -bFaire une sauvegarde de chaque fichier de destination existant
-f, --forceNe rien demander avant écraser
-i, --interactiveAfficher une invite avant d'écraser
-n, --no-clobberNe pas écraser un fichier existant Si vous spécifiez en plus -i, -f, -n, seul le dernier est en vigueur.
--strip-trailing-slashesTetirez toutes les barres obliques de la source de chaque source argument
-S, --suffix=SUFFIXERemplacer le suffixe de sauvegarde habituel
-t, --target-directory=REPERTOIREDéplacer tous les arguments de la source dans le répertoire
-T, --no-target-directoryTraiter la destination comme un fichier normal
-u, --update Déplacer uniquement lorsque le fichier source est plus récent que le fichier de destination ou quand le Le fichier de destination est manquant
-v, --verboseMode bavard. Affiche des informations en sortie de commande
-Z, --contextDéfinir le contexte de sécurité SELINUX de destination
Les options de la commande mv

Comment utiliser la commande mv pour déplacer des fichiers ou répertoires

Renommer un fichier

Puisque la commande mv permet de déplacer un fichier vers une destination spécifique, on peut l'utiliser pour renommer un fichier.
Pour cela, on déplace le fichier au même emplacement sous un nouveau nom.
La syntaxe est alors :

mv fichier1 fichier2

Par exemple pour renommer monfichier.txt en monbeaufichier.txt :

monfichier.txt monbeaufichier.txt
Renommer un fichier avec la commande mv

Renommer un répertoire

Dans la même logique, on peut renommer un répertoire en déplaçant le répertoire dans le même emplacement mais en indiquant un nouveau nom.
La syntaxe est la suivante :

mv dir1 dir2

par exemple pour renommer le répertoire monrepertoire en monbeaurepertoire :

mv monrepertoire monbeaurepertoire

Déplacer un fichier

Pour déplacer un fichier avec mv, il vous suffit de le spécifier en source et d'indiquer la destination.
Par exemple ci-dessous, on déplace fichier.txt vers /tmp

mv fichier.txt /tmp/

Mais on peut aussi spécifier le chemin complet lorsque la source n'est pas le chemin actuel :

mv /home/malekalmorte/fichier.txt /tmp/
Déplacer un fichier avec la commande mv

Pour déplacer dans le répertoire courant, utilisez le caractère point comme destination :

mv /home/malekalmorte/fichier.txt .

Enfin si vous désirez renommer le fichier de destination, indiquez le nouveau nom dans la destination.
Par exemple pour déplacer le fichier fichier.txt en le renommant en fichier_old.txt :

mv /home/malekalmorte/fichier.txt /tmp/fichier_old.txt

Déplacer plusieurs fichier vers un répertoire spécifique

On peut cibler plusieurs fichiers à l'aide du caractère joker.
Cela permet de déplacer un lots de fichiers.
Ainsi pour déplacer tous les fichiers d'un répertoire :

mv * destination/

Si vous désirez déplacer que les fichiers avec une extension particulière spécifiez là de cette manière :

mv *.ext destination/

Par exemple pour déplacer tous les fichiers JPG :

mv *.jpg destination/

Enfin pour déplacer des fichiers avec deux extensions en une seule commande mv :

mv *.{jpg,png} destination/

Comment faire des détails de mv émettant de quoi tout cela fait ?

Par défaut, la commande mv n'affiche aucune information.
Pour forcer la commande mv à afficher les fichiers déplacés et passer en mode bavard, on utilise l'option -v :

mv -v fichier.txt /tmp/

Demander une confirmation avant de déplacer un fichier

La commande mv possède une option pour demander une confirmation avant d'écraser un fichier existant dans la destination.
Cela est utile pour s'assurer que l'on n'écrase pas par erreur un fichier existant :

mv -i fichier1 fichier2

Par exemple pour déplacer fichier.txt dans /tmp et demander confirmation avant écrasement si /tmp/fichier.txt existe :

mv -i /home/malekalmorte/fichier.txt /tmp/

Si aucun fichier n'existe dans la destination, la commande n'affiche rien.
Par contre, si un fichier du même nom est présent, elle demande confirmation avant écrasement.
Répondez y pour supprimer.

mv: overwrite '/tmp/fichier.txt'?

Dans le cas où vous déplacez plusieurs fichiers, vous aurez à confirmer l'écrasement pour chacun d'eux.

Demander une confirmation avant de déplacer un fichier avec la commande mv

Déplacer uniquement lorsqu'il est plus récent que le fichier de destination ?

Supposons qu'il existe un fichier nommé fichier.txt dans le répertoire de téléchargement de votre système et un fichier contenant le même nom dans votre répertoire personnel.
Maintenant, vous voulez mettre à jour ~/Downloads/fichier.txt avec ~/fichier.txt, mais uniquement lorsque ce dernier est plus récent. Ensuite, dans ce cas, vous devrez utiliser l'option de ligne de commande -u.

mv -u ~/fichier.txt ~/Downloads/fichier.txt

Sauvegarder les fichiers avant de les déplacer

Enfin vous pouvez sauvegarder le fichier de destination avant son écrasement.
Pour cela, on utilise l'option --suffix afin de spécifier l'extension de sauvegarde comme .bak ou .old

Voici la syntaxe pour déplacer un fichier et sauvegarder le fichier de destination :

mv --suffix=.bak File1 File2

Par exemple ci-dessous, on déplace fichier.txt qui existe dans la destination.
De ce fait, fichier.bak est créé :

mv --suffix=.bak /home/debian/fichier.txt .
Sauvegarder les fichiers avant de les déplacer

Tags: