Aller au contenu principal

La commande mv

Elle signifie "déplacer", et c'est exactement ce qu'elle fait : elle déplace des fichiers et des répertoires d'un endroit à un autre dans le système de fichiers. Mais mv n'est pas seulement destiné à déplacer des fichiers ; elle est également utilisée pour les renommer.

Introduction à mv

Avant de plonger dans les mécanismes de la commande mv, comprenons pourquoi elle est un outil indispensable pour l'utilisateur de Linux. Le système de fichiers sous Linux est une structure hiérarchique, et l'organisation des fichiers et des répertoires est une tâche courante. La commande mv est l'outil principal pour ce travail. Elle est simple, puissante et, lorsqu'elle est utilisée avec soin, peut vous faire gagner beaucoup de temps.

Syntaxe de base

La syntaxe de base de la commande mv est la suivante :

mv [options] source destination

Ici, source est le fichier ou le répertoire que vous souhaitez déplacer ou renommer, et destination est l'emplacement cible ou le nouveau nom pour le fichier/répertoire.

Déplacement de fichiers

Pour déplacer un fichier, vous spécifiez l'emplacement actuel du fichier en tant que source et le nouvel emplacement en tant que destination. Par exemple, pour déplacer un fichier nommé file1.txt du répertoire courant vers /home/user/documents, vous utiliseriez :

mv file1.txt /home/user/documents/

Après l'exécution de cette commande, file1.txt n'existera plus dans le répertoire courant ; il se trouvera dans /home/user/documents.

Renommage de fichiers

Renommer un fichier consiste essentiellement à le déplacer vers le même emplacement avec un nom différent. Pour renommer file1.txt en newfile.txt dans le même répertoire, vous utiliseriez :

mv file1.txt newfile.txt

Déplacement de répertoires

Le déplacement de répertoires fonctionne de manière similaire au déplacement de fichiers. Pour déplacer un répertoire nommé my_directory vers /home/user/, vous utiliseriez :

mv my_directory /home/user/

Écrasement de fichiers

Par défaut, si un fichier portant le même nom existe à la destination, mv écrasera celui-ci sans avertissement. Pour éviter les écrasements accidentels, il est bon de pratique d'utiliser l'option -i (interactive) qui vous demandera confirmation avant d'écraser :

mv -i source destination

Sortie verbose

L'option -v (verbose) fait en sorte que mv affiche ce qu'il fait, ce qui peut être utile pour confirmer les actions :

mv -v source destination

Exemples d'utilisation avancée

Déplacement de plusieurs fichiers

Vous pouvez déplacer plusieurs fichiers à la fois en les listant avant la destination :

mv file1.txt file2.txt file3.txt /home/user/documents/

Utilisation des jokers

Les jokers peuvent être utilisés pour déplacer un groupe de fichiers qui correspondent à un modèle :

mv *.txt /home/user/documents/  # Déplace tous les fichiers .txt du répertoire courant vers /home/user/documents/

Préservation des attributs

L'option -p permet de préserver les attributs des fichiers, tels que les horodatages et les listes de contrôle d'accès :

mv -p source destination

Déplacement de fichiers vers un répertoire portant le même nom

Si le répertoire de destination a le même nom qu'un fichier source, vous devez vous assurer que la destination se termine par une barre oblique pour éviter d'écraser le répertoire :

mv file1.txt /home/user/file1.txt/  # Cela déplace file1.txt dans le répertoire /home/user/file1.txt

Ce qu'il faut surveiller

  • Sensibilité à la casse : Les systèmes de fichiers Linux sont sensibles à la casse. Faites attention aux noms de fichiers et de répertoires ; File1.txt et file1.txt sont considérés comme des fichiers différents.
  • Écrasement : Utilisez toujours les options -i ou -n (no clobber) pour éviter d'écraser accidentellement des fichiers.
  • Permissions : Assurez-vous d'avoir les permissions nécessaires pour déplacer des fichiers, surtout lorsque vous travaillez en tant qu'utilisateur non root.
  • Même système de fichiers : Déplacer des fichiers au sein du même système de fichiers est presque instantané car cela implique uniquement la mise à jour des métadonnées du système de fichiers. Cependant, déplacer des fichiers entre différents systèmes de fichiers (par exemple, entre deux disques durs) va réellement copier les données puis supprimer la source, ce qui prend plus de temps.

Sorties :

Voici ce que vous pourriez voir lors de l'utilisation de mv avec différentes options :

# Déplacement d'un fichier avec sortie verbose
$ mv -v file1.txt /home/user/documents/
'file1.txt' -> '/home/user/documents/file1.txt'

# Renommage d'un fichier avec confirmation interactive
$ mv -i file1.txt newfile.txt
mv: écraser 'newfile.txt'? y

N'oubliez pas d'utiliser les options -i ou -n pour éviter la perte de données et d'utiliser -v pour une sortie verbose afin de suivre vos actions. Avec la pratique, mv deviendra une seconde nature, et vous naviguerez dans votre système Linux avec la finesse d'un professionnel.