GNU/Linux >> Tutoriels Linux >  >> Linux

Explication de la commande Linux mv pour les débutants (8 exemples)

Tout comme cp pour copier et rm pour supprimer, Linux propose également une commande intégrée pour déplacer et renommer des fichiers. Il s'appelle mv . Dans cet article, nous aborderons les bases de cet outil en ligne de commande à l'aide d'exemples faciles à comprendre. Veuillez noter que tous les exemples utilisés dans ce didacticiel ont été testés sur Ubuntu 20.04 LTS.

Commande Linux mv

Comme déjà mentionné, la commande mv sous Linux est utilisée pour déplacer ou renommer des fichiers. Voici la syntaxe de la commande :

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

Et voici ce que dit la page de manuel :

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Les exemples de style questions-réponses suivants vous donneront une meilleure idée du fonctionnement de cet outil.

Q1. Comment utiliser la commande mv sous Linux ?

Si vous souhaitez simplement renommer un fichier, vous pouvez utiliser la commande mv de la manière suivante :

mv [filename] [new_filename]

Par exemple :

mv names.txt fullnames.txt

De même, si l'exigence est de déplacer un fichier vers un nouvel emplacement, utilisez la commande mv de la manière suivante :

mv [nom_fichier] [dest-dir]

Par exemple :

mv fullnames.txt /home/himanshu/Downloads

Q2. Comment s'assurer que mv s'affiche avant d'écraser ?

Par défaut, la commande mv n'affiche pas d'invite lorsque l'opération implique le remplacement d'un fichier existant. Par exemple, la capture d'écran suivante montre que le fichier full_names.txt existant a été remplacé par mv sans aucun avertissement ni notification.

Cependant, si vous le souhaitez, vous pouvez forcer mv à demander en utilisant le -i option de ligne de commande.

mv -i [nom_fichier] [nouveau_nom_fichier]

Ainsi, les captures d'écran ci-dessus montrent clairement que -i conduit à mv demandant la permission de l'utilisateur avant d'écraser un fichier existant. Veuillez noter que si vous souhaitez spécifier explicitement que vous ne souhaitez pas que mv vous invite avant d'écraser, utilisez le -f option de ligne de commande.

Q3. Comment faire en sorte que mv n'écrase pas un fichier existant ?

Pour cela, vous devez utiliser le -n option de ligne de commande.

mv -n [filename] [new_filename]

La capture d'écran suivante montre que l'opération mv n'a pas réussi car un fichier portant le nom "full_names.txt" existait déjà et la commande contenait l'option -n.

Remarque :

If you specify more than one of -i, -f, -n, only the final one takes effect.

Q4. Comment faire en sorte que mv supprime les barres obliques (le cas échéant) de l'argument source ?

Pour supprimer les barres obliques de fin des arguments source, utilisez --strip-trailing-slashes option de ligne de commande comme indiqué ci-dessous.

mv --strip-trailing-slashes [source] [dest]

Voici comment la documentation officielle explique l'utilité de cette option :

This is useful when a source argument may have a trailing slash and specify a symbolic link to a directory. This scenario is in fact rather common because some shells can automatically append a trailing slash when performing file name completion on such symbolic links. Without this option, mv, for example, (via the system’s rename function) must interpret a trailing slash as a request to dereference the symbolic link and so must rename the indirectly referenced directory and not the symbolic link. Although it may seem surprising that such behavior be the default, it is required by POSIX and is consistent with other parts of that standard.

Q5. Comment faire en sorte que mv traite la destination comme un fichier normal ?

Pour être sûr que l'entité de destination est traitée comme un fichier normal (et non un répertoire), utilisez le -T option de ligne de commande.

mv -T [source] [dest]

Voici pourquoi cette option de ligne de commande existe :

This can help avoid race conditions in programs that operate in a shared area. For example, when the command ‘mv /tmp/source /tmp/dest’ succeeds, there is no guarantee that /tmp/source was renamed to /tmp/dest: it could have been renamed to/tmp/dest/source instead, if some other process created /tmp/dest as a directory. However, if mv -T /tmp/source /tmp/dest succeeds, there is no question that/tmp/source was renamed to /tmp/dest.
In the opposite situation, where you want the last operand to be treated as a directory and want a diagnostic otherwise, you can use the --target-directory (-t) option.

Q6. Comment faire en sorte que mv déplace le fichier uniquement lorsqu'il est plus récent que le fichier de destination ?

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

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

Cette option est particulièrement utile dans les cas où vous devez prendre de telles décisions à partir d'un script shell.

Q7. Comment faire en sorte que mv émette des détails sur tout ce qu'il fait ?

Si vous voulez que mv affiche des informations expliquant ce qu'il fait exactement, utilisez le -v option de ligne de commande.

mv -v [filename] [new_filename]

Par exemple, les captures d'écran suivantes montrent mv émettant des détails utiles sur ce qu'il a fait exactement.

Q8. Comment forcer mv à créer une sauvegarde des fichiers de destination existants ?

Vous pouvez le faire en utilisant le -b option de ligne de commande. Le fichier de sauvegarde créé de cette manière aura le même nom que le fichier de destination, mais avec un tilde (~) ajouté. Voici un exemple :

Conclusion

Comme vous l'auriez deviné maintenant, mv est aussi important que cp et rm pour la fonctionnalité qu'il offre - renommer/déplacer des fichiers est également l'une des opérations de base après tout. Nous avons discuté de la majorité des options de ligne de commande offertes par cet outil. Vous pouvez donc simplement les pratiquer et commencer à utiliser la commande. Pour en savoir plus sur mv, rendez-vous sur sa page de manuel.


Linux
  1. Commande Linux paste expliquée pour les débutants (5 exemples)

  2. Commande Linux wc expliquée pour les débutants (6 exemples)

  3. Explication de la commande Linux unexpand pour les débutants (avec exemples)

  4. Commande de sortie Linux expliquée pour les débutants (avec exemples)

  5. Explication de la commande Linux objdump pour les débutants (7 exemples)

Explication de la commande Linux rm pour les débutants (8 exemples)

Commande Linux cut expliquée pour les débutants (avec exemples)

Explication de la commande Linux timeout pour les débutants (avec exemples)

Explication de la commande Linux dd pour les débutants (8 exemples)

La commande Linux md5sum expliquée aux débutants (5 exemples)

Commande d'hôte Linux expliquée pour les débutants (8 exemples)