Renommer un répertoire sous Linux est facile, et il existe de nombreuses façons de le faire. Qu’il s’agisse de renommer un seul répertoire ou d’en trouver et d’en renommer plusieurs, voici comment procéder.

Vos données sont en sécurité

Renommer des répertoires est quelque chose que nous devons tous faire de temps en temps.

Il se peut que nous créions un répertoire et que son nom soit mal orthographié, et que nous voulions le remettre à sa place. Souvent, l’objectif d’un répertoire change avec le temps ou au cours de la vie d’un projet, et vous voulez ajuster le nom pour refléter sa nouvelle utilisation. Peut-être avez-vous décompressé un fichier d’archive qui a créé une arborescence de répertoires dont les noms sont en majuscules et que vous aimeriez voir en minuscules.

Quelle que soit la raison, renommer un répertoire ne change rien aux données qu’il contient. Le chemin d’accès à ces données est modifié, mais les fichiers et répertoires contenus dans le répertoire renommé ne sont pas touchés.

Ne renommez pas les répertoires système. Le fait de modifier le chemin d’accès aux fichiers et commandes système aura un effet néfaste sur le fonctionnement de votre ordinateur, c’est le moins que l’on puisse dire. Si vous devez utiliser sudo pour renommer un répertoire – à moins que vous ne sachiez vraiment ce que vous faites – il y a de fortes chances que vous ne deviez pas le renommer.

Utiliser la commande mv

Dans les cas les plus simples, tout ce dont nous avons vraiment besoin est la commande mv. Celle-ci fait partie intégrante de toutes les distributions Linux, il n’y a donc rien à installer.

La commande mv a plus de 50 ans au moment où nous écrivons ces lignes. Elle date de l’aube d’Unix, lorsque les commandes courtes et cryptiques étaient en vogue, probablement pour réduire le nombre de caractères qui devaient transiter sur les lentes lignes série entre les télétypes et les terminaux muets et l’ordinateur lui-même.

Elle signifie en fait “déplacer” et peut être utilisée pour déplacer des fichiers d’un répertoire à l’autre. Si vous déplacez un fichier au même endroit que celui où il se trouve déjà et que vous lui donnez un nouveau nom, vous avez renommé le fichier. Et nous pouvons faire la même chose avec les répertoires.

Il y a deux sous-répertoires dans ce répertoire.

ls

Pour renommer un répertoire, nous utilisons la commande mv. Nous devons fournir le nom actuel du répertoire et le nouveau nom.

mv old-work archive-2

Si le répertoire que vous voulez renommer ne se trouve pas dans votre répertoire actuel, fournissez le chemin d’accès ainsi que le nom du répertoire.

mv ~/htg/old-work ~/htg/archive-2
ls

Utilisation du navigateur de fichiers

Les navigateurs de fichiers sont capables de renommer des répertoires. La touche de l’application Fichiers de GNOME est F2. Le fait de mettre un répertoire en surbrillance et d’appuyer sur la touche F2 ouvre la boîte de dialogue “Renommer le dossier”.

Saisissez le nouveau nom et cliquez sur le bouton vert “Renommer”.

Le répertoire est renommé pour vous.

C’est aussi simple que cela.

La commande rename

Si vos besoins sont plus complexes que le simple renommage d’un répertoire, vous devrez peut-être utiliser la commande rename. Celle-ci vous permet d’utiliser des expressions Perl pour renommer des fichiers et des répertoires. Elle offre un moyen plus puissant et plus souple de renommer des répertoires.

Nous allons parler de la commande rename basée sur Perl. Il existe une autre commande, plus ancienne, appelée rename qui fait partie des utilitaires de base de Linux. Vous devrez probablement installer la commande Perl rename que nous souhaitons utiliser.

Pour éviter les conflits de noms avec la commande rename existante, la commande Perl rename est appelée prename sur Fedora, et perl-rename sur Manjaro. Sur Ubuntu, les commandes rename et prename sont toutes deux des liens symboliques qui se résolvent en un binaire appelé file-rename.

Donc, sur Manjaro la commande que vous devrez utiliser est perl-rename, et sur Fedora c’est prename. Sur Ubuntu, vous pouvez utiliser rename ou prename.

Pour installer Perl rename, sur Ubuntu vous devez taper:

sudo apt install rename

Sur Fedora, la commande est:

sudo dnf install prename

Sur Manjaro le paquet s’appelle perl-rename.

sudo pacman -Sy perl-rename

Assurez-vous d’utiliser la commande appropriée pour votre distribution si vous voulez travailler avec les exemples.

Premiers pas avec rename

La commande rename prend des expressions régulières Perl et les applique à un fichier ou à un répertoire, ou à un groupe de fichiers ou de répertoires.

Dans notre répertoire, nous avons une collection d’autres répertoires.

ls

Leurs noms sont un mélange de minuscules, de majuscules et de casse mixte. Nous pouvons tous les convertir en minuscules à l’aide d’une expression appropriée.

rename 'y/A-Z/a-z/' *
ls

Tous les répertoires sont maintenant en minuscules, qu’ils aient été entièrement en majuscules auparavant, ou qu’ils contiennent une lettre majuscule bizarre.

Toute la magie est contenue dans l’expression. L’expression est entourée de guillemets simples “'“. Voici ce que signifie la commande entière.

  • y: Cela signifie rechercher n’importe quel caractère dans la première plage de caractères, et le remplacer par le caractère correspondant de la deuxième plage de caractères.
  • /A-Z/a-z/: La première plage est constituée de toutes les lettres de “A” à “Z”, et la deuxième plage est constituée de tous les caractères de “a” à “z”.
  • *: Le caractère générique astérisque signifie que la commande s’applique à tous les répertoires.

En d’autres termes, la commande se lit comme suit: “pour tous les répertoires, remplacez toute lettre majuscule par la lettre minuscule équivalente”

Il est évident que vous pouvez renommer un seul répertoire avec rename, bien que cela soit un peu exagéré. Vous serez plus rapide en utilisant mv.

rename 's/gamma/epsilon-2/' *
ls

Le “s” de cette expression signifie substitut. Elle vérifie chaque répertoire pour voir si son nom est “gamma”. Si c’est le cas, elle le remplace par “epsilon-2” Sachez cependant que cette expression aurait également vérifié un répertoire appelé “gamma-zeta”, par exemple, en le renommant en “epsilon-2-zeta”.

Nous pouvons éviter cela en ajoutant les métacaractères de début de chaîne “^” et de fin de chaîne “$” à la première clause de l’expression.

ls
rename 's/^gamma$/epsilon-2/' *
ls

Ceci laisse le répertoire “epsilon-2” intact.

Utilisation de rename avec d’autres commandes

Nous pouvons utiliser d’autres commandes pour localiser les répertoires sur lesquels nous voulons rename travailler. Si nous avons un ensemble de répertoires imbriqués et que nous voulons renommer tous ceux qui se terminent par “-old” pour qu’ils se terminent par “-archive”, nous pouvons y parvenir en utilisant find et xargs.

Nous devons utiliser xargs parce que rename n’accepte pas les entrées en pipeline. La commande xargs résout ce problème en acceptant l’entrée pipée et en l’ajoutant à la ligne de commande d’une autre commande comme paramètre de ligne de commande.

Notre commande ressemble à ceci:

find. -depth -type d -name "*-old" | xargs -r rename "s/old$/archive/"
  • .: Nous disons à find de commencer à chercher dans le répertoire courant. Cela peut être n’importe quel chemin, bien sûr.
  • -depth: Utilise une recherche en profondeur d’abord. Cela signifie que le contenu des sous-répertoires les plus profonds est traité avant les plus élevés.
  • -type d: Recherche de répertoires, pas de fichiers.
  • -name “*-old”: L’indice de recherche. Nous recherchons des répertoires dont le nom se termine par “-old”.
  • |: Nous transférons la sortie de find dans la commande xargs.
  • xargs -r: Le -r (no run if empty) signifie qu’il ne faut pas exécuter la commande s’il n’y a pas de répertoires correspondants.
  • rename “s/old$/archive/”: Exécution de la commande rename.

Notre arborescence de répertoires ressemble à ceci avant la commande.

Nous exécutons notre commande:

Et nous pouvons voir que tous les répertoires correspondants, y compris ceux qui sont imbriqués, ont été renommés.

Horses for Courses

Renommer un répertoire ne nécessite rien de plus que mv. Si vous préférez les applications graphiques, vous pouvez utiliser votre navigateur de fichiers. Si vous avez beaucoup de répertoires à renommer, et surtout s’ils sont dispersés dans une arborescence de répertoires, vous aurez besoin de la flexibilité de rename.

Share.
Exit mobile version