GNU/Linux >> Tutoriels Linux >  >> Linux

25 Commande mv pratique sous Linux pour les utilisateurs de tous les jours

La commande mv est utilisée pour déplacer et/ou renommer des fichiers dans les distributions Linux et BSD. Les administrateurs système utilisent régulièrement mv pour effectuer des opérations sur le système de fichiers Linux. Ne vous inquiétez pas si vous êtes un utilisateur débutant avec peu ou pas de connaissances sur cette commande. Aujourd'hui, nous avons préparé ce guide pour vous fournir toutes les informations dont vous avez besoin concernant l'utilitaire mv. Vous apprendrez les différentes fonctions associées à cette commande et acquerrez l'expérience nécessaire en exécutant les exemples de commandes présentés ci-dessous. Heureusement pour vous, mv est l'une des commandes de terminal Linux les plus élémentaires et assez facile à maîtriser.

Exemple essentiel de la commande Linux mv

Étant donné que mv n'offre qu'une poignée de paramètres de ligne de commande, il est très simple à apprendre. Cependant, mv est également très robuste et, lorsqu'il est utilisé intelligemment, il peut effectuer des opérations complexes sur les fichiers. Consultez donc les commandes ci-dessous et voyez comment nous pouvons utiliser mv dans notre informatique quotidienne.

1. Déplacer les fichiers directement

Lors de son utilisation simple, mv copie le fichier source dans le répertoire de destination et supprime la source de son emplacement précédent. Pour illustration, nous avons créé un répertoire simple appelé Test, qui contient un répertoire nommé dir1 et un fichier texte appelé test . Vous pouvez les créer facilement en utilisant les commandes suivantes.

$ mkdir Test && cd Test/ && mkdir dir1 && touch test
$ tree
$ mv test dir1/

Tout d'abord, nous avons créé les fichiers et répertoires, puis utilisé la commande tree pour visualiser la hiérarchie du système de fichiers. La commande finale est l'opération qui nous intéresse. Elle déplace le fichier test au dir1 annuaire. Ainsi, le premier argument de mv est la source et le second la destination. Vous pouvez réutiliser l'arborescence pour afficher la nouvelle hiérarchie.

2. Renommer les fichiers

La syntaxe pour déplacer et renommer les fichiers est la même. Mais, nous devons fournir le nouveau nom à la place de la destination. En termes simples, lorsque vous utilisez mv sur deux fichiers résidant sur le même système de fichiers Linux, cela entraînera une opération de changement de nom de fichier.

$ cd dir1
$ mv test TEST
- -

Maintenant, revenez simplement au répertoire parent et relancez la commande tree. Cela vérifiera que vous n'avez pas de fichier appelé test dans ce système de fichiers. Vous devriez voir le fichier qu'il y a un nouveau fichier appelé TEST .

3. Empêcher l'écrasement des fichiers

Par défaut, mv écrasera tous les fichiers portant le même nom dans le répertoire de destination. Vous pouvez le vérifier en utilisant les commandes ci-dessous.

$ cp TEST dir1
$ mv TEST dir1/TEST
$ tree

Cependant, nous pouvons facilement empêcher un tel écrasement en utilisant le -n option, comme illustré dans l'exemple ci-dessous.

$ cp dir1/TEST .
$ mv -n TEST dir1/TEST
$ tree

Nous pouvons maintenant voir que notre système de fichiers contient les deux fichiers. Le -n l'option a également une forme longue appelée –no-clobber . Essayez-les tous les deux si vous voulez vous en souvenir pendant un certain temps.

4. Activer le mode interactif lors de l'écrasement de fichiers

Vous pouvez également définir le mode interactif dans mv, ce qui entraîne une invite vous demandant si vous souhaitez écraser ou non le fichier de destination. Bien qu'utile pour les utilisateurs débutants, il est évident que cela arrêtera vos scripts d'automatisation.

$ mv -i TEST dir1/TEST
mv: overwrite 'dir1/TEST'?

Tapez simplement y ou n dans l'invite ci-dessus pour activer/désactiver l'écrasement des fichiers. Vous pouvez également utiliser la forme longue alternative –interactive à la place de -i .

5. Créer des sauvegardes avant d'écraser les fichiers

C'est toujours une bonne idée de créer des sauvegardes avant d'effectuer des opérations de fichiers à grande échelle. Les utilisateurs débutants de Linux écrasent souvent leurs fichiers sans le vouloir. Heureusement, mv nous permet de sauvegarder assez facilement nos fichiers de destination. Jetez un coup d'œil à l'illustration ci-dessous pour voir comment cela fonctionne.

$ mv --backup TEST dir1/TEST
$ tree

La sortie de la commande tree indique que le fichier source a été déplacé avec succès et qu'il existe un fichier supplémentaire appelé TEST~ dans le répertoire de destination. C'est la sauvegarde du fichier précédent. Utilisez toujours cette option lorsque vous n'êtes pas sûr du répertoire de destination exact ou des fichiers associés.

6. Définir le suffixe personnalisé pour les fichiers de sauvegarde

Comme nous l'avons déjà vu, mv utilise le ~ symbole comme suffixe de sauvegarde par défaut. Cependant, nous pouvons changer cela en n'importe quoi d'autre en utilisant le -S option. L'exemple ci-dessous illustre cela en utilisant un nouveau suffixe de sauvegarde .BKP.

$ mv -S .BKP TEST dir1
$ mv --suffix=.BKP TEST dir1

Vous pouvez également utiliser le suffixe option à la place de -S si tu veux. La définition de suffixes personnalisés pour nos fichiers de sauvegarde facilite leur identification et permet de mieux comprendre le système de fichiers Linux.

7. Mettre à jour le fichier de destination

La commande Linux mv nous permet de mettre à jour les fichiers de destination en fonction de leur disponibilité et de leur horodatage. Dans ce cas, l'opération de déplacement ne réussira que si le fichier source est plus récent que le fichier de destination ou si le fichier de destination est complètement absent.

$ rm -ri *
$ mkdir dir1 && touch test dir1/test
$ mv -u test dir1/

Tout d'abord, nous avons supprimé tout le contenu de Test/ puis les a recréés à nouveau. J'ai fait cela, donc les deux fichiers de test sont créés en même temps et, par conséquent, sont les mêmes. Maintenant, quand j'essaie de déplacer test dans dir1 , le mouvement a échoué et s'est terminé en silence. Cela s'est produit depuis que mv les a trouvés identiques et en a déduit qu'aucune mise à jour n'était nécessaire.

8. Configurer le contexte de sécurité SELinux par défaut

Le contexte de sécurité SELinux étiquette les ressources CPU dans les systèmes où il est activé. Il utilise ces informations pour identifier si une ressource donnée est accessible ou non par un utilisateur spécifique. Vous pouvez facilement définir le contexte SELinux par défaut en utilisant le -Z option, comme illustré ci-dessous.

$ touch new         # create another file for testing
$ mv -Z new dir1/
$ mv --context new dir1/
$ ls -Z dir1/

Ici, mv utilise le contexte SELinux par défaut de votre système lors du déplacement du nouveau nom de fichier vers sa nouvelle destination. Vous pouvez le vérifier en utilisant la dernière commande ci-dessus.

9. Activer la sortie détaillée

Comme de nombreuses commandes de terminal Linux traditionnelles, la commande mv nous permet également d'afficher une sortie détaillée de ses opérations. Il est particulièrement utile pour les débutants ou lorsque vous transférez de nombreux fichiers d'un système de fichiers à un autre.

$ mv -v dir1/new .

$ mv --verbose dir1/new .
renamed 'dir1/new' -> './new'

Les commandes ci-dessus sont équivalentes et transfèrent le fichier dir1/new à notre Test dossier. Notez que le point ‘. ‘ Le symbole fait référence au répertoire actuel dans les systèmes d'exploitation de type Unix. Ces commandes doivent fournir une brève explication de l'opération de fichier sous-jacente.

10. Activer le répertoire cible

Parfois, mv peut avoir du mal à mapper les fichiers source sur le répertoire de destination comme l'utilisateur le souhaite. Cela peut arriver si mv ne parvient pas à déduire si la cible est un répertoire de destination ou un fichier. Heureusement, nous pouvons facilement dire à mv si l'argument de destination est censé être un répertoire ou un fichier en utilisant le -t option de mv.

$ mv -t dir1/new/ new
$ mv --target-directory=dir1/new/ new

Lorsque vous émettez la commande ci-dessus, mv déplace le fichier appelé nouveau du Test répertoire vers le Test/dir1/new annuaire. Notez que nous passons le répertoire de destination avant l'argument source. C'est obligatoire depuis -t identifie la cible de destination.

11. Désactiver le répertoire cible

L'utilitaire mv nous permet également de désactiver complètement la destination cible. Ceci est utile lorsque vous voulez vous assurer que vos arguments de destination sont traités comme des fichiers Linux normaux. Comme dans l'exemple ci-dessus, cette commande a également une forme courte et une forme longue.

$ mv dir1/new/new .
$ mv -T new dir1/new/
$ mv --no-target-directory new dir1/new/

Ainsi, mv traitera la destination comme un fichier normal lorsque nous utiliserons le -T ou –no-target-directory option.

12. Activer l'écrasement forcé

Bien que les implémentations modernes de la commande Linux mv ne demandent pas avant d'écraser aujourd'hui, mv offre toujours une option pratique pour activer l'écrasement forcé. Vous pouvez utiliser cette option pour vous assurer que vos scripts shell Linux sont rétrocompatibles et ne se cassent pas sur des systèmes avec une implémentation mv différente.

$ mv -f test dir1/test
$ mv --force test dir1/test

Les deux commandes ci-dessus sont équivalentes et effectuent l'opération de déplacement sans demander de confirmation à l'utilisateur. Ainsi, vos scripts d'automatisation ne tomberaient pas en panne à cause de mv.

13. Supprimer les barres obliques de fin

Lorsque vous utilisez l'auto-complétion dans les terminaux Linux, il ajoute également une barre oblique à la fin de chaque répertoire. Cela peut poser des problèmes lors des déplacements de fichiers. Les développeurs de mv ont donc également créé une option pratique qui supprimera ces barres obliques finales pour vous.

$ mv --strip-trailing-slashes dir1/new/ .

Les –strip-trailing-slashes L'option indique à mv de supprimer toutes les barres obliques de fin présentes dans les arguments SOURCE. Cela peut être très utile dans certains scénarios, vous devez donc vous familiariser avec cette option.

14. Déplacer plusieurs fichiers

Les utilisateurs de Linux peuvent utiliser mv pour déplacer facilement un grand nombre de fichiers en même temps. La commande suivante montre comment déplacer plusieurs fichiers ensemble à l'aide de mv.

$ touch aaa bbb ccc
$ mv aaa bbb ccc dir1/

Nous pouvons également déplacer des fichiers et des répertoires ensemble. Dans ce cas, mv interprète le dernier argument comme le dossier de destination. Vous pouvez également utiliser le -t option pour spécifier la destination cible.

15. Déplacer des fichiers à l'aide de caractères génériques

La commande Linux mv ne prend pas en charge les expressions régulières. Cependant, vous pouvez toujours utiliser des caractères génériques pour effectuer une correspondance de modèle de base. Jetez un coup d'œil à l'exemple ci-dessous pour voir comment nous pouvons utiliser des caractères génériques avec mv.

$ touch aaa.mp3 bbb.mp3 ccc.mp3
$ mv *.mp3 dir1/ # moves all mp3 files
$ touch AAA BBB CCC
$ mv [[:upper:]]* dir1   # moves all files that has uppercase names
$ mv *[[:lower:]] dir1   # moves all files that has lowercase names

Il existe quelques autres caractères génériques pris en charge par mv. Bien qu'ils ne soient pas très étendus, ils aident lors des opérations courantes de traitement des fichiers.

16. Afficher la barre de progression

Normalement, la commande mv effectue ses opérations dans un délai raisonnable. Cependant, cela peut prendre relativement plus de temps lorsque vous déplacez des documents très volumineux. Les utilisateurs peuvent même penser que le système est bloqué si cela prend trop de temps. Nous pouvons éviter ce problème en forçant mv à afficher une barre de progression qui tient l'utilisateur informé.

$ mv dir1/*.mp3 . & progress -mp $!

Cette commande déplacera tous les fichiers mp3 de dir1/ au test répertoire et affichera un indicateur de progression pratique. Nous utilisons le package Linux ‘progress ' pour ça. Vous pouvez l'installer en utilisant la commande ci-dessous.

$ sudo apt install progress

17. Déplacer des fichiers à l'aide de l'expansion des accolades

Le shell de commande Linux permet aux utilisateurs de générer des combinaisons littérales à l'aide d'une méthode appelée développement d'accolades. Bien que beaucoup de gens aient tendance à compliquer cela, en pratique, c'est assez simple. Examinez attentivement les exemples suivants pour découvrir comment fonctionne l'expansion des accolades sous Linux et d'autres systèmes de type Unix.

$ rm new && touch new.txt new.pdf new.html
$ mv new.{pdf,txt,html} dir1/new/ # brace expansion

Ainsi, tout fichier appelé new qui a des extensions .pdf/.txt/.html sera déplacé vers le répertoire de destination. Puisque nous générons les littéraux de nom de fichier à partir de notre accolade, nous appelons cette opération expansion d'accolade.

18. Déplacer les fichiers en fonction de la taille

Le traitement des fichiers implique de nombreuses opérations de déplacement et les fichiers volumineux ont tendance à prendre beaucoup de temps CPU. Ainsi, de nombreux administrateurs sauvegardent leurs documents en fonction de leur taille. Nous montrons aux lecteurs comment déplacer des fichiers en fonction de leur taille à l'aide des commandes mv et find.

$ find . -type f -size +1G -exec mv "{}" large_files/ \;

La commande ci-dessus déplacera tous les fichiers supérieurs à 1 Go du répertoire de travail actuel vers large_files . Vous pouvez simplement modifier la valeur du paramètre de taille pour personnaliser votre opération de déplacement.

19. Déplacer les fichiers en fonction de la date de modification

La date de modification est un autre critère couramment utilisé lors de la sauvegarde des données système. Vous pouvez rechercher tous les fichiers antérieurs à un certain laps de temps à l'aide de la commande suivante.

$ find . -mtime +90 -exec mv "{}" old_files/ \;

Cette commande déplacera tous les fichiers datant de plus de 3 mois (90 jours) dans un nouveau répertoire appelé old_files . La chose notable ici est que l'argument fourni est en jours.

20. Renommer plusieurs fichiers

Par défaut, l'utilitaire mv ne peut pas renommer plusieurs fichiers en même temps. Cependant, nous pouvons toujours utiliser d'autres outils comme find avec mv pour de telles opérations de fichiers avancées. La commande ci-dessous renommera tous les fichiers .php en fichiers .html.

$ touch {test1,test2,test3}.php
$ find . -depth -name "*.php" -exec sh -c 'f="{}"; mv -- "$f" "${f%.php}.html"' \;

Cette commande renommera chaque fichier .php en fichier .html en utilisant mv et le commutateur exec de la commande Linux find.

21. Localiser les informations binaires de la commande Linux mv

Nous pouvons savoir où se trouve la commande mv en utilisant la commande Linux « which ». Il imprime le nom des chemins ou des liens qui gèrent une commande spécifique, comme mv.

$ which mv
/usr/bin/mv

Vous pouvez également utiliser la commande "whereis" sous Linux pour afficher des informations supplémentaires telles que l'emplacement du binaire mv et de tous les fichiers manuels associés, comme indiqué ci-dessous.

$ whereis mv
mv: /usr/bin/mv /usr/share/man/man1/mv.1.gz

22. Afficher les informations de version

Les informations de version des commandes du terminal Linux nous permettent de trouver la version spécifique d'un paquet. Nous pouvons facilement afficher ces informations de version pour mv, comme illustré dans l'exemple ci-dessous.

$ mv --version

Il imprimera les informations de version du package mv installé sur votre système avec d'autres informations. Ces informations incluent le nom de toutes les dépendances et des personnes qui ont créé mv.

23. Afficher la page d'aide

La page d'aide contient des informations résumées sur toutes les options disponibles pour l'utilitaire mv. C'est un moyen pratique de se souvenir des options peu utilisées.

$ mv --help

Étant donné que mv ne prend en charge que quelques arguments de ligne de commande, il est relativement plus facile de les mémoriser. Heureusement, vous pouvez toujours consulter la page d'aide pour obtenir des informations rapides sur une option particulière.

24. Afficher la page de manuel

Contrairement aux informations résumées fournies par l'aide, la page de manuel offre un aperçu beaucoup plus détaillé. Reportez-vous à la commande ci-dessous chaque fois que vous souhaitez comprendre une option ou une utilisation spécifique plus en détail.

$ man mv

Il devrait afficher un guide détaillé expliquant toutes les différentes options disponibles pour mv. Vous devriez toujours consulter la page de manuel avant d'essayer toute commande modifiant le système de fichiers.

25. Vérifier l'alias

De nombreuses distributions Linux utilisent des alias préconfigurés pour appliquer les options de ligne de commande standard pour les packages. Vous pouvez facilement vérifier si mv est un alias de quelque chose en utilisant la commande ci-dessous.

$ alias | grep -iw mv
$ type mv

Cependant, la dernière commande ne fonctionnera pas si votre système Linux a haché la commande mv.

Fin des pensées

La commande Linux mv nous permet d'effectuer de nombreuses opérations sur les fichiers, telles que déplacer des fichiers, les renommer, créer des sauvegardes, etc. Bien qu'il n'autorise qu'un nombre limité d'options, nous pouvons combiner mv avec de nombreuses commandes de terminal Linux comme la commande find et créer des combinaisons de commandes plus complexes. Nous avons décrit les 25 meilleurs exemples de mv dans l'informatique quotidienne. Certains d'entre eux sont purement basiques, tandis que d'autres peuvent être utiles pour résoudre des problèmes plus dynamiques. J'espère que nous avons fourni les informations essentielles que vous recherchiez. Postez vos réflexions dans la section des commentaires et faites-nous savoir si vous avez des questions.


Linux
  1. 12 exemples de commandes IP pour les utilisateurs Linux

  2. 20 exemples de commandes Sed (éditeur de flux) pour les utilisateurs Linux

  3. Tutoriel de commande pour les utilisateurs Linux pour les débutants (avec exemples)

  4. 8 exemples pratiques de la commande Linux Xargs pour les débutants

  5. À quoi sert Linux test -a command test ?

50 commandes grep productives et pratiques pour les passionnés de Linux

15 façons d'utiliser la commande Linux Watch pour les activités quotidiennes

15 exemples pratiques de commande Rsync sous Linux

5 exemples pratiques de la commande Tail sous Linux

Un guide pratique pour la commande chroot sous Linux

UNIX / Linux :7 exemples pratiques de commandes PS pour la surveillance des processus