Comment renommer plusieurs fichiers sous Linux

Renommer des fichiers sur des systèmes Linux est généralement géré par la commande mv (déplacer). La syntaxe est juste mv old.txt new.txt. Assez simple, mais que se passe-t-il si nous avons plusieurs fichiers qui doivent être renommés à la fois, même des centaines d’entre eux? L’utilitaire mv par défaut ne peut pas gérer le changement de nom de plus d’un fichier à moins que nous ne fassions un peu de script. Il existe également d’autres utilitaires que nous pouvons installer pour résoudre le problème, comme rename et mmv.

Dans ce guide, nous allons vous montrer comment utiliser la commande mv ainsi que les outils rename et mmv pour renommer plusieurs fichiers sur votre distribution Linux. Nous allons passer en revue plusieurs exemples afin que vous puissiez comprendre la syntaxe et comment utiliser chaque méthode.

Dans ce tutoriel, vous apprendrez:

  • Comment renommer plusieurs fichiers à la fois avec la commande mv
  • Comment installer rename sur les principales distributions Linux
  • Comment installer mmv sur les principales distributions Linux
  • Comment utiliser mmv, via des exemples de commandes
  • Comment utiliser rename, via des exemples de commandes
 Renommer plusieurs fichiers à la fois sous Linux

Renommer plusieurs fichiers à la fois sous Linux

Exigences logicielles et Conventions de Ligne de Commande Linux
Catégorie Exigences, Conventions ou Version du logiciel Utilisé
Système Toute distribution Linux
Logiciel mv, renommer, mmv
Autre Accès privilégié à votre système Linux en tant que root ou via la commande sudo.
Conventions # – nécessite que des commandes linux données soient exécutées avec des privilèges root soit directement en tant qu’utilisateur root, soit en utilisant la commande sudo
$ – nécessite que des commandes Linux données soient exécutées en tant qu’utilisateur régulier non privilégié

Renommez plusieurs fichiers à la fois avec la commande mv

Renommer plusieurs fichiers avec la commande mv est plus facile si vous connaissez un peu les scripts Bash. Jetez un coup d’œil à certains des exemples ci-dessous pour voir quelques utilisations courantes de cette méthode.

  1. La commande suivante ajoutera un.extension de fichier txt à tous les fichiers de votre répertoire de travail actuel.
    $ for i in $( ls ); do mv $i $i.txt; done
  2. Pour supprimer une extension de fichier de tous les fichiers, vous pouvez utiliser cette commande.
    $ for i in $( ls *.txt ); do mv $i ${i%.*}; done
  3. Nous pouvons également modifier l’extension de chaque fichier. La commande suivante modifiera tous les fichiers avec le .extension de journal à .txt.
    $ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
  4. Vous pouvez également utiliser la commande find, ainsi que l’option -exec ou la commande xargs pour renommer plusieurs fichiers à la fois. Cette commande s’ajoutera.bak à chaque fichier qui commence par le motif « fichier ».
    $ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
  5. Cette commande utilise find et l’option -exec pour ajouter « _backup » à tous les fichiers qui se terminent dans le.extension txt.
    $ find . -name "*.txt" -exec mv {} {}_backup \;
  6. Nous pouvons également utiliser xargs pour faire la même chose. Cette commande acceptera l’entrée standard de la commande ls, puis utilisera xargs pour ajouter « _backup » à tous les fichiers qui se terminent dans le.extension txt.
    $ ls *.txt | xargs -I{} mv {} {}_backup
  7. Pour modifier tous les fichiers avec le .txt dans le présent répertoire pour n’avoir que des lettres minuscules, cette commande fera le travail.
    $ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done

L’avantage de cette méthode est que nous n’avons pas besoin de logiciel Linux supplémentaire – nous utilisons simplement l’utilitaire mv natif, et parfois couplé à ls, find ou xargs. Cependant, comme nous l’avons vu dans ces exemples, il peut être assez complexe de faire quelque chose de simple comme renommer quelques fichiers. Consultez certaines des autres méthodes ci-dessous pour voir des options plus pratiques qui nécessitent une installation.

Installer l’utilitaire de renommage

Votre distribution Linux peut déjà avoir rename installé par défaut. Juste au cas où il n’est pas déjà installé, vous pouvez utiliser la commande appropriée ci-dessous pour l’installer via le gestionnaire de paquets de votre système.

Pour installer rename sur Ubuntu, Debian et Linux Mint:

$ sudo apt install rename

Pour installer rename sur CentOS, Fedora, AlmaLinux et Red Hat:

$ sudo dnf install prename

Pour installer rename sur Arch Linux et Manjaro:

$ sudo pacman -S perl-rename

exemples de commande rename

La commande rename accepte l’expression perl pour effectuer le changement de nom réel. Si vous connaissez déjà cette syntaxe, renommer sera très facile à utiliser. Sinon, ne vous inquiétez pas, nous avons quelques exemples ci-dessous qui vous aideront à comprendre.

Ici, nous avons compilé certains des scénarios les plus courants dont vous auriez besoin pour renommer plusieurs fichiers à la fois. Ces commandes supposent que les fichiers que vous souhaitez renommer se trouvent dans votre répertoire de travail actuel. Vous pouvez toujours spécifier le chemin d’accès à d’autres répertoires si vous le souhaitez.

Il existe quelques options que vous pouvez utiliser avec rename. L’option -n vous montrera quelles modifications renommer va apporter, sans réellement apporter les modifications. Cela vous aide à éviter tout changement indésirable. L’option -v (verbeuse) affiche les noms des fichiers qui ont été renommés avec succès.

  1. Cette commande renommera les fichiers majuscules en minuscules.
    $ rename 'y/A-Z/a-z/' *

    Ou, pour convertir les minuscules en majuscules:

    $ rename 'y/a-z/A-Z/' *
  2. Pour modifier l’extension d’un tas de fichiers, utilisez la syntaxe suivante. Cet exemple particulier convertira.fichiers journaux à.fichiers txt.
    $ rename 's/\.log$/\.txt/' *.log
  3. Pour mettre en majuscule la première lettre de chaque nom de fichier, utilisez la commande suivante.
    $ rename 's/\b(\w)/\U/g' *
  4. Pour supprimer tous les espaces vides des noms de fichiers, exécutez cette commande.
    $ rename "s/ *//g" *

    Ou, pour remplacer les espaces par des traits de soulignement:

    $ rename 's/\s+/_/g' *
  5. Pour supprimer une extension de fichier d’un tas de fichiers, utilisez la syntaxe suivante. Cet exemple supprimera le .extension de bak.
    $ rename 's/\.bak$//' *.bak

Installez l’utilitaire mmv

Vous pouvez utiliser la commande appropriée ci-dessous pour installer mmv via le gestionnaire de paquets de votre système.

Pour installer mmv sur Ubuntu, Debian et Linux Mint:

$ sudo apt install mmv

Pour installer mmv sur CentOS, Fedora, AlmaLinux et Red Hat:

$ sudo dnf install mmv

Pour installer mmv sur Arch Linux et Manjaro:

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si

exemples de commandes mmv

La caractéristique la plus intéressante de mmv est sa capacité à renommer facilement de nombreux fichiers en acceptant des caractères génériques dans la commande. Cela vous permet d’ajouter ou de supprimer facilement certains motifs des noms de fichiers, ou même d’organiser du texte dans les noms. Consultez certains des exemples ci-dessous pour apprendre la syntaxe de l’outil mmv et voir certaines des commandes les plus courantes que vous pouvez exécuter avec lui. Gardez à l’esprit que vous pouvez utiliser l’option -n avec mmv pour prévisualiser les modifications.

  1. Utilisez cet exemple pour modifier l’extension de fichier sur un tas de fichiers. Cette commande va changer tous les fichiers avec l’extension.htm à.HTML.
    $ mmv '*.htm' '#1.html'
  2. Cette commande remplacera la première occurrence de « foo » par « bar » dans tous les noms de fichiers.
    $ mmv '*foo*' '#1bar#2'
  3. La commande suivante vous donne une idée de la façon dont vous pouvez utiliser mmv pour réorganiser des parties d’un nom de fichier. Cet exemple prendra des fichiers tels que access.log-dbserver et rejected.log-webserver et les renommera en access-dbserver.log et rejected-webserver.log, respectivement. Pour que cela fonctionne, il nous suffit d’avoir un modèle cohérent, tel que le tiret et la période dans ce cas.
    $ mmv '*.log-*' '#1-#2.log'
  4. Modifiez tous les noms de fichiers en minuscules à l’aide de cette commande.
    $ mmv '*' '#l1'
  5. Inversement, remplacez les noms des fichiers par toutes les lettres majuscules avec celui-ci.
    $ mmv '*' '#u1'

Pensées de fermeture

Dans ce guide, nous avons appris plusieurs méthodes différentes pour renommer plusieurs fichiers simultanément sur Linux. Nous avons également vu une multitude d’exemples de ligne de commande qui peuvent couvrir de nombreux scénarios différents ou être facilement adaptés à des situations similaires. Le renommage en masse peut être effectué via des utilitaires bash natifs tels que mv, ls, xargs et find, ou nous pouvons installer l’utilitaire mmv ou rename pour nous faciliter la vie. Chaque méthode a ses forces et ses faiblesses, alors utilisez celle qui vous convient le mieux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.