Aperçu
`rename` est une commande puissante utilisée pour renommer un grand nombre de fichiers selon une règle. Cette commande peut trouver et remplacer des chaînes spécifiques dans les noms de fichiers en utilisant la syntaxe d'expression régulière Perl, telle que `s/ancien_motif/nouveau_motif/`. Par exemple, elle permet d'automatiser facilement des tâches comme le remplacement de toutes les extensions `.jpeg` par `.jpg`, ou la modification des espaces inclus dans les noms de fichiers par des tirets bas (`_`).
Caractéristiques principales
Les principales caractéristiques de la commande `rename` sont les suivantes :
- Modifie le nom de plusieurs fichiers à la fois.
- Offre une puissante fonction de substitution de motifs basée sur des expressions régulières.
- Optimisée pour les opérations par lots, contrairement à la commande `mv` qui modifie les fichiers un par un.
- Prend en charge un mode 'dry run' (`-n`) pour prévisualiser les résultats des modifications, aidant ainsi à éviter les erreurs.
Différences entre rename et mv
`rename` et `mv` sont tous deux utilisés pour renommer des fichiers, mais ils diffèrent en termes de fonctionnalités et d'objectifs.
- rename: Spécialisé dans le renommage de plusieurs fichiers par lots basé sur des motifs.
- mv: Utilisé pour renommer ou déplacer un seul fichier ou répertoire. Pour modifier plusieurs fichiers, un script est nécessaire.
Options principales
Les options fréquemment utilisées de la commande `rename` sont regroupées par objectif.
1) Renommage par lots
2) Aide
Commande générée :
Essayez de combiner les commandes.
Description:
`rename` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Découvrez les fonctionnalités de la commande `rename` à travers divers exemples d'utilisation.
Changer l'extension des fichiers
rename 's/\.jpeg$/.jpg/' *.jpeg
Change toutes les extensions `.jpeg` en `.jpg` dans le répertoire courant.
Modifier une chaîne spécifique dans le nom de fichier
rename 's/^image_/photo_/' *.jpeg
Change `image_` en `photo_` dans tous les noms de fichiers commençant par `image_`.
Remplacer les espaces par des tirets bas
rename 's/ /_/g' *
Remplace tous les espaces (` `) par des tirets bas (`_`) dans les noms de fichiers.
Convertir les majuscules en minuscules
rename 'y/A-Z/a-z/' *
Convertit toutes les majuscules en minuscules dans les noms de tous les fichiers.
Prévisualiser les résultats des modifications
rename -n 's/.html/.txt/' *.html
Vérifie ce qui se passerait si les extensions `.html` étaient changées en `.txt`, sans modifier les fichiers réels.
Installation
rename n'est pas inclus par défaut dans toutes les distributions Linux, il doit donc être installé avec les commandes ci-dessous. Dans certaines distributions, le nom du paquet peut être différent, comme `perl-rename` ou `prename`.
Debian/Ubuntu
sudo apt update
sudo apt install rename
RHEL/CentOS/Fedora
sudo dnf install prename
Arch Linux
sudo pacman -S perl-rename
Astuces et précautions
Voici quelques points à noter lors de l'utilisation de la commande `rename`.
Astuces
- Dans les expressions régulières, le point (`.`) signifie n'importe quel caractère, il faut donc l'échapper avec une barre oblique inverse (`\`) comme `\.jpeg` lors du changement d'extension.
- `rename` est un outil puissant, il est donc toujours recommandé d'utiliser d'abord l'option `-n` pour vérifier les résultats afin d'éviter les erreurs.
- Si les noms de fichiers contiennent des espaces, ils doivent être entourés de guillemets (`"`) pour être passés en argument.