Comment renommer un répertoire sous Linux

Renommer un répertoire sous Linux est facile, et il existe de nombreuses façons de le faire. Du renommage d’un seul répertoire à la recherche et au renommage de 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 au fil du temps ou au cours de la vie d’un projet, et vous voulez ajuster le nom pour refléter sa nouvelle utilisation. Vous avez peut-être décompressé un fichier d’archive qui a créé une arborescence de répertoires dont les noms sont en majuscules et que vous souhaitez voir en minuscules.

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

Ne renommez pas les répertoires système. La modification du chemin d’accès aux fichiers et aux 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 est fort probable que vous ne devriez pas le renommer.

5 des meilleures distributions Linux pour les développeurs et les programmeurs

Utilisation de 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 chaque distribution Linux, il n’y a donc rien à installer.

La commande mv a plus de 50 ans à l’heure 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 passer sur les lentes lignes série entre les télétypes et les terminaux muets et l’ordinateur lui-même.

Il signifie en fait « déplacer » et peut être utilisé pour déplacer des fichiers de répertoire en répertoire. 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

Liste de deux sous-répertoires

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

mv vieux-travail archive-2

Renommer un répertoire avec mv

Si le répertoire que vous voulez renommer n’est 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

Renommer un répertoire dans un autre répertoire avec mv en spécifiant le chemin sur la ligne de commande

Utilisation du navigateur de fichiers

Les navigateurs de fichiers sont capables de renommer des répertoires. La touche de l’application GNOME Files 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 ».

Utilisation du navigateur fie pour renommer un répertoire

Tapez le nouveau nom, puis cliquez sur le bouton vert « Renommer ».

Fournir le nouveau nom du répertoire dans le navigateur de fichiers

Le répertoire est renommé pour vous.

Le répertoire renommé dans la fenêtre du navigateur de fichiers

C’est aussi simple que cela.

La commande de renommage

Si vos besoins sont plus complexes que le simple renommage d’un répertoire, vous pouvez avoir besoin d’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 en Perl. Il existe une autre commande, plus ancienne, appelée rename, qui fait partie des utilitaires de base de Linux. Vous aurez probablement besoin d’installer la commande Perl rename que nous voulons 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.

Ainsi, 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

Installation de rename sur Ubuntu

Sur Fedora, la commande est :

sudo dnf install prename

Installation de prename sur Fedora

Sur Manjaro, le paquet s’appelle perl-rename.

sudo pacman -Sy perl-rename

Installation de perl-rename sur Manjaro

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 utilise 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

Une collection de répertoires dans un mélange de majuscules, de minuscules et de casse mixte.

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

rename ‘y/A-Z/a-z/’ *

ls

Conversion des répertoires en minuscules

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

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 appliquer cette commande à 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 ».

Évidemment, 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

Renommer un seul répertoire avec rename

Le « s » dans 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

renomme ‘s/^gamma$/epsilon-2/’ *

ls

Limitation d’une action de renommage à des noms de répertoire entiers uniquement

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 que rename travaille. Si nous avons un ensemble de répertoires imbriqués et que nous voulons renommer ceux qui se terminent par « -old » pour qu’ils se terminent par « -archive », nous pouvons y parvenir en utilisant find et xargs.

Nous avons besoin d’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 la recherche dans le répertoire courant. Cela peut être n'importe quel chemin, bien sûr.
-depth : Utiliser 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 dans les répertoires, pas dans les fichiers.
-name "*-old" : L'indice de recherche. Nous recherchons les répertoires dont le nom se termine par "-old".
| : Nous faisons passer 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épertoire correspondant.
rename "s/old$/archive/" : La commande rename à exécuter.

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

L’arborescence des répertoires avant notre commande de renommage

Nous exécutons notre commande :

Notre commande de renommage utilisant find, xargs, et rename.

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

L’arbre des répertoires après la commande de renommage

Des chevaux pour les cours

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.

Laisser un commentaire

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