Dans ce didacticiel, nous allons apprendre à renommer plusieurs fichiers à la fois sous Linux à l'aide de divers outils. Tous les exemples fournis ici sont testés dans Ubuntu, mais ils devraient fonctionner sur tous les systèmes d'exploitation Linux.
Présentation
Comme vous le savez peut-être déjà, nous utilisons mv
commande pour renommer ou déplacer des fichiers et des répertoires dans les systèmes d'exploitation de type Linux et Unix.
Mais, le mv
La commande ne prend pas en charge le renommage par lots des fichiers à la fois. Il ne peut renommer qu'un seul fichier à la fois. Que feriez-vous si vous vouliez renommer plusieurs fichiers à la fois ? Ne t'inquiètes pas!
Il existe quelques autres utilitaires disponibles pour renommer des fichiers par lots sous Linux.
Renommer plusieurs fichiers à la fois sous Linux
Il peut y avoir de nombreuses commandes et utilitaires pour renommer en masse un groupe de fichiers. Au moment d'écrire ces lignes, je connais 8 façons différentes de renommer des fichiers par lots. Je continuerai à mettre à jour la liste si je tombe sur une nouvelle méthode à l'avenir.
Méthode 1 - Renommer des fichiers par lots à l'aide de mmv
Le mmv L'utilitaire est utilisé pour déplacer, copier, ajouter et renommer des fichiers en masse à l'aide de caractères génériques standard dans les systèmes d'exploitation Linux et Unix. Il est disponible dans les dépôts par défaut des systèmes basés sur Debian.
Pour installer mmv sur Debian, Ubuntu, Linux Mint et Pop OS, exécutez la commande suivante :
$ sudo apt-get install mmv
Disons que vous avez les fichiers suivants dans votre répertoire actuel.
$ ls a1.txt a2.txt a3.txt
Maintenant, vous voulez renommer tous les fichiers commençant par la lettre "a"
à "b"
. Bien sûr, vous pouvez le faire manuellement en quelques secondes.
Mais pensez-vous que si vous avez des centaines de fichiers et que vous souhaitez les renommer ? C'est un processus assez long. Voici où mmv la commande vient en aide.
Pour renommer tous les fichiers commençant par la lettre "a"
à "b"
, lancez simplement :
$ mmv a\* b\#1
Vérifions si les fichiers ont été renommés ou non.
$ ls b1.txt b2.txt b3.txt
Comme vous pouvez le voir, tous les fichiers commencent par la lettre "a"
(c'est-à-dire a1.txt
, a2.txt
, a3.txt
) sont renommés en b1.txt
, b2.txt
, b3.txt
.
Explication
Dans l'exemple ci-dessus, le premier paramètre (a*
) est le 'from'
pattern et le second paramètre est 'to'
motif (b#1
).
Comme dans l'exemple ci-dessus, mmv recherchera tous les noms de fichiers commençant par la lettre 'a'
et renommez les fichiers correspondants en fonction du deuxième paramètre, c'est-à-dire 'to'
modèle.
Nous utilisons des caractères génériques, tels que ‘*’
, ‘?’
et ‘[]‘
, pour correspondre à un ou plusieurs caractères arbitraires. N'oubliez pas que vous devez échapper les caractères génériques, sinon ils seront développés par le shell et mmv ne les comprendra pas.
Le ‘#1′
dans le ‘to’
pattern est un index générique. Il correspond au premier caractère générique trouvé dans le ‘from’
modèle. Un ‘#2′
dans le ‘to’
pattern correspondrait au deuxième caractère générique et ainsi de suite.
Dans notre exemple, nous n'avons qu'un seul caractère générique (l'astérisque), nous écrivons donc un #1
. Et le signe dièse doit également être échappé. En outre, vous pouvez également entourer les modèles de guillemets.
Vous pouvez même renommer tous les fichiers avec une certaine extension en une extension différente. Par exemple, pour renommer tous les .txt
fichiers vers .doc
format de fichier dans le répertoire courant, lancez simplement :
$ mmv \*.txt \#1.doc
Voici un autre exemple. Disons que vous avez les fichiers suivants.
$ ls abcd1.txt abcd2.txt abcd3.txt
Vous souhaitez remplacer la première occurrence de abc
avec xyz
dans tous les fichiers du répertoire courant. Comment feriez-vous ?
Simple.
$ mmv '*abc*' '#1xyz#2'
Veuillez noter que dans l'exemple ci-dessus, j'ai placé les modèles entre guillemets simples.
Vérifions si "abc" est réellement remplacé par "xyz" ou non.
$ ls xyzd1.txt xyzd2.txt xyzd3.txt
Voir? Les fichiers abcd1.txt , abcd2.txt , et abcd3.txt ont été renommés en xyzd1.txt , xyzd2.txt , et xyzd3.txt .
Une autre caractéristique notable de la commande mmv est que vous pouvez simplement imprimer la sortie au lieu de renommer les fichiers en utilisant -n
comme ci-dessous.
$ mmv -n a\* b\#1 a1.txt -> b1.txt a2.txt -> b2.txt a3.txt -> b3.txt
De cette façon, vous pouvez simplement vérifier ce que la commande mmv ferait réellement avant de renommer les fichiers.
Pour plus de détails, consultez les pages de manuel.
$ man mmv
Méthode 2 - Renommer des fichiers en masse à l'aide de l'utilitaire de renommage
Le renommer l'utilitaire renommera les fichiers donnés en remplaçant la première occurrence de l'expression dans leur nom par replacement.
La commande rename est préinstallée dans la plupart des systèmes d'exploitation de type Unix. S'il n'est pas disponible par défaut, exécutez la commande suivante pour l'installer sur les systèmes basés sur Debian :
$ sudo apt install rename
Par exemple, j'ai les fichiers suivants dans le répertoire courant.
$ ls abcd1.txt abcd2.txt abcd3.txt
Remplaçons la première occurrence de abc
avec xyz
partout où trouvé. Pour ce faire, exécutez :
$ rename 's/abc/xyz/' *
Maintenant, vérifiez si les modifications ont été apportées avec ls
commande.
$ ls xyzd1.txt xyzd2.txt xyzd3.txt
Parfois, vous pouvez simplement imprimer la sortie au lieu de renommer les fichiers. Si oui, utilisez -n
drapeau pour afficher les changements de nom qui se produiraient sans les effectuer :
$ rename -n 's/abc/xyz/' * rename(abcd1.txt, xyzd1.txt) rename(abcd2.txt, xyzd2.txt) rename(abcd3.txt, xyzd3.txt)
Comme vous pouvez le voir, la commande ci-dessus n'a apporté aucune modification, mais affiche simplement les changements de nom qui se produiront.
Vous pouvez forcer le renommage de la tâche même si l'opération écraserait les fichiers existants en utilisant -f
drapeau comme ci-dessous.
$ rename -f 's/abc/xyz/' *
Si vous ne voulez pas écraser les fichiers, vous pouvez simplement les convertir en lettres majuscules ou minuscules (et vice versa) pour éviter les erreurs "existe déjà".
Pour convertir tous les noms de fichiers en minuscules, procédez comme suit :
$ rename 'y/a-z/A-Z/' *
Vérifions si les modifications ont été apportées.
$ ls ABCD1.TXT ABCD2.TXT ABCD3.TXT
Oui, les lettres dans les noms de fichiers ont été changées de minuscules en majuscules.
De même, pour convertir les noms de fichiers en minuscules, exécutez :
$ rename 'y/A-Z/a-z/' *
Nous pouvons également supprimer toutes les lignes vides dans un nom de fichier. Par exemple, j'ai le fichier suivant.
$ ls Clouds of Sunset.mp3
Pour supprimer tous les espaces vides dans le nom de fichier ci-dessus, exécutez :
$ rename "s/ *//g" *
Maintenant, le nom de fichier n'a plus d'espaces vides.
$ ls CloudsofSunset.mp3
Remplacez les espaces vides par des traits de soulignement :
$ rename 's/\s+/_/g' *
Vous voudrez peut-être modifier l'extension de fichier, mais ne pas renommer les noms de fichiers. C'est également possible. La commande suivante renommerait tous les *.txt
fichiers vers *.doc
.
$ rename 's/\.txt$/.doc/' *.txt
Vérifiez les modifications à l'aide de ls commande :
$ ls abcd1.doc abcd2.doc abcd3.doc
Pour supprimer l'extension dans tous les fichiers correspondant à .txt , exécutez :
$ rename 's/\.txt$//' *.txt
Pour plus de détails, consultez les pages de manuel.
$ man rename
Méthode 3 - Renommer les fichiers à l'aide de renameutils
Les renameutils est un ensemble de programmes conçus pour renommer par lots des fichiers et des répertoires plus rapidement et plus facilement.
Renameutils se compose des cinq programmes suivants :
- qmv (déplacement rapide),
- qcp (copie rapide),
- imv (déplacement interactif),
- icp (copie interactive),
- deurlname (supprimer l'URL).
Installer renameutils sous Linux
Renameutils est disponible dans les référentiels par défaut de la plupart des distributions Linux. Pour l'installer sur des systèmes basés sur Arch, activez le référentiel communautaire et exécutez :
$ sudo pacman -Syu renameutils
Sur les systèmes basés sur Debian :
$ sudo apt install renameutils
Voyons maintenant quelques exemples.
1. qmv
Le programme qmv ouvrira les noms de fichiers dans un répertoire de votre éditeur de texte par défaut et vous permettra de les modifier.
J'ai les trois fichiers suivants dans un répertoire nommé 'ostechnix'.
$ ls ostechnix/ abcd1.txt abcd2.txt abcd3.txt
Pour renommer les noms de fichiers dans le répertoire 'ostechnix', faites simplement :
$ qmv ostechnix/
Maintenant, changez les noms de fichiers comme vous le souhaitez. Vous verrez l'aperçu en direct lorsque vous modifierez les noms de fichiers.
Alternativement, vous pouvez cd dans le répertoire et simplement exécuter 'qmv'
.
Une fois que vous avez ouvert les fichiers, vous verrez les deux colonnes comme indiqué dans la capture d'écran suivante.
Le côté de la colonne de gauche affiche les noms de fichiers source et la colonne de droite affiche les noms de destination (les noms de fichiers de sortie que vous obtiendrez après l'édition).
Maintenant, renommez tous les noms de sortie sur le côté droit comme vous le souhaitez.
Après avoir renommé les noms de fichiers, enregistrez et quittez le fichier.
Enfin, vous verrez la sortie suivante :
Plan is valid. abcd1.txt -> xyzd1.txt abcd2.txt -> xyzd2.txt abcd3.txt -> xyzd3.txt Regular rename abcd1.txt -> xyzd1.txt abcd2.txt -> xyzd2.txt abcd3.txt -> xyzd3.txt
Maintenant, vérifiez si les modifications ont bien été apportées en utilisant 'ls'
commande :
$ ls ostechnix/ xyzd1.txt xyzd2.txt xyzd3.txt
Voir? Tous les fichiers sont renommés. Pas seulement les fichiers, les renameutils renommeront également les noms de répertoires.
Voici une vidéo de démonstration rapide du programme qmv :
Si vous ne souhaitez pas modifier les noms de fichiers au format à deux colonnes, utilisez la commande suivante pour afficher uniquement la colonne du fichier de destination.
$ qmv -f do ostechnix/
Où, '-f'
fait référence au format
et 'do'
fait référence à destination-only
.
Maintenant, vous ne verrez que la colonne de destination. C'est dans cette colonne que nous apportons les modifications.
Une fois terminé, enregistrez et fermez le fichier.
Pour plus de détails, consultez les pages de manuel.
$ man qmv
2. qcp
Le programme qcp fonctionne comme qmv, mais copie les fichiers au lieu de les renommer. Dans ce cas, vous obtiendrez deux instances du même fichier. Cela signifie qu'il conservera à la fois les fichiers originaux et les fichiers en double.
$ qcp ostechnix/
Renommez les noms de fichiers répertoriés sur le côté droit. Enregistrez et quittez le fichier. Enfin, vérifiez les modifications apportées à l'aide de la commande ls :
$ ls ostechnix/ abcd1.txt abcd2.txt abcd3.txt xyzd1.txt xyzd2.txt xyzd3.txt
Pour plus de détails, consultez les pages de manuel.
$ man qcp
3. imv
Le programme imv nous permet de renommer interactivement les noms de fichiers. De toute évidence, ce n'est pas pour renommer en masse. Vous ne pouvez renommer les fichiers qu'un par un.
$ imv ostechnix/abcd1.txt
Modifiez le nom du fichier comme vous le souhaitez et appuyez sur ENTER pour le renommer.
Pour plus de détails, consultez les pages de manuel.
$ man imv
4. icp
Le programme icp est identique à imv
, mais il copie les fichiers au lieu de les déplacer.
Exemple :
$ icp ostechnix/abcd1.txt
Pour plus de cas d'utilisation et de commandes, veuillez consulter les pages de manuel.
$ man icp
Je ne sais pas pourquoi les développeurs ont ajouté ces deux utilitaires alors que nous pouvons faire la même chose en utilisant mv
et cp
commande.
5. deurlname
Le deurlname le programme supprime les caractères encodés d'URL (tels que %20
représentant l'espace) à partir des noms de fichiers. Certains programmes, par exemple w3m , ont tendance à conserver ces caractères encodés dans les fichiers enregistrés.
Vous pouvez utiliser cet outil pour nettoyer les noms de fichiers que vous avez téléchargés sur Internet.
Jetez un oeil au fichier suivant.
$ ls omg%20ponnu%20ily%20kannu.mp3
Il y a des caractères spéciaux et des nombres dans le nom de fichier. Si vous le nettoyez, exécutez simplement :
$ deurlname omg%20ponnu%20ily%20kannu.mp3
Maintenant, regardez comment le nom du fichier est modifié.
$ ls omg ponnu ily kannu.mp3
Le nom de fichier est propre et lisible.
Reportez-vous aux pages de manuel pour plus de détails.
$ man deurlname
Reportez-vous également au site Web du projet indiqué à la fin de ce guide.
Méthode 4 - Renommer plusieurs fichiers à la fois à l'aide de vimv
Comme son nom l'indique, Vimv est un utilitaire de ligne de commande pour renommer des fichiers en masse à l'aide de Vim éditeur. Vous pouvez bien sûr changer d'éditeur en changeant la valeur de $EDITOR
variable d'environnement.
Pour installer Vimv, git clonez le dépôt :
$ git clone https://github.com/thameera/vimv.git
Copiez le binaire vimv dans votre $PATH
, par exemple /usr/local/bin/
.
$ sudo cp vimv/vimv /usr/local/bin/
Enfin, rendez-le exécutable :
$ sudo chmod +x /usr/local/bin/vimv
Allez maintenant dans le répertoire et exécutez la commande suivante pour modifier les noms de fichiers.
$ vimv
Vous verrez les noms de fichiers dans l'éditeur Vi. Appuyez sur i pour passer en mode interactif et modifier les noms de fichiers comme vous modifiez le texte dans l'éditeur Vi. Une fois terminé, appuyez sur ESC
clé et tapez :wq
pour enregistrer et quitter.
Les fichiers à l'intérieur du répertoire doivent être renommés maintenant. Voici une courte démo vidéo.
Pour plus de détails, reportez-vous au référentiel GitHub du projet indiqué à la fin de ce guide.
Méthode 5 - Renommer des fichiers par lots à l'aide d'Emacs
Si vous avez un système avec l'éditeur Emacs installé, vous pouvez facilement renommer par lots en suivant ces étapes.
1. Ouvrez votre éditeur Emacs.
2. Appuyez sur Alt+x
et tapez ce qui suit et appuyez sur ENTER pour passer en wdired-mode
(abréviation de "mode d'éditeur de répertoire inscriptible").
$ dired
3. Entrez le chemin d'accès au répertoire (par exemple /home/sk/ostechnix
) qui contient les fichiers à renommer et appuyez sur ENTER
clé.
4. Ensuite, appuyez sur Ctrl+x
et Ctrl+q
pour passer en mode lecture-écriture.
5. Maintenant, renommez les fichiers. Une fois terminé, appuyez sur Ctrl+c
et Ctrl+c
(deux fois) pour enregistrer les modifications. Pour annuler les modifications, appuyez sur Ctrl+c
et Ctrl+k
.
Regardez la vidéo de démonstration :
Voir? Il est très simple de renommer plusieurs fichiers à la fois.
Méthode 6 - Renommer des fichiers en masse avec le gestionnaire de fichiers Thunar
Le gestionnaire de fichiers Thunar a un renommage en masse intégré par défaut.
Thunar est disponible dans les dépôts par défaut de la plupart des distributions Linux.
Pour l'installer sur des systèmes basés sur Arch, exécutez :
$ sudo pacman -S thunar
Sur Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux :
$ sudo dnf install thunar
Ou,
$ sudo yum install thunar
Sur openSUSE :
$ sudo zypper install thunar
Sur Debian, Ubuntu, Linux Mint :
$ sudo apt-get install thunar
Une fois installé, vous pouvez lancer l'utilitaire de renommage en masse à partir du menu ou du lanceur d'applications. Pour le lancer depuis Terminal, utilisez la commande suivante :
$ thunar -B
Voici à quoi ressemble le renommage en masse.
Cliquez sur le signe plus et choisissez la liste des fichiers que vous souhaitez renommer. Renommer en bloc peut renommer le nom des fichiers, le suffixe des fichiers ou à la fois le nom et le suffixe des fichiers.
Thunar prend actuellement en charge les Bulk Renamers suivants :
- Insérer la date ou l'heure
- Insérer ou écraser
- Numérotation
- Supprimer des caractères
- Rechercher et remplacer
- Majuscules / Minuscules
Lorsque vous sélectionnez l'un de ces critères dans la liste de sélection, vous verrez un aperçu de vos modifications dans le Nouveau nom colonne, comme indiqué dans la capture d'écran ci-dessous.
Une fois que vous avez choisi les critères, cliquez sur Renommer les fichiers possibilité de renommer les fichiers.
Vous pouvez également ouvrir le renommage en bloc depuis Thunar en sélectionnant deux fichiers ou plus. Après avoir choisi les fichiers, appuyez sur F2
ou faites un clic droit et choisissez Rename
.
Suggestion de lecture :
- [Bash Tips] Renommer les fichiers sans taper deux fois le nom complet sous Linux
Méthode 7 - Renommer la liste des fichiers avec KRename
KRename est un renommeur de fichiers batch qui peut renommer une liste de fichiers en fonction d'un ensemble d'expressions. Il vous permet de renommer un grand nombre de fichiers en ajoutant simplement une séquence de chiffres ou en changeant la casse.
KRename est spécialement conçu et installé par défaut dans les distributions KDE. Vous pouvez également l'installer sur d'autres distributions Linux.
Par exemple, pour installer KRename sur Fedora, exécutez simplement :
$ sudo dnf install krename
Lancez l'application KRename depuis le lanceur d'applications ou le menu et ajoutez tous les fichiers à renommer dans les Fichiers rubrique.
Dans la Destination section, assurez-vous d'avoir sélectionné l'option "Renommer les fichiers d'entrée".
Dans les plugins, vous pouvez choisir n'importe quel plugin de votre choix, qui fournit diverses balises lors du renommage des fichiers.
Dans la dernière section, vous pouvez choisir le schéma de renommage à utiliser. Vous verrez un aperçu en bas en fonction du schéma que vous avez choisi. Une fois que vous êtes d'accord avec les options sélectionnées, cliquez sur le bouton Terminer pour renommer les fichiers.
Les fichiers renommés seront enregistrés au même emplacement.
KRename est un utilitaire de renommage riche en fonctionnalités. Il a tellement d'options pour renommer les fichiers. La plupart des options sont explicites.
Méthode 8 - Renommer plusieurs fichiers et dossiers à l'aide de Smart file renamer
Smart File Renamer est un programme graphique pour renommer plusieurs fichiers à la fois. À l'aide de Smart File Rename, vous pouvez facilement et rapidement renommer des fichiers et des répertoires en une seule fois en quelques clics de souris. C'est une application multiplateforme qui prend en charge Linux, macOS et Windows. Contrairement aux autres programmes, c'est la propriété. La version gratuite n'a que des fonctionnalités limitées.
Smart File Renamer est disponible sous forme de package instantané. Vous pouvez l'installer à l'aide de la commande suivante :
$ sudo snap install smart-file-renamer
Une fois installé, lancez-le à partir du menu ou du lanceur d'applications. Ajoutez les fichiers et répertoires que vous souhaitez renommer et cliquez sur le bouton Renommer en bas.
Il prend en charge de nombreuses règles et filtres pour le renommage par lots. Choisissez-les simplement sur le côté droit de la fenêtre de l'application et appuyez sur le bouton Renommer.
Conclusion
Voilà! Dans ce guide, nous avons discuté de 8 méthodes pour renommer en masse des fichiers sous Linux. Nous avons fourni à la fois des programmes en ligne de commande et des programmes graphiques pour renommer plusieurs fichiers en une seule fois. Choisissez celui qui vous convient et faites le travail.
Et, c'est tout pour le moment. J'espère que cela a été utile. Connaissez-vous une autre méthode à ajouter dans cette liste ? Veuillez les mentionner dans la section des commentaires ci-dessous. Je vérifierai et mettrai à jour ce guide en conséquence.