Renommer un dossier dans Linux paraît trivial quand on le fait une fois de temps en temps dans un gestionnaire de fichiers graphique. Dès que l’on bascule dans le terminal, que l’on gère un serveur ou un script bash, la même opération devient stratégique pour garder un système de fichiers propre, lisible et facile à automatiser. Entre la commande mv, les outils de renommage en masse comme rename et les habitudes prises dans les équipes, une petite erreur de nom peut casser un script, une sauvegarde ou un déploiement. L’idée ici est de clarifier, de façon directe et concrète, comment renommer un dossier ou un répertoire sous Linux sans créer de dette technique.
Du côté des méthodes, tout repose sur quelques briques simples en ligne de commande : mv pour le quotidien, rename pour les séries, et éventuellement une pincée de boucles bash quand il faut s’adapter à un cas un peu bizarre. En pratique, beaucoup d’admins bricolent encore des one-liners à rallonge alors qu’une poignée de modèles bien choisis couvre 90 % des besoins. Ce texte s’appuie sur ce qui se voit tous les jours en production : renommage d’un répertoire de logs, migration d’un répertoire applicatif, nettoyage d’archives, adaptation de conventions de nommage. L’objectif est clair : fournir des commandes réutilisables, expliquer ce qu’elles font réellement, et pointer les pièges fréquents pour éviter les mauvaises surprises en prod.
En bref
- mv reste la commande de base pour renommer un dossier sous Linux, en local comme sur serveur.
- Renommer un répertoire peut écraser une cible existante si l’on ne protège pas la commande avec des options comme -i.
- Pour renommer une série de dossiers, rename et quelques expressions régulières font gagner un temps énorme.
- Les boucles bash (for, find) complètent ces outils quand la structure du système de fichiers devient plus complexe.
- Sur un serveur en production, un simple changement de nom peut casser des chemins codés en dur ou des montages réseau.
Renommer un dossier avec mv dans Linux sans se faire piéger
Pour renommer un répertoire sous Linux, la méthode la plus directe reste l’utilisation de la commande mv. Historiquement, mv sert à déplacer des fichiers ou répertoires, mais le renommage n’est rien d’autre qu’un déplacement dans le même dossier parent avec un nouveau nom. Cette vision évite pas mal d’incompréhensions : renommer, c’est déplacer dans le système de fichiers, pas éditer une “propriété” du dossier.
La syntaxe minimale est simple : mv ancien_nom nouveau_nom. Si les deux chemins pointent dans le même dossier parent, on obtient un renommage. Exemple concret dans /var :
Un répertoire de logs d’application nommé app_logs doit être renommé en app_logs_old avant une rotation manuelle. La commande sera :
mv /var/log/app_logs /var/log/app_logs_old
Le geste est rapide, mais en production, une mauvaise habitude consiste à lancer ce genre de commande “en confiance”, sans vérifier si une cible existe déjà. Or, si /var/log/app_logs_old existe, mv va fusionner ou écraser des contenus selon la structure cible. C’est le genre de détail qui rend un retour arrière pénible, surtout quand aucun snapshot n’a été pris.
La bonne posture consiste à adopter l’option -i par défaut dans les environnements sensibles. mv -i ancien_nom nouveau_nom pose une question si la destination existe. Certains vont plus loin en ajoutant un alias dans leur profil shell, par exemple :
alias mv=’mv -i’
Cet alias évite bien des erreurs, même si, pour les scripts automatisés, il reste conseillé de laisser mv sans alias et de gérer les contrôles proprement dans le script. On ne mélange pas les habitudes interactives et les comportements attendus en batch, sinon le débogage devient assez pénible.
Autre cas fréquent : renommer tout en déplaçant. Sur un serveur, un répertoire de configuration est parfois basculé d’un disque système saturé vers un volume plus large. On veut à la fois changer la localisation et le nom. Par exemple :
mv /opt/app/config /data/app/config_2025
Cette commande renomme et déplace le répertoire en une passe. Techniquement, c’est la même opération, mais l’impact sur les chemins utilisés par les services est bien plus fort. Les unités systemd, les scripts cron, les fichiers de configuration applicatifs doivent tous être ajustés pour pointer vers /data/app/config_2025. C’est précisément le genre de changement à documenter, comme on documente l’installation d’OpenSSL Windows dans un tutoriel du type installer OpenSSL sur Windows pour éviter de tout oublier le lendemain.
Sur le plan des droits, mv respecte ceux de l’utilisateur. Si un admin non root tente de renommer un dossier appartenant à un autre compte système, la commande échoue. C’est sain : renommer /home/userA en étant connecté en userB, sans sudo, n’est pas autorisé. Sur les serveurs mutualisés ou les environnements d’enseignement, cette barrière évite pas mal de dégâts involontaires.
Dernier point souvent sous-estimé : le renommage de répertoires liés à des montages NFS ou à des datastores VMware. Un répertoire qui sert de point de montage ne doit jamais être renommé à la légère. On a tous vu des erreurs proches de celles décrites dans des billets comme erreur de sécurité VMware, provoquées par des chemins qui ne correspondent plus à la réalité. Sur ces éléments de structure, mieux vaut passer par un changement planifié, avec vérification en amont des dépendances.
En résumé, mv est l’outil de base, mais utilisé sans garde-fous, il peut rendre un environnement instable beaucoup plus vite qu’on ne l’imagine.

Commandes mv avancées pour renommer des répertoires en série
La limite structurelle de mv, c’est sa capacité à ne gérer qu’une paire source/destination à la fois. Pour un seul dossier, cela suffit. Dès qu’il faut renommer plusieurs répertoires de manière cohérente, il faut lui adjoindre un peu de logique bash. Dans un homelab ou une petite PME, c’est souvent le point de bascule entre “je fais à la main dans le gestionnaire de fichiers” et “je scripte pour ne pas refaire ça cent fois”.
Un scénario simple : des dossiers de sites web nommés site1, site2, site3 dans /var/www, qu’il faut renommer en client1, client2, client3. La mauvaise solution consiste à taper trois fois mv. La solution plus propre passe par une boucle :
for i in 1 2 3; do mv /var/www/site$i /var/www/client$i; done
Ce genre de ligne tient sur une seule commande, reste lisible et surtout, peut être rejoué sur un autre environnement en changeant les valeurs de la boucle. C’est typiquement ce que l’on cherche quand on documente des bases de commandes Unix pour débutants : des patterns réutilisables.
Plus subtil : modifier l’extension ou une partie du nom sur une série de fichiers ou de répertoires dont les noms contiennent un motif commun. Une technique classique consiste à s’appuyer sur la substitution de chaînes dans bash. Exemple repris et adapté pour des logs d’API :
for d in api-logs-*.old; do mv « $d » « ${d%.old}.archive »; done
Ici, la syntaxe ${d%.old} supprime le suffixe .old et le remplace par .archive. C’est une forme de renommage en masse basée sur un patron. Ce type de boucle reste totalement lisible pour un admin un peu habitué à la ligne de commande, contrairement à certains one-liners obscurs copiés-collés sans les comprendre.
Autre combinaison utile : find avec mv pour renommer des dossiers parfois enfouis assez loin dans l’arborescence. Par exemple, renommer tous les répertoires nommés backup en backup_old sous un répertoire projet :
find /srv/projets -type d -name « backup » -exec sh -c ‘d= »{} »; mv « $d » « ${d}_old »‘ ;
La commande parcourt l’arbre, repère les dossiers appelés “backup” et les renomme en ajoutant un suffixe. C’est un peu verbeux, mais précieux quand on hérite d’un système de fichiers sans convention claire. Sur un serveur d’une dizaine d’années, avec des générations de techniciens qui se sont succédé, ce genre d’outil sert souvent de cure de jouvence.
Au passage, une bonne pratique consiste à toujours inclure des options comme -depth dans find quand on touche à des structures un peu sensibles, de manière à traiter les répertoires les plus profonds avant leurs parents. Exemple léger :
find /data -depth -type d -name « logs » -exec sh -c ‘d= »{} »; mv « $d » « ${d}_old »‘ ;
Ce détail évite de renommer un dossier parent avant ses enfants, ce qui peut générer des chemins cassés en plein traitement. Dans un environnement VMware ou un NAS qui sert à des machines virtuelles, on évite de jouer à ça pendant que les VM tournent, sous peine de revivre des traces proches de celles rencontrées lors d’une erreur de sécurité sur un datastore VMware.
Sur la question de la lisibilité, il existe un compromis : plutôt que de tout condenser sur une seule ligne, poser la boucle dans un petit script bash versionné. On gagne en traçabilité, surtout si ce script modifie des chemins utilisés par des services en production.
En pratique, mv n’est pas un outil de renommage en masse à proprement parler, mais il s’en approche une fois combiné à bash. Pour des cas d’école plus répétitifs, un autre outil se défend beaucoup mieux.
Utiliser la commande rename pour renommer un répertoire Linux par motifs
Quand il faut renommer une grande quantité de fichiers ou de répertoires sous Linux en suivant des motifs bien précis, la commande rename devient vite l’outil le plus confortable. Elle repose sur des expressions Perl, ce qui donne énormément de flexibilité pour transformer les noms : changer une extension, modifier des préfixes, passer en majuscules ou en minuscules, supprimer des caractères parasites, etc.
Sur les distributions de type Debian ou Ubuntu, il suffit d’installer le paquet avec :
sudo apt install rename
Une fois en place, la syntaxe générale suit le modèle :
rename ‘s/ANCIEN/NOUVEAU/’ cibles
Le premier cas utile pour les dossiers consiste à homogénéiser des noms. Imaginons une arborescence de projets dans /srv, où certains répertoires finissent par -old, d’autres par -OLD. Pour standardiser sur -old en minuscules :
cd /srv
rename ‘s/-OLD$/-old/’ */
Ici, l’expression remplace seulement les suffixes en majuscules. L’option -v permet d’afficher ce que rename fait réellement, ce qui facilite la relecture :
rename -v ‘s/-OLD$/-old/’ */
Autre fonction intéressante : le changement de casse sur tous les noms d’un dossier. Deux commandes typiques circulent beaucoup :
rename -v ‘y/a-z/A-Z/’ *
rename -v ‘y/A-Z/a-z/’ *
La première passe tout en majuscules, la seconde tout en minuscules. Sur un environnement où les conventions de nommage ont varié au fil des années, ces commandes redonnent une certaine cohérence. Bien sûr, il faut garder en tête que Linux est sensible à la casse : renommer un répertoire “Prod” en “prod” peut casser des scripts si les chemins sont en dur.
Pour des opérations à risque, l’option -n de rename est probablement la meilleure amie de l’admin prudent. Elle permet une simulation : la commande affiche les changements qu’elle effectuerait, sans les appliquer réellement. Exemple :
rename -n ‘s/.txt$/.pdf/’ *.txt
Dans ce cas, rien n’est renommé, mais la sortie montre quelle serait la nouvelle correspondance des noms. Une fois le résultat validé, il suffit de relancer la même commande sans -n. Cette approche gagne du temps tout en réduisant nettement le risque d’erreur, surtout quand on manipule des milliers d’éléments.
Sur la question des répertoires, rename fonctionne aussi bien que pour les fichiers. Il suffit que la cible du motif corresponde. Par exemple, pour préfixer tous les dossiers de sauvegarde par “2025-” :
rename -v ‘s/^/2025-/’ backup-*
En une ligne, tous les noms sont modifiés. Pour une petite structure qui versionne ses sauvegardes manuellement, cette manière de faire permet de conserver une chronologie explicite dans les noms eux-mêmes. On pourrait obtenir un résultat similaire avec une boucle mv, mais rename reste plus concis et plus lisible pour ce type de transformation systématique.
Il existe toutefois un piège qui revient souvent : toutes les distributions ne fournissent pas la même version de rename. Certaines proposent une implémentation Perl, d’autres un outil différent avec une syntaxe qui varie. Sur les serveurs hétérogènes, il faut donc vérifier la version de rename disponible, voire maintenir ses propres scripts pour garder une cohérence de comportement. Ignorer ce point, c’est s’exposer à des différences subtiles mais frustrantes entre deux environnements d’intégration et de production.
Une fois ces détails intégrés, rename devient l’outil de prédilection pour les opérations de renommage de masse, là où mv reste cantonné à des scénarios plus ponctuels ou plus contrôlés.
Comparaison mv vs rename pour renommer des dossiers sous Linux
Entre mv et rename, la tentation est de chercher “la meilleure commande” pour renommer un dossier sous Linux. En réalité, les deux attaquent le problème avec des philosophies différentes. mv joue le rôle du couteau suisse minimal : une source, une destination, une opération atomique. rename s’apparente plus à un outil de transformation de masse piloté par motifs. Chercher à tout faire avec l’un ou l’autre ne rend pas service.
Le tableau suivant résume les usages pertinents pour chaque commande dans les scénarios de renommage de répertoires :
| Commande | Cas d’usage typique | Avantages principaux | Limites à connaître |
|---|---|---|---|
| mv | Renommer un ou quelques répertoires, éventuellement en les déplaçant | Disponible partout, syntaxe simple, compatible scripts bash, comportement prévisible | Pas de renommage de masse sans boucle, risque d’écrasement si mal utilisé, pas de simulation native |
| rename | Renommer en série des répertoires et fichiers selon un motif commun | Gestion des motifs complexes, changement de casse, option -n pour tester, très concis en masse | Syntaxe différente selon les distributions, nécessite une installation, basé sur des expressions Perl parfois déroutantes |
Dans un environnement professionnel, le choix se fait davantage en fonction du contexte que par préférence personnelle. Pour une opération unique sur un serveur de production, où un seul répertoire de configuration doit changer de nom, mv remporte le match sans discussion. La commande est lisible par n’importe quel admin, compatible avec la plupart des scripts, et sa sémantique est stable depuis des décennies.
À l’inverse, pour un chantier de nettoyage de noms dans un répertoire d’archives, avec des dizaines de variantes de conventions héritées de l’histoire de l’entreprise, rename devient presque indispensable. La possibilité de tester avec -n, puis d’appliquer avec -v pour suivre l’évolution, donne un contrôle appréciable. Beaucoup de chantiers de migration de données gagnent en clarté grâce à ce type d’outil.
Sur la lisibilité du code, un petit biais existe : certains admins débutants se sentent plus à l’aise avec une boucle bash explicite qu’avec une expression régulière Perl compacte. Pour un script partagé avec des profils variés, documenter la commande rename, avec un commentaire clair, reste une bonne habitude. Ce n’est pas un luxe de rappeler qu’un s/ancien/nouveau/ est une simple substitution.
Autre élément souvent négligé : le suivi des changements. Lorsqu’un système logue peu de choses, ou que les journaux ne gardent pas trace des commandes interactives, des outils extérieurs (Ansible, scripts versionnés, documentation interne) deviennent le seul historien crédible des renommages. Sur ce point, peut importe que l’on utilise mv ou rename, tant que l’opération est consignée quelque part, de manière aussi claire que l’on documente une nouvelle fonctionnalité dans un flux du type Microsoft Start feed.
En résumé, vouloir opposer mv et rename ne rend pas justice à ce qu’ils offrent. mv sert de base pour tout ce qui touche aux noms de répertoires dans Linux, rename prend le relais dès que la dimension “masse” entre en jeu. Le réflexe à garder est simple : si la commande commence à ressembler à une répétition fastidieuse de mv, c’est probablement qu’il est temps de passer à rename ou à une boucle bash.
Bonnes pratiques, pièges et automatisation autour du renommage de répertoires
Renommer un dossier dans un environnement Linux ne se réduit pas à une simple commande. Dans une infrastructure réelle, chaque répertoire peut être visé par des scripts, des montages, des sauvegardes, des conteneurs, voire des jobs CI/CD. Ignorer ces dépendances mène aux incidents classiques que beaucoup de responsables IT connaissent bien : tâches cron qui échouent discrètement, sauvegardes incomplètes, scripts bash qui plantent en silence.
Un personnage imaginaire, appelons-le Marc, admin dans une PME avec un mélange de serveurs on-prem et quelques machines virtuelles dans le cloud, illustre bien ce genre de situation. Pour “mettre un peu d’ordre”, Marc décide de renommer le répertoire /data/clients en /data/customers, histoire d’aligner les noms sur le vocabulaire marketing. mv s’exécute en une fraction de seconde. Sauf que les scripts de facturation, eux, continuent de pointer vers /data/clients. Le lendemain, plus aucun PDF généré. La cause ? Un simple renommage mal anticipé.
Quelques bonnes pratiques se détachent clairement de ce type de scénario :
- Rechercher les dépendances : un grep sur les scripts, unités systemd, fichiers de configuration pour repérer les chemins concernés.
- Prévoir un plan de retour arrière : pouvoir renommer de nouveau le répertoire à l’identique si un service critique ne repart pas.
- Tester sur un environnement de préproduction : reproduire la structure, appliquer le renommage, vérifier les flux.
- Documenter et versionner : garder une trace textuelle ou dans Git des changements de chemins importants.
En automatisation, un vrai progrès consiste à intégrer le renommage éventuel des répertoires dans les rôles Ansible, les playbooks ou les scripts Terraform / bash utilisés pour monter un environnement. On évite alors les opérations manuelles surprises “faites directement en prod” un vendredi après-midi. Pour les débutants qui montent leur premier homelab, un rappel vers des contenus de base comme les commandes Unix pour débuter reste utile pour solidifier le socle.
Du point de vue sécurité, le renommage n’est pas neutre. Sur des systèmes exposés, des chemins moins évidents compliquent parfois le travail d’un attaquant opportuniste, même si cela ne remplace évidemment pas une vraie défense en profondeur. À l’inverse, un répertoire sensible renommé à la va-vite peut sortir de la sphère protégée d’un outil de sauvegarde ou d’un agent EDR si ces derniers s’appuient sur des chemins statiques.
Un autre piège discret apparaît quand on mixe renommages et liens symboliques. Changer le nom d’un répertoire cible sans adapter les symlinks qui pointent dessus peut produire des situations étranges, notamment dans des déploiements applicatifs qui reposent sur des chemins symboliques pour basculer de version. Là encore, la discipline de documentation et la préférence pour des outils d’orchestration plutôt que des commandes isolées font la différence.
Enfin, un mot sur l’aspect pédagogique. Pour des équipes mixtes où certains profils viennent du développement et d’autres du support, prendre le temps d’expliquer le fonctionnement du système de fichiers Linux, la différence entre renommer et recréer, l’impact sur les inodes et les liens, réduit considérablement le nombre d’initiatives malheureuses. Un simple atelier interne où l’on donne la main sur mv, rename, find et quelques scripts bash rend souvent les choses plus claires que des pages de procédure.
Au final, renommer un répertoire n’est pas qu’un réflexe de rangement : c’est un geste d’architecture qui devrait s’inscrire dans une vision globale de l’infrastructure, même modeste.
Quelle est la commande la plus simple pour renommer un dossier sous Linux ?
Pour renommer un dossier, la commande de base reste mv. Il suffit d’indiquer le chemin actuel du répertoire et le nouveau nom dans le même dossier parent, par exemple : mv /chemin/ancien_nom /chemin/nouveau_nom. Cette approche fonctionne sur toutes les distributions Linux et ne nécessite aucune installation supplémentaire.
Comment éviter d’écraser un dossier existant en le renommant avec mv ?
Pour limiter le risque d’écraser un dossier existant, utilisez l’option -i avec mv : mv -i ancien_nom nouveau_nom. Si la cible existe, mv demandera une confirmation avant de poursuivre. Certains administrateurs ajoutent même alias mv=’mv -i’ dans leur profil shell pour appliquer ce comportement par défaut en mode interactif.
Dans quels cas privilégier la commande rename plutôt que mv ?
rename devient plus adapté dès qu’il faut renommer en série de nombreux fichiers ou répertoires en suivant un motif précis : changement d’extension, ajout de préfixe, modification d’un suffixe, passage en majuscules ou minuscules. Sa syntaxe basée sur des expressions Perl permet de tout faire en une ou deux lignes, là où mv nécessiterait une boucle bash plus verbeuse.
Peut-on tester un renommage sans modifier réellement les dossiers ?
Oui, avec la commande rename, l’option -n permet de simuler le renommage. Par exemple : rename -n ‘s/ancien/nouveau/’ * affiche ce qui serait renommé sans rien changer sur le disque. C’est une manière de valider les motifs avant d’exécuter la commande réelle. Pour mv, il faut créer ses propres mécanismes de vérification, par exemple en listant d’abord les dossiers ciblés et en opérant sur une copie de l’arborescence en environnement de test.
Renommer un dossier peut-il casser des scripts ou services existants ?
Oui, très clairement. Si des scripts bash, des services systemd, des tâches cron ou des applications utilisent un chemin en dur vers un dossier, un simple changement de nom suffit à bloquer leur fonctionnement. Avant tout renommage de répertoire critique, il est recommandé de rechercher les occurrences de ce chemin dans les fichiers de configuration et scripts, puis d’ajuster ces références une fois le renommage effectué.